Skip to content

fix(clients): keep opening responses visible after turns settle - #7723

Open
t3dotgg wants to merge 1 commit into
mainfrom
t3code/show-substantive-settled-responses
Open

fix(clients): keep opening responses visible after turns settle#7723
t3dotgg wants to merge 1 commit into
mainfrom
t3code/show-substantive-settled-responses

Conversation

@t3dotgg

@t3dotgg t3dotgg commented Aug 20, 2026

Copy link
Copy Markdown
Member

Settled turns hid every assistant response except the last one. A short verification after a tool call could bury the main answer under the Worked for row.

Keep the first and terminal assistant messages visible on web and mobile. Tool work and any middle narration still fold, and the fold row now appears where the hidden work starts.

Closes #7518 and #7529.

Tests

  • vp test run apps/web/src/components/chat/MessagesTimeline.logic.test.ts apps/mobile/src/lib/threadActivity.test.ts
  • vp run --filter @t3tools/web --filter @t3tools/mobile typecheck
  • Targeted vp lint, vp fmt, and git diff --check

Built with GPT-5.6 Codex in the Codex harness through T3 Code.


Note

Low Risk
Presentation-only change to chat fold logic on web and mobile, with matching tests. No auth, data, or backend behavior is involved.

Overview
Settled turns no longer hide the opening assistant reply behind the Worked for row. A short verification after tools could bury the main answer; the first and terminal assistant messages now stay visible on web and mobile.

Tool activity and any middle narration still collapse. The fold row is anchored at the first hidden entry so it sits between those two messages rather than above the opening reply.

Reviewed by Cursor Bugbot for commit 3e65b62. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Keep first and terminal assistant messages visible around settled turn folds

  • Updates deriveThreadFeedTurnFolds (mobile) and deriveTurnFolds (web) to track the first assistant message per turn and exclude it, along with the terminal assistant message, from hiddenEntryIds.
  • Only entries between the first and terminal assistant messages are folded for settled, non-streaming turns.
  • The fold anchor and createdAt now come from the first hidden entry (firstHiddenEntry) instead of the group's first entry, with a guard ensuring it exists before creating a fold.
  • Risk: turns with no entries between the first and terminal assistant messages will no longer produce a fold row; verify firstHiddenEntry guard handles empty middle sets as expected.

Macroscope summarized 3e65b62.

@coderabbitai

coderabbitai Bot commented Aug 20, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: f8742d3d-084b-4013-8cc5-311ee8c049b9

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Aug 20, 2026
@github-actions

github-actions Bot commented Aug 20, 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.4 KiB 13.4 KiB +18 B (+0.1%) 15.1 KiB
Codex Thread snapshot wire 6.9 KiB 6.9 KiB −2 B (−0.0%) 7.3 KiB
Codex Live turn WebSocket wire 6.5 KiB 6.6 KiB +20 B (+0.3%) 7.8 KiB
Codex Live turn WebSocket decoded 55.0 KiB 55.0 KiB 0 B (0.0%) 66.4 KiB
Codex Live turn messages 16 16 0 (0.0%) 21
Claude Total thread wire 13.4 KiB 13.4 KiB +5 B (+0.0%) 15.1 KiB
Claude Thread snapshot wire 6.9 KiB 6.9 KiB −3 B (−0.0%) 7.3 KiB
Claude Live turn WebSocket wire 6.5 KiB 6.5 KiB +8 B (+0.1%) 7.8 KiB
Claude Live turn WebSocket decoded 55.8 KiB 55.8 KiB 0 B (0.0%) 66.4 KiB
Claude Live turn messages 16 16 0 (0.0%) 21

Baseline: 7107a98 · PR result: 3e65b62 · 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.

@macroscopeapp

macroscopeapp Bot commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at bd54c0d

Macroscope's review found this PR approvable — This is a self-contained UI presentation fix that modifies how thread messages are folded/collapsed - keeping both first and terminal assistant messages visible instead of just the terminal one. Changes are limited to fold logic with corresponding test updates, no runtime or API impact beyond the intended visual behavior.

No code changes detected at 3e65b62. Prior analysis still applies.

You can add or adjust custom eligibility rules. Learn more.

@t3dotgg
t3dotgg force-pushed the t3code/show-substantive-settled-responses branch from bd54c0d to 3e65b62 Compare August 20, 2026 23:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M 30-99 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.

[Bug]: Settled turns hide substantive response under Worked for ...

1 participant