fix(desktop): surface send failures on the user bubble (#3056)#3916
Merged
Conversation
Submit rejections were swallowed, leaving an optimistic user bubble that looked delivered while the backend never saw the turn. Mark the bubble failed, append a warning notice, and stop the running indicator when the bridge call rejects before the first backend event; confirmed turns are unaffected. Closes #3056 Co-authored-by: luffy <1292867089@qq.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Supersedes #3056 by @luffy-thanks. The core of that PR — showing the submitted message immediately — landed independently via #3430/#3441, which is why the original branch no longer applies. This carries forward the part main-v2 was still missing: submit rejections were silently swallowed (
.catch(() => {})), so a failed send looked delivered.What lands here, adapted to the per-tab state model:
send_failedreducer action: marks the optimistic user bubble failed, appends a warning notice, stops the running indicator, and is a no-op once the backend has confirmed the turn.send_failedto the right tab on bridge rejection.npm test.Author credit for the original diagnosis and design carried as commit co-author. The vitest harness from the original PR was intentionally dropped — the frontend already has a tsx-based test runner.
Closes #3056