1035fd179fcd73863f6dadeeacc8ed7f2d850162
- Add RenderTrigger enum to connection.rs (avoids circular imports) - Replace ConnectionState.sse_sender with trigger_tx + pipe_tx channels - Add get_trigger_sender and get_pipe_sender to ConnectionManager - Extract render_and_send helper to eliminate duplicated render/SSE logic - Implement connection_task: long-lived per-connection coroutine that owns the SSE pipe, debounces render triggers (2ms), and survives disconnects for a 30s grace period to allow clean reconnection - Update sse_handler: spawns connection_task on fresh connect, hands new SSE pipe to existing task on reconnect; removes cleanup-on-disconnect spawn - Update spawn_fanout: now a pure router — sends RenderTrigger::Invalidated to each subscribed connection's task; no render logic remains in fanout - Bump broadcast channel capacity from 256 to 16384 in Store::new - Merge brotli compression branch (config hot-reload, BrotliBody middleware) https://claude.ai/code/session_01QiTaFtwXETxJDk79XcgfrN
Languages
Rust
99.7%
Nix
0.3%