Skip to content

Notification service: channel abstraction, dispatcher, config toggles #41

Description

@Ryan-Atkinson87

The provider-agnostic notification core: a channel abstraction plus a dispatcher that routes to whichever channels are enabled in config.

Spec: §9.2 Notification channels, §16.3 (notifications), §2 (Notification service).

Acceptance criteria

  • Channel abstraction distinguishing instant alerts from digests/summaries (§9.2).
  • Dispatcher routes a notification to every enabled channel; channels are pluggable behind the abstraction.
  • Reads notifications toggles from project.yaml: Telegram default-on, email default-off, both can be on together (§9.2, §16.3).
  • A disabled channel is skipped cleanly; a single channel's send failure is isolated so the other channels still deliver, with an explicit failure path and no silent pass.
  • No secrets embedded; channel construction reads secret env-var names by reference.
  • Unit tests for routing across enabled/disabled combinations and per-channel failure isolation.

Depends on: #4

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions