mirror of
https://github.com/Routstr/routstrd.git
synced 2026-10-06 04:38:23 +00:00
Blocker: nostr-sync now recomputes the kind-38425 review verdict via modelManager.syncReviewedProvidersFromNostr() after clearing manual overrides and mirrors it into the store. Previously a provider that was manually enabled across a scheduled review refresh was absent from the review-disabled set (the SDK skips manually-enabled providers), so nostr-sync would fail OPEN for a review-rejected provider. - GET /providers now derives disabled/manual status from the discovery adapter (the router's source of truth), like /providers/reviews, instead of the store mirror that lags scheduled review syncs. URL comparison is normalization-aware (adapter stores trailing-slash URLs). - nostr-sync validates indices with Number.isInteger, returns 400 when no valid indices are given, dedupes, and reports skipped indices on partial success. - CLI parses indices strictly (/^\d+$/) for disable/enable/nostr-sync; parseInt previously accepted '3abc' and '0x5'. - Add src/daemon/http/providers.test.ts: regression coverage for the review-disabled -> manual-enable -> refresh -> nostr-sync lifecycle, list/routing/nostr-sync agreement, manual status labels, and fractional/duplicate/out-of-range indices.