mirror of
https://github.com/block/buzz.git
synced 2026-08-18 06:50:31 +02:00
Replace REST polling with WebSocket subscriptions across the desktop app for real-time reactivity. Wire the workflow approval infrastructure so runs suspend at approval gates instead of failing. Desktop subscriptions: - Forum posts/threads: subscribeLive for kinds 45001/45003 (was 15s/10s poll) - Workflows: subscribeLive for kind 46010 (was 1s/10s poll) - Pulse timeline: subscribeLive for contact note events (was 30s poll) - Channels list: reduced backstop to 5min (live updates already wired) - Agents/personas/teams: removed polling, CRUD mutations invalidate cache - Home feed: kept at 30s poll (relay scoping prevents global subscriptions) Shared useReactiveSubscription hook extracts common subscribe/reconnect/ cleanup lifecycle across forum, workflow, and pulse hooks. WF-08 workflow approvals: - executor.rs: create_approval() called with token, expiry, approver spec - lib.rs: finalize_run sets WaitingApproval instead of Failed stub - Trace entry pushed for suspended steps (UI can render approval card) - Approver spec validated at creation (rejects unresolvable role specs) - e2e test: full round-trip trigger → waiting_approval → grant → completed Docs: added "Subscriptions, Not Polling" principle to AGENTS.md. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>