Chat polish: fix loader/header overlap, retry auto-resends - #307
Merged
Conversation
The three-dot "Getting your workbench ready…" loader sat flush under .chat-workbench-header with no gap, so the dots rendered on top of the header's bottom rule instead of below it. Give the loader flex:1 so it claims the room's remaining space and centers within it, with its own padding and overflow: auto for containment at short viewport heights; apply the same overflow containment to .chat-workspace-frame, the pre-workbench loading screen's outer frame.
Rewrites the old paste-into-composer assertion: Retry should hand the recovered text straight to the host's resend action, and the button should disable itself while that resend is in flight so a double-click can't fire two sends.
Retry used to hand the recovered request text back into the composer for the person to send again by hand. It now sends that text straight through the normal send path itself, same as if they had typed it and hit Enter. The strip disables its own Retry button for the duration of that resend so a double-click can't fire it twice; the cause-aware failure text is unchanged.
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.
Summary
Fixes CL-6624, two owner-reported chat-ui issues:
.chat-workbench-loading(the"Getting your workbench ready…" three-dot loader) sat flush under
.chat-workbench-headerwith zero gap, so the dots rendered right on topof the header's bottom rule instead of below it. It now takes
flex: 1of the room's remaining space and centers within it, with its own padding
and
overflow: autoso it can never bleed past its own box at a shortviewport height. Applied the same
overflowcontainment to.chat-workspace-frame(the pre-workbench loading screen).on a failed-turn strip now sends the recovered request text straight
through the normal send path — same as typing it and hitting Enter —
instead of handing it back into the composer for the person to send by
hand. The Retry button disables itself for the duration of that resend
so a double-click can't fire two sends. The strip's cause-aware failure
text is unchanged.
Test plan
WORKBENCH_CHECK_SINCE=origin/main bun run typecheck— passes for@corbits/chat-uiWORKBENCH_CHECK_SINCE=origin/main bun run test—@corbits/chat-ui:666 pass, 0 fail
bun run lint— clean (0 errors)dana.reyes, opened a pre-CL-6586 broken workbench ("invalid quirks"),
confirmed two live failed-turn strips and reproduced the header-overlap
bug exactly (dots sitting on the divider). That stack serves
main(pre-fix), so the old paste-into-composer Retry behavior was confirmed
live there for contrast; the new auto-resend behavior is covered by the
updated unit tests since this branch isn't deployed to that stack.