fix(queue): reconcile missed delivery across live transports (#3440)

Deliver queue updates on the control SSE stream, recover independently of bootstrap suppression, and preserve authoritative empty snapshots against delayed responses. Coalesce hydration and recovery while retaining unfinished legacy migration across runtime switches.

Workspace type-check, lint, tests and build passed. Follow-up recovery and migration fixes pass 27 queue tests, 3 control-stream tests and UI type-check.
This commit is contained in:
Bohdan Triapitsyn
2026-09-09 18:19:23 +03:00
10 changed files with 386 additions and 76 deletions
+7 -1
View File
@@ -913,7 +913,13 @@ const messageQueueRuntime = createMessageQueueRuntime({
buildOpenCodeUrl,
getOpenCodeAuthHeaders,
sessionKnowledgeRuntime,
broadcastGlobalUiEvent,
// OpenCode's /global/event SSE proxy cannot carry OpenChamber-owned events.
// Use the shared control stream for SSE clients and the existing WS fan-out.
broadcastGlobalUiEvent: createGlobalUiEventBroadcaster({
sseClients: uiOpenChamberEventClients,
wsClients: uiNotificationWsClients,
writeSseEvent,
}),
onPromptSent: (sessionId) => sessionRuntime.markUserMessageSent(sessionId),
dataDir: OPENCHAMBER_DATA_DIR,
});