diff options
| author | Adam Malczewski <[email protected]> | 2026-06-22 00:36:31 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-22 00:36:31 +0900 |
| commit | 250575df308469c58477a53865f8763084612e5f (patch) | |
| tree | 1966514e814faf6170ac7d2e7f76ac3ecaff77f6 /src/features/cache-warming | |
| parent | 3be12bccbd7eed767968e18f460693325093006a (diff) | |
| download | dispatch-web-250575df308469c58477a53865f8763084612e5f.tar.gz dispatch-web-250575df308469c58477a53865f8763084612e5f.zip | |
feat(tabs): cross-device tab sync via conversation lifecycle
Consume the conversation lifecycle handoff ([email protected], [email protected]).
Re-pinned file: deps + re-mirrored .dispatch/*.reference.md.
- fetchOpenConversations() on connect: GET /conversations?status=active,idle
restores the tab bar across devices (merges with localStorage — opens new
tabs, removes closed ones, updates titles from backend)
- conversation.statusChanged WS handler: closed → removeTabLocally (no
re-POST); active → open tab + spinner; idle → update status map
- conversation.compacted WS handler: dispose stale store + cache, reload
history from server
- TabBar shows a spinner on active conversations (statusFor prop)
- closeTab refactored to use removeTabLocally (extracted cleanup)
- conformance guards + WS adapter tests cover all 3 new WsServerMessage types
686 tests green.
Diffstat (limited to 'src/features/cache-warming')
0 files changed, 0 insertions, 0 deletions
