🤖 fix: stabilize retry barrier visibility and manual retry feedback#1671
🤖 fix: stabilize retry barrier visibility and manual retry feedback#1671ibetitsmike wants to merge 4 commits intomainfrom
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 11a3acccd0
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
@codex review Addressed the TTFT regression by restoring the |
|
Codex Review: Didn't find any major issues. Can't wait for the next one! ℹ️ About Codex in GitHubCodex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback". |
3bfb874 to
8fae9eb
Compare
Summary
This PR stabilizes the bottom-of-chat retry UI by keeping the Retry barrier visible across auto-retry start/fail loops, and adds immediate manual-click feedback for the Retry button so users get instant acknowledgement before stream events arrive.
Background
The retry footer could still visually churn when retry attempts toggled stream-start without visible output yet. Separately, manual Retry clicks had no immediate pending state for non-auto-retryable errors, which made the button feel unresponsive until backend events landed.
After adding manual pending state, we found a remaining UX jump: clicking Retry briefly removed the error-details row because manual retry clears
retryState.lastErrorimmediately, shrinking the yellow box before it re-expanded on the next failure.Implementation
ChatPanegetRetryStateKey(...).getInterruptionContext(...)plusshouldKeepRetryBarrierVisibleDuringRetry(...).StreamingBarrierwhenever retry barrier UI is active to avoid footer swapping.RetryBarrierisManualRetryInFlightstate for immediate click feedback.Retrying...label and temporarily disables the manual Retry button.retryEligibilityValidation
bun test src/browser/utils/messages/retryEligibility.test.tsmake static-checkRisks
Generated with
mux• Model:openai:gpt-5.3-codex• Thinking:xhigh• Cost:$11.38