fix(web): keep settled thread notice compact - #8980
Conversation
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
There was a problem hiding this comment.
One finding on the parked-thread banner title composition; see the inline comments.
Posted via Macroscope — UI Consistency
| title: ( | ||
| <> | ||
| <span>This thread is {isSnoozed ? "snoozed" : "settled"}</span>{" "} | ||
| <span className="font-normal text-muted-foreground">{parkedThreadDescription}</span> | ||
| </> | ||
| ), |
There was a problem hiding this comment.
Inlining the detail as a bare fragment drops the one-line guards the other inline-detail banner titles use. ComposerBanner.Content is flex items-center gap-1 with min-w-0 on itself only, so these two spans keep their min-width: auto floor and the long snoozed sentence wraps inside the header row next to the Wake now button instead of staying a single-line title (the description slot it replaced rendered in its own ComposerBanner.Children row aligned under the icon column). The branch-mismatch item in this same file wraps its inline detail in flex min-w-0 items-baseline gap-1.5 with shrink-0 on the label and min-w-0 truncate on the trailing text; matching that keeps the row height and action alignment stable.
| title: ( | |
| <> | |
| <span>This thread is {isSnoozed ? "snoozed" : "settled"}</span>{" "} | |
| <span className="font-normal text-muted-foreground">{parkedThreadDescription}</span> | |
| </> | |
| ), | |
| title: ( | |
| <span className="flex min-w-0 items-baseline gap-1.5"> | |
| <span className="shrink-0">This thread is {isSnoozed ? "snoozed" : "settled"}</span> | |
| <span className="min-w-0 truncate font-normal text-muted-foreground"> | |
| {parkedThreadDescription} | |
| </span> | |
| </span> | |
| ), |
Posted via Macroscope — UI Consistency
| const isSnoozed = activeThreadSnoozed; | ||
| const parkedThreadDescription = isSnoozed | ||
| ? "Sending a message wakes it and moves it back to Active in the sidebar." | ||
| : "Send a message to unsettle"; |
There was a problem hiding this comment.
Minor consistency: the settled branch is now a terse fragment while the snoozed branch above stays a full sentence in the same slot, and it drops the "back to Active in the sidebar" cue that the sidebar state change relies on. It also says "unsettle" while the action button in the same row is labeled "Un-settle". Consider keeping both branches in one voice and terminology.
| : "Send a message to unsettle"; | |
| : "Sending a message un-settles it and moves it back to Active in the sidebar."; |
Posted via Macroscope — UI Consistency
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — This is a small web-only banner layout and copy change with no backend or sensitive-data impact. However, the new inline structure may allow the long snoozed message to wrap and disrupt action alignment, and that unresolved layout concern should receive human review. You can add or adjust custom eligibility rules. Learn more. |
|
Note: GPT-6 on behalf of Shivam (@shivamhwp). Closing as superseded by the current shared notice layout from #8890. The settled notice already uses the short "Send a message to unsettle" copy and places the title and description together; narrow layouts move the description into an information popover. |
problem
the settled-thread notice used the generic banner description slot, which always renders beneath the title and made this short notice unnecessarily tall.
fix
keep the settled notice title and helper copy on one line, and simplify the helper copy to “Send a message to unsettle”. the snoozed state keeps its existing copy while using the same compact layout.
verification
vp run --filter @t3tools/web typecheckvp lint apps/web/src/components/ChatView.tsx --report-unused-disable-directivesbefore
after
built with gpt-5.6-sol on Hermes Agent.
request provenance
Note
Low Risk
Composer banner copy and layout only in ChatView; no API, auth, or data-path changes.
Overview
Makes the snoozed/settled parked thread composer banner shorter by dropping the separate
descriptionrow and putting the helper text inline in the title as muted copy.For settled threads, the helper text is now “Send a message to unsettle” instead of the longer sidebar/active wording. Snoozed threads keep the wake/active copy but use the same one-line layout.
Reviewed by Cursor Bugbot for commit 8c54346. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Inline parked thread banner description into
titleand simplify settled thread copyConsolidates the parked thread banner in ChatView.tsx so the guidance text renders as a muted subtitle inside
titlerather than a separatedescriptionfield. Also changes the settled-thread guidance to "Send a message to unsettle".Risk:
ComposerBannerStackItem.titleis now aReactNodeinstead of a plain string; any consumers expecting a string will need to handle the JSX fragment.Macroscope summarized 8c54346.