Feature backlog
This backlog turns the long-term product direction into independently testable branches. Ordering may change when a prerequisite or security concern is discovered, but each completed task must update this file and docs/DEVELOPMENT_STATE.md.
Foundation tasks
F01 — Native Settings window
- Status: initial implementation complete; provider, route, and richer sound sections expand with their foundations.
- Add a tray action and single-instance WPF Settings window.
- Provide validated sections for general behavior, toast placement/lifetime, history, startup, sounds, custom types, channels, routes, and diagnostics.
- Save atomically and make restart requirements explicit.
F02 — Extensible notification definitions
- Status: implemented and runtime-smoked; human Settings visual inspection pending.
- Preserve compatibility with the eight built-in API values.
- Add user-defined types with stable IDs, display names, colors/icons, default priority, sticky/expiry behavior, and enabled state.
- Define safe fallback behavior when a custom type is deleted or disabled.
F03 — Sound profiles
- Status: implemented and covered by file/config tests; human playback/UI verification pending.
- Support global and per-type sound choices, mute, volume, and preview.
- Accept common formats supported reliably on Windows, beginning with WAV and MP3.
- Copy approved files into a managed per-user directory; validate size/type and handle missing files safely.
- Add quiet-hours and critical-notification override policy hooks.
F04 — Delivery persistence and encrypted secrets
- Status: implemented with transactional schema v1, atomic outbox claiming, DPAPI current-user envelopes, bounded inputs, redacted summaries, and durable/concurrency repository tests.
- Add versioned SQLite migrations for provider profiles, encrypted secret values, routing rules, outbox messages, and delivery attempts.
- Add a DPAPI current-user secret protector with versioned ciphertext envelopes and test-only portable implementation.
- Ensure all DTOs, diagnostics, exports, and logs redact credentials.
F05 — Routing and durable delivery engine
- Status: core engine implemented; advanced time/attention-state matching remains grouped with F07.
- Match on type, priority, project, agent, time, and attention state.
- Persist work before dispatch; use bounded exponential retry with jitter, timeout, idempotency, and dead-letter state.
- Never block local persistence, the API response, or the WPF dispatcher on network delivery.
- Add per-route payload redaction and test-send.
F06 — Channel management UI
- Status: initial webhook provider, route, test-send, deletion, and redacted diagnostics UI implemented; extend per adapter.
- Create, edit, enable, disable, test, and delete provider profiles.
- Show health, last success/failure, retry state, and actionable validation errors without revealing secrets.
- Require explicit consent before sending notification bodies off-device.
F07 — Rules, quiet hours, and escalation
- Add per-project/agent/type routes, quiet schedules, snooze, grouping, cooldowns, and escalation delays.
- Make local critical attention behavior explicit and testable.
Outbound channel tasks
Implement each channel on its own feature/channel-* branch after F04–F06. All channels are disabled by default.
| ID | Channel | Integration approach | Confidence / constraint |
|---|---|---|---|
| C01 | Generic webhook | Configurable HTTPS POST, headers, HMAC signature, JSON template | Adapter and management UI implemented and tested |
| C02 | SMTP email | STARTTLS/TLS, authenticated SMTP, recipient allowlist | Adapter and Settings integration implemented; real-server smoke pending |
| C03 | Telegram | Official Bot API sendMessage |
Adapter and Settings integration implemented; real-bot smoke pending |
| C04 | Discord | Incoming webhook | Adapter and Settings integration implemented; real-webhook smoke pending |
| C05 | Slack | Incoming webhook | Adapter and Settings integration implemented; real-webhook smoke pending |
| C06 | Microsoft Teams | Teams Workflows webhook | Global-cloud adapter and Settings integration implemented; real-workflow/sovereign-cloud smoke pending |
| C07 | Zoho Cliq | Incoming webhook/bot endpoint | Adapter and Settings integration implemented for all nine data centers; real-webhook smoke pending |
| C08 | Google Chat | Incoming webhook | Adapter and Settings integration implemented; real-webhook smoke pending |
| C09 | Mattermost | Incoming webhook | Adapter and Settings integration implemented; real-server smoke pending |
| C10 | Matrix | Client-server API message send | Unencrypted-room adapter and Settings integration implemented; E2EE/real-server smoke pending |
| C11 | ntfy | HTTP publish API | Adapter and Settings integration implemented for hosted/self-hosted servers; real-server smoke pending |
| C12 | Gotify | REST message API | Adapter and Settings integration implemented; real-server smoke pending |
| C13 | Pushover | Official message API | Adapter and Settings integration implemented; real-account smoke/receipt polling pending |
| C14 | Pushbullet | Official push API | Note adapter and Settings integration implemented; real-account smoke pending |
| C15 | Twilio SMS | Official Messages API | Adapter and Settings integration implemented with one-segment/at-most-once controls; real-account smoke and durable daily budget pending |
| C16 | Official Meta WhatsApp Cloud API | Approved text-template adapter and Settings integration implemented; real-business-account smoke, delivery-status webhooks, and durable spend budget pending | |
| C17 | Twilio WhatsApp | Twilio Messages API + Content Templates | Adapter and Settings integration implemented with text-template attestation and consent/cost controls; real-account smoke and delivery status pending |
| C18 | Signal | User-managed signal-cli process adapter |
Experimental/unofficial; never imply official Signal support |
| C19 | MQTT | MQTT 5 publish to configured TLS broker/topic | Adapter and Settings integration implemented with DNS pinning, platform trust/mTLS, fixed encrypted topic, and explicit QoS semantics; real-broker smoke pending |
| C20 | AgentNotify Relay | Self-hosted/Custom HTTPS envelope API with per-device opaque transport | Adapter, browser/device-grant pairing, CLI pairing/status, encrypted credential storage, DNS pinning, and durable outbox implemented; Relay Go hosted UI disabled until base URL/billing ready; live-relay interoperability, E2E crypto review, and delivery-status polling pending; experimental opaque transport |
| C21 | AWS SNS | Signed AWS API/SDK publish | Paused/not implemented; revisit only with explicit static credentials, no ambient credential-chain inheritance, fixed destination, cost controls, and a provider-specific retry review |
| C22 | Azure Communication Services | Email/SMS provider SDK/API | Medium; connection credentials and cost controls required |
| C23 | SendGrid | Mail Send API | High; useful when SMTP is unavailable |
| C24 | Mailgun | Messages API | High; region and domain configuration required |
| C25 | Postmark | Email API | High; server token and sender validation required |
| C26 | Apprise bridge | User-managed local Apprise CLI/API | Experimental bridge offering many community transports |
Agent communication tasks
A01 — Acknowledgement callbacks
Allow an agent to provide a safe loopback callback or polling correlation ID and observe delivered, viewed, dismissed, resolved, or failed state.
A02 — Structured response actions
Support buttons and bounded text choices that return a structured response to a waiting agent without executing arbitrary commands.
A03 — Agent registry and heartbeat
Track live agent instances, projects, working directories, last activity, and waiting state so the center answers “which agents need me?” reliably.
A04 — SDKs and protocols
- Status: protocol assembly and ARC 0.1 create/update/resolve ingestion implemented; language SDKs, ACP/stdout adapters, A2A bridges, and optional MCP server remain planned.
- Publish small PowerShell, shell, Python, JavaScript, and .NET clients without replacing the stable REST/CLI path.
- Keep provider streams and future ACP/A2A adapters behind the same validation and persistence boundary as direct ARC events.
- Evaluate an optional MCP server after the event contract and response model stabilize.
Product and platform tasks
- Search, filtering, export, route/delivery audit views, backups, and retention controls.
- Safer terminal/editor activation, Windows Terminal integration, and virtual desktop awareness.
- Signed x64/ARM64 releases, checksums, schema migration recovery, automatic updates, and rollback.
- Accessibility, keyboard navigation, localization, high-contrast support, multi-DPI/multi-monitor verification.
- Portable core extraction followed by native macOS menu-bar and Linux tray/desktop implementations.
- Documentation/wiki site, examples, architecture decision records, contributor guides, and integration recipes. GitHub Pages is published by the repository workflow.