Repository navigation
Description
Problem context
src/notifications/services/verification-event-publisher.service.ts returns an empty recipient list for verification completion and contestation. Events can therefore be published without notifying the claim creator, relevant verifiers, or authorized moderators.
Technical scope
Implement event-specific recipient resolution from the canonical claim, assignment, verification, and contestation records. Distinguish assigned verifier, submitting verifier, claim creator, other eligible participants, and authorized moderation roles. Deduplicate and apply preference/opt-out rules before publishing.
Required tests
- Verification assignment, completion, and contestation recipient matrices.
- Self-notification exclusions and duplicate participants.
- Missing/closed claim, revoked assignment, and unauthorized moderation cases.
- Preference enforcement and privacy-safe metadata.
Security and architecture constraints
- Contracts and finalized canonical events remain authoritative for protocol state.
- The API remains a projection/read and notification-delivery layer; it must not invent protocol outcomes.
- Fail closed on missing, stale, ambiguous, unauthorized, or incomplete state.
- Do not expose secrets, device tokens, email verification tokens, private evidence, or unnecessary personal data.
- Preserve strict typing, idempotency, privacy, observability redaction, and existing CI/security gates.
Acceptance criteria
- The identified placeholder or unsafe behavior is replaced by a production-quality implementation.
- Provider/recipient/ownership behavior is explicit and documented.
- Every required failure mode is covered by automated tests.
- No synthetic success, cross-user data exposure, or secret leakage remains in the affected path.
- The pull request links exactly this issue and maps evidence to every acceptance criterion.
- Exact-head required CI passes and independent human review is recorded.
Dependencies
- API PREWAVE-BE-018 — Converge Duplicate Notification Module Implementations #613 — canonical notification module wiring.
- API PREWAVE-BE-025 — Validate Optional Notification Channel Configuration Fail Closed #621 — notification channel configuration and preference enforcement.
Non-goals
Changing verification outcomes, dispute authority, or protocol event semantics.
Complexity and points
- Medium — 150 points
Candidate only. Activation remains maintainer-controlled; do not apply Stellar Wave as part of implementation.
Activity