Event projection for watch-only clients: broadcast/watch instead of a single-consumer event channel
- Dominant language
- Rust
- Stars
- 41k
- Forks
- 3.6k
- Avg merge
- 13h 59m
- Merged PRs (30d)
- 299
Description
From the 0.9.14 refactor backlog.
Engine events are a single-consumer `mpsc(256)` — one TUI, one exec consumer. The moment the App or an IDE surface wants to watch a session (PRD: one runtime contract), it needs `tokio::sync::broadcast` (lag = drop-policy receipts) or a `watch` of the latest snapshot plus an event log. Design it as part of the ACP/app-server client work (#6088, app-server client issue) — retrofitting later is worse. The shared pet owner (#6109) is the first concrete watch-only consumer.
Size: design + M.
Contributor guide
Research direction
Start with the ACP/app-server client work in #6088 and inspect the engine’s single-consumer mpsc(256) event channel described here. Use the shared pet owner in #6109 as the first watch-only consumer; done means an agreed event-projection design that supports watch-only clients and defines broadcast/watch behavior and lag or drop handling.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend-api-design, cli
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100