Skip to content

fix(web): keep settled thread notice compact - #8980

Closed
t3-code[bot] wants to merge 2 commits into
mainfrom
fix/unsettle-action-row
Closed

fix(web): keep settled thread notice compact#8980
t3-code[bot] wants to merge 2 commits into
mainfrom
fix/unsettle-action-row

Conversation

@t3-code

@t3-code t3-code Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

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 typecheck
  • vp lint apps/web/src/components/ChatView.tsx --report-unused-disable-directives
  • real-app Playwright check at 1194px: title and helper copy both rendered at y=580

before

settled notice on two rows

after

settled notice on one row

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 description row 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 title and simplify settled thread copy

Consolidates the parked thread banner in ChatView.tsx so the guidance text renders as a muted subtitle inside title rather than a separate description field. Also changes the settled-thread guidance to "Send a message to unsettle".

Risk: ComposerBannerStackItem.title is now a ReactNode instead of a plain string; any consumers expecting a string will need to handle the JSX fragment.

Macroscope summarized 8c54346.

Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Sep 1, 2026
Comment thread apps/web/src/components/ChatView.tsx
@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 13.3 KiB 13.3 KiB +16 B (+0.1%) 15.1 KiB
Codex Thread snapshot wire 6.9 KiB 6.9 KiB +7 B (+0.1%) 7.3 KiB
Codex Live turn WebSocket wire 6.4 KiB 6.4 KiB +9 B (+0.1%) 7.8 KiB
Codex Live turn WebSocket decoded 55.6 KiB 55.6 KiB 0 B (0.0%) 66.4 KiB
Codex Live turn messages 11 11 0 (0.0%) 21
Claude Total thread wire 13.3 KiB 13.3 KiB −1 B (−0.0%) 15.1 KiB
Claude Thread snapshot wire 6.9 KiB 6.9 KiB +1 B (+0.0%) 7.3 KiB
Claude Live turn WebSocket wire 6.5 KiB 6.5 KiB −2 B (−0.0%) 7.8 KiB
Claude Live turn WebSocket decoded 56.4 KiB 56.4 KiB 0 B (0.0%) 66.4 KiB
Claude Live turn messages 11 11 0 (0.0%) 21

Baseline: 85b656f · PR result: 8c54346 · Source CI: success

Scenario and decoded snapshot size

10 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.

  • Codex decoded thread snapshot: 109.4 KiB
  • Claude decoded thread snapshot: 110.1 KiB

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>

@macroscopeapp macroscopeapp Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One finding on the parked-thread banner title composition; see the inline comments.

Posted via Macroscope — UI Consistency

Comment on lines +4972 to +4977
title: (
<>
<span>This thread is {isSnoozed ? "snoozed" : "settled"}</span>{" "}
<span className="font-normal text-muted-foreground">{parkedThreadDescription}</span>
</>
),

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
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";

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
: "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

@macroscopeapp

macroscopeapp Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: 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.

@shivamhwp

Copy link
Copy Markdown
Collaborator

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.

Current banner composition and horizontal content layout.

@shivamhwp shivamhwp closed this Sep 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S 10-29 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant