🤖 fix: retry workspace onChat subscription after disconnect #1233
+232
−116
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes a class of "UI got stuck" issues when the renderer misses workspace chat events (e.g. compaction delete/rewrite) and only catches up after a restart.
What changed
workspace.onChatsubscription resilient: if the async iterator ends or errors unexpectedly, automatically resubscribe with backoff.Why
If the UI misses the compaction delete + summary replay, it may still show the old
/compactmessage. Editing that message then fails server-side because the message ID no longer exists in persisted history.Validation
bun test src/browser/stores/WorkspaceStore.test.tsmake typecheckmake static-checkGenerated with
mux• Model:openai:gpt-5.2• Thinking:medium