fix(web): keep trailing tool groups out of "Worked for" accordion - #9384

Merged
Yash-Singh1 merged 2 commits into
mainfrom
t3code/show-trailing-tool-groups
Sep 3, 2026
Merged

fix(web): keep trailing tool groups out of "Worked for" accordion#9384
Yash-Singh1 merged 2 commits into
mainfrom
t3code/show-trailing-tool-groups

Conversation

@Yash-Singh1

@Yash-Singh1Yash-Singh1 commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

What Changed

Simplified composer and timeline behavior so trailing tool groups remain visible after terminal responses. Removed the hidden resting-controls layout and related scroll, selection, and event-scope plumbing, while preserving responsive branch and environment controls across web and mobile surfaces.

Why

Trailing tool groups could disappear after terminal responses because the composer relied on hidden controls, measured hosts, and restoration logic tied to timeline navigation. This change removes that fragile coordination and keeps the visible layout content-driven.

UI Changes

No screenshots included. The change updates composer context controls, branch and environment selectors, sidebar fallback icons, chat timeline behavior, and mobile work-log sizing.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Medium Risk
Changes core chat timeline row derivation and folding rules; regressions could affect turn folding, tool presentation, and assistant metadata placement across settled and error turns.

Overview
Settled-turn folding no longer hides work that appears after the terminal assistant message. The "Worked for …" accordion only folds entries at or before that message, so trailing commands and tool summaries stay on the timeline when a turn errors or finishes awkwardly.

Trailing tools read as one assistant block: when tool rows follow the final assistant text for the same turn, copy/timestamp metadata moves to a new assistant-meta row after those tools (always visible), instead of sitting under the prose alone.

Single completed tool calls render as direct work rows with an optional displayLabel (including lifecycle-collapsed start→complete pairs), replacing the previous work-toggle summary row for one-off calls. Multi-entry groups still use toggles; work-toggle rows now carry turnId for the trailing-meta logic.

UI wiring: shared AssistantMessageMeta, LegendListextraData refresh on row count changes, and stable-row equality updates for the new fields.

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

Note

Fix trailing tool groups in MessagesTimeline to render after assistant response

  • Settled turns now leave timeline entries after the terminal assistant message visible instead of folding them into the pre-response fold, via changes to deriveTurnFolds in MessagesTimeline.logic.ts.
  • A new attachTrailingToolGroupsToAssistant pass suppresses metadata and copy button on the assistant message row and inserts an assistant-meta footer row after the last trailing tool group, so the metadata appears once after the trailing activity.
  • Single completed tool calls now render directly as a work row with a display label instead of a summarized work-toggle row; multi-entry groups still use the grouped presentation.
  • LegendList receives rows.length as extraData so the list refreshes when derived row count changes.
  • Behavioral Change: MessagesTimelineRow gains assistant-meta variant, work.displayLabel, and work-toggle.turnId fields; isRowUnchanged compares these new fields for row reuse. AssistantCopyButton interface changed from receiving a full message-row object to receiving message, copyButtonVisible, and streaming directly.

Macroscope summarized 515ee1f.

- Render single completed tool calls directly
- Keep assistant metadata attached after trailing tool groups
@github-actionsgithub-actionsBot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Sep 3, 2026
@Yash-Singh1Yash-Singh1 changed the title fix(web): keep trailing tool groups visible after terminal responsesfix(web): keep trailing tool groups out of "Worked for" accordionSep 3, 2026
@github-actionsgithub-actionsBot added the size:L 100-499 changed lines (additions + deletions). label Sep 3, 2026
@github-actions

github-actionsBot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.5 KiB13.6 KiB+71 B (+0.5%)15.1 KiB
CodexThread snapshot wire7.0 KiB7.0 KiB−3 B (−0.0%)7.3 KiB
CodexLive turn WebSocket wire6.5 KiB6.6 KiB+74 B (+1.1%)7.8 KiB
CodexLive turn WebSocket decoded57.0 KiB57.1 KiB+88 B (+0.2%)66.4 KiB
CodexLive turn messages810+2 (+25.0%)21
ClaudeTotal thread wire13.6 KiB13.6 KiB+20 B (+0.1%)15.1 KiB
ClaudeThread snapshot wire7.0 KiB7.0 KiB+3 B (+0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.5 KiB6.6 KiB+17 B (+0.3%)7.8 KiB
ClaudeLive turn WebSocket decoded57.9 KiB57.9 KiB0 B (0.0%)66.4 KiB
ClaudeLive turn messages10100 (0.0%)21

Baseline: 5b8445b · PR result: 515ee1f · 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: 113.8 KiB
  • Claude decoded thread snapshot: 114.5 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

Comment threadapps/web/src/components/chat/MessagesTimeline.logic.ts

@cursorcursorBot 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.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 3cf2ce7. Configure here.

Comment threadapps/web/src/components/chat/MessagesTimeline.tsx
@macroscopeapp

macroscopeappBot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 515ee1f

Macroscope's review found this PR approvable — This is a focused chat-timeline bug fix that keeps trailing tool groups visible and places assistant metadata after them, with targeted regression coverage. The changes are confined to row derivation and rendering and introduce no defaults, schema, infrastructure, security, billing, authentication, or static-analysis configuration changes.

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

@Yash-Singh1
Yash-Singh1 merged commit 4b26132 into mainSep 3, 2026
27 checks passed
@Yash-Singh1
Yash-Singh1 deleted the t3code/show-trailing-tool-groups branch September 3, 2026 09:20
@Yash-Singh1
Yash-Singh1 restored the t3code/show-trailing-tool-groups branch September 3, 2026 09:20
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 3, 2026
## What's Changed
* fix(web): keep trailing tool groups out of "Worked for" accordion by @Yash-Singh1 in pingdotgg/t3code#9384
* feat(marketing): put named-developer quotes on the landing page by @t3dotgg in pingdotgg/t3code#9385
* fix(claude): expand slash commands when a message has attachments by @t3dotgg in pingdotgg/t3code#9122
* fix(web): stop the resting composer layout loop by @t3dotgg in pingdotgg/t3code#9393
* fix(web): render assistant images inline in chat by @t3dotgg in pingdotgg/t3code#9126
* feat(providers): add Google Antigravity via the official ACP agent by @t3dotgg in pingdotgg/t3code#9348
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260903.1267...v0.0.39-nightly.20260903.1268
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260903.1268
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR 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

@Yash-Singh1
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

fix(web): keep trailing tool groups out of "Worked for" accordion - #9384

Merged
Yash-Singh1 merged 2 commits into
mainfrom
t3code/show-trailing-tool-groups
Sep 3, 2026
Merged

fix(web): keep trailing tool groups out of "Worked for" accordion#9384
Yash-Singh1 merged 2 commits into
mainfrom
t3code/show-trailing-tool-groups

Conversation

@Yash-Singh1

@Yash-Singh1Yash-Singh1 commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

What Changed

Simplified composer and timeline behavior so trailing tool groups remain visible after terminal responses. Removed the hidden resting-controls layout and related scroll, selection, and event-scope plumbing, while preserving responsive branch and environment controls across web and mobile surfaces.

Why

Trailing tool groups could disappear after terminal responses because the composer relied on hidden controls, measured hosts, and restoration logic tied to timeline navigation. This change removes that fragile coordination and keeps the visible layout content-driven.

UI Changes

No screenshots included. The change updates composer context controls, branch and environment selectors, sidebar fallback icons, chat timeline behavior, and mobile work-log sizing.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Medium Risk
Changes core chat timeline row derivation and folding rules; regressions could affect turn folding, tool presentation, and assistant metadata placement across settled and error turns.

Overview
Settled-turn folding no longer hides work that appears after the terminal assistant message. The "Worked for …" accordion only folds entries at or before that message, so trailing commands and tool summaries stay on the timeline when a turn errors or finishes awkwardly.

Trailing tools read as one assistant block: when tool rows follow the final assistant text for the same turn, copy/timestamp metadata moves to a new assistant-meta row after those tools (always visible), instead of sitting under the prose alone.

Single completed tool calls render as direct work rows with an optional displayLabel (including lifecycle-collapsed start→complete pairs), replacing the previous work-toggle summary row for one-off calls. Multi-entry groups still use toggles; work-toggle rows now carry turnId for the trailing-meta logic.

UI wiring: shared AssistantMessageMeta, LegendListextraData refresh on row count changes, and stable-row equality updates for the new fields.

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

Note

Fix trailing tool groups in MessagesTimeline to render after assistant response

  • Settled turns now leave timeline entries after the terminal assistant message visible instead of folding them into the pre-response fold, via changes to deriveTurnFolds in MessagesTimeline.logic.ts.
  • A new attachTrailingToolGroupsToAssistant pass suppresses metadata and copy button on the assistant message row and inserts an assistant-meta footer row after the last trailing tool group, so the metadata appears once after the trailing activity.
  • Single completed tool calls now render directly as a work row with a display label instead of a summarized work-toggle row; multi-entry groups still use the grouped presentation.
  • LegendList receives rows.length as extraData so the list refreshes when derived row count changes.
  • Behavioral Change: MessagesTimelineRow gains assistant-meta variant, work.displayLabel, and work-toggle.turnId fields; isRowUnchanged compares these new fields for row reuse. AssistantCopyButton interface changed from receiving a full message-row object to receiving message, copyButtonVisible, and streaming directly.

Macroscope summarized 515ee1f.

- Render single completed tool calls directly
- Keep assistant metadata attached after trailing tool groups
@github-actionsgithub-actionsBot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Sep 3, 2026
@Yash-Singh1Yash-Singh1 changed the title fix(web): keep trailing tool groups visible after terminal responsesfix(web): keep trailing tool groups out of "Worked for" accordionSep 3, 2026
@github-actionsgithub-actionsBot added the size:L 100-499 changed lines (additions + deletions). label Sep 3, 2026
@github-actions

github-actionsBot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.5 KiB13.6 KiB+71 B (+0.5%)15.1 KiB
CodexThread snapshot wire7.0 KiB7.0 KiB−3 B (−0.0%)7.3 KiB
CodexLive turn WebSocket wire6.5 KiB6.6 KiB+74 B (+1.1%)7.8 KiB
CodexLive turn WebSocket decoded57.0 KiB57.1 KiB+88 B (+0.2%)66.4 KiB
CodexLive turn messages810+2 (+25.0%)21
ClaudeTotal thread wire13.6 KiB13.6 KiB+20 B (+0.1%)15.1 KiB
ClaudeThread snapshot wire7.0 KiB7.0 KiB+3 B (+0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.5 KiB6.6 KiB+17 B (+0.3%)7.8 KiB
ClaudeLive turn WebSocket decoded57.9 KiB57.9 KiB0 B (0.0%)66.4 KiB
ClaudeLive turn messages10100 (0.0%)21

Baseline: 5b8445b · PR result: 515ee1f · 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: 113.8 KiB
  • Claude decoded thread snapshot: 114.5 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

Comment threadapps/web/src/components/chat/MessagesTimeline.logic.ts

@cursorcursorBot 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.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 3cf2ce7. Configure here.

Comment threadapps/web/src/components/chat/MessagesTimeline.tsx
@macroscopeapp

macroscopeappBot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 515ee1f

Macroscope's review found this PR approvable — This is a focused chat-timeline bug fix that keeps trailing tool groups visible and places assistant metadata after them, with targeted regression coverage. The changes are confined to row derivation and rendering and introduce no defaults, schema, infrastructure, security, billing, authentication, or static-analysis configuration changes.

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

@Yash-Singh1
Yash-Singh1 merged commit 4b26132 into mainSep 3, 2026
27 checks passed
@Yash-Singh1
Yash-Singh1 deleted the t3code/show-trailing-tool-groups branch September 3, 2026 09:20
@Yash-Singh1
Yash-Singh1 restored the t3code/show-trailing-tool-groups branch September 3, 2026 09:20
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 3, 2026
## What's Changed
* fix(web): keep trailing tool groups out of "Worked for" accordion by @Yash-Singh1 in pingdotgg/t3code#9384
* feat(marketing): put named-developer quotes on the landing page by @t3dotgg in pingdotgg/t3code#9385
* fix(claude): expand slash commands when a message has attachments by @t3dotgg in pingdotgg/t3code#9122
* fix(web): stop the resting composer layout loop by @t3dotgg in pingdotgg/t3code#9393
* fix(web): render assistant images inline in chat by @t3dotgg in pingdotgg/t3code#9126
* feat(providers): add Google Antigravity via the official ACP agent by @t3dotgg in pingdotgg/t3code#9348
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260903.1267...v0.0.39-nightly.20260903.1268
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260903.1268
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR 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

@Yash-Singh1
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(web): keep trailing tool groups out of "Worked for" accordion - #9384

Merged
Yash-Singh1 merged 2 commits into
mainfrom
t3code/show-trailing-tool-groups
Sep 3, 2026
Merged

fix(web): keep trailing tool groups out of "Worked for" accordion#9384
Yash-Singh1 merged 2 commits into
mainfrom
t3code/show-trailing-tool-groups

Conversation

@Yash-Singh1

@Yash-Singh1Yash-Singh1 commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

What Changed

Simplified composer and timeline behavior so trailing tool groups remain visible after terminal responses. Removed the hidden resting-controls layout and related scroll, selection, and event-scope plumbing, while preserving responsive branch and environment controls across web and mobile surfaces.

Why

Trailing tool groups could disappear after terminal responses because the composer relied on hidden controls, measured hosts, and restoration logic tied to timeline navigation. This change removes that fragile coordination and keeps the visible layout content-driven.

UI Changes

No screenshots included. The change updates composer context controls, branch and environment selectors, sidebar fallback icons, chat timeline behavior, and mobile work-log sizing.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Medium Risk
Changes core chat timeline row derivation and folding rules; regressions could affect turn folding, tool presentation, and assistant metadata placement across settled and error turns.

Overview
Settled-turn folding no longer hides work that appears after the terminal assistant message. The "Worked for …" accordion only folds entries at or before that message, so trailing commands and tool summaries stay on the timeline when a turn errors or finishes awkwardly.

Trailing tools read as one assistant block: when tool rows follow the final assistant text for the same turn, copy/timestamp metadata moves to a new assistant-meta row after those tools (always visible), instead of sitting under the prose alone.

Single completed tool calls render as direct work rows with an optional displayLabel (including lifecycle-collapsed start→complete pairs), replacing the previous work-toggle summary row for one-off calls. Multi-entry groups still use toggles; work-toggle rows now carry turnId for the trailing-meta logic.

UI wiring: shared AssistantMessageMeta, LegendListextraData refresh on row count changes, and stable-row equality updates for the new fields.

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

Note

Fix trailing tool groups in MessagesTimeline to render after assistant response

  • Settled turns now leave timeline entries after the terminal assistant message visible instead of folding them into the pre-response fold, via changes to deriveTurnFolds in MessagesTimeline.logic.ts.
  • A new attachTrailingToolGroupsToAssistant pass suppresses metadata and copy button on the assistant message row and inserts an assistant-meta footer row after the last trailing tool group, so the metadata appears once after the trailing activity.
  • Single completed tool calls now render directly as a work row with a display label instead of a summarized work-toggle row; multi-entry groups still use the grouped presentation.
  • LegendList receives rows.length as extraData so the list refreshes when derived row count changes.
  • Behavioral Change: MessagesTimelineRow gains assistant-meta variant, work.displayLabel, and work-toggle.turnId fields; isRowUnchanged compares these new fields for row reuse. AssistantCopyButton interface changed from receiving a full message-row object to receiving message, copyButtonVisible, and streaming directly.

Macroscope summarized 515ee1f.

- Render single completed tool calls directly
- Keep assistant metadata attached after trailing tool groups
@github-actionsgithub-actionsBot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Sep 3, 2026
@Yash-Singh1Yash-Singh1 changed the title fix(web): keep trailing tool groups visible after terminal responsesfix(web): keep trailing tool groups out of "Worked for" accordionSep 3, 2026
@github-actionsgithub-actionsBot added the size:L 100-499 changed lines (additions + deletions). label Sep 3, 2026
@github-actions

github-actionsBot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.5 KiB13.6 KiB+71 B (+0.5%)15.1 KiB
CodexThread snapshot wire7.0 KiB7.0 KiB−3 B (−0.0%)7.3 KiB
CodexLive turn WebSocket wire6.5 KiB6.6 KiB+74 B (+1.1%)7.8 KiB
CodexLive turn WebSocket decoded57.0 KiB57.1 KiB+88 B (+0.2%)66.4 KiB
CodexLive turn messages810+2 (+25.0%)21
ClaudeTotal thread wire13.6 KiB13.6 KiB+20 B (+0.1%)15.1 KiB
ClaudeThread snapshot wire7.0 KiB7.0 KiB+3 B (+0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.5 KiB6.6 KiB+17 B (+0.3%)7.8 KiB
ClaudeLive turn WebSocket decoded57.9 KiB57.9 KiB0 B (0.0%)66.4 KiB
ClaudeLive turn messages10100 (0.0%)21

Baseline: 5b8445b · PR result: 515ee1f · 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: 113.8 KiB
  • Claude decoded thread snapshot: 114.5 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

Comment threadapps/web/src/components/chat/MessagesTimeline.logic.ts

@cursorcursorBot 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.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 3cf2ce7. Configure here.

Comment threadapps/web/src/components/chat/MessagesTimeline.tsx
@macroscopeapp

macroscopeappBot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 515ee1f

Macroscope's review found this PR approvable — This is a focused chat-timeline bug fix that keeps trailing tool groups visible and places assistant metadata after them, with targeted regression coverage. The changes are confined to row derivation and rendering and introduce no defaults, schema, infrastructure, security, billing, authentication, or static-analysis configuration changes.

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

@Yash-Singh1
Yash-Singh1 merged commit 4b26132 into mainSep 3, 2026
27 checks passed
@Yash-Singh1
Yash-Singh1 deleted the t3code/show-trailing-tool-groups branch September 3, 2026 09:20
@Yash-Singh1
Yash-Singh1 restored the t3code/show-trailing-tool-groups branch September 3, 2026 09:20
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 3, 2026
## What's Changed
* fix(web): keep trailing tool groups out of "Worked for" accordion by @Yash-Singh1 in pingdotgg/t3code#9384
* feat(marketing): put named-developer quotes on the landing page by @t3dotgg in pingdotgg/t3code#9385
* fix(claude): expand slash commands when a message has attachments by @t3dotgg in pingdotgg/t3code#9122
* fix(web): stop the resting composer layout loop by @t3dotgg in pingdotgg/t3code#9393
* fix(web): render assistant images inline in chat by @t3dotgg in pingdotgg/t3code#9126
* feat(providers): add Google Antigravity via the official ACP agent by @t3dotgg in pingdotgg/t3code#9348
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260903.1267...v0.0.39-nightly.20260903.1268
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260903.1268
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR 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

@Yash-Singh1
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(web): keep trailing tool groups out of "Worked for" accordion - #9384

Merged
Yash-Singh1 merged 2 commits into
mainfrom
t3code/show-trailing-tool-groups
Sep 3, 2026
Merged

fix(web): keep trailing tool groups out of "Worked for" accordion#9384
Yash-Singh1 merged 2 commits into
mainfrom
t3code/show-trailing-tool-groups

Conversation

@Yash-Singh1

@Yash-Singh1Yash-Singh1 commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

What Changed

Simplified composer and timeline behavior so trailing tool groups remain visible after terminal responses. Removed the hidden resting-controls layout and related scroll, selection, and event-scope plumbing, while preserving responsive branch and environment controls across web and mobile surfaces.

Why

Trailing tool groups could disappear after terminal responses because the composer relied on hidden controls, measured hosts, and restoration logic tied to timeline navigation. This change removes that fragile coordination and keeps the visible layout content-driven.

UI Changes

No screenshots included. The change updates composer context controls, branch and environment selectors, sidebar fallback icons, chat timeline behavior, and mobile work-log sizing.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Medium Risk
Changes core chat timeline row derivation and folding rules; regressions could affect turn folding, tool presentation, and assistant metadata placement across settled and error turns.

Overview
Settled-turn folding no longer hides work that appears after the terminal assistant message. The "Worked for …" accordion only folds entries at or before that message, so trailing commands and tool summaries stay on the timeline when a turn errors or finishes awkwardly.

Trailing tools read as one assistant block: when tool rows follow the final assistant text for the same turn, copy/timestamp metadata moves to a new assistant-meta row after those tools (always visible), instead of sitting under the prose alone.

Single completed tool calls render as direct work rows with an optional displayLabel (including lifecycle-collapsed start→complete pairs), replacing the previous work-toggle summary row for one-off calls. Multi-entry groups still use toggles; work-toggle rows now carry turnId for the trailing-meta logic.

UI wiring: shared AssistantMessageMeta, LegendListextraData refresh on row count changes, and stable-row equality updates for the new fields.

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

Note

Fix trailing tool groups in MessagesTimeline to render after assistant response

  • Settled turns now leave timeline entries after the terminal assistant message visible instead of folding them into the pre-response fold, via changes to deriveTurnFolds in MessagesTimeline.logic.ts.
  • A new attachTrailingToolGroupsToAssistant pass suppresses metadata and copy button on the assistant message row and inserts an assistant-meta footer row after the last trailing tool group, so the metadata appears once after the trailing activity.
  • Single completed tool calls now render directly as a work row with a display label instead of a summarized work-toggle row; multi-entry groups still use the grouped presentation.
  • LegendList receives rows.length as extraData so the list refreshes when derived row count changes.
  • Behavioral Change: MessagesTimelineRow gains assistant-meta variant, work.displayLabel, and work-toggle.turnId fields; isRowUnchanged compares these new fields for row reuse. AssistantCopyButton interface changed from receiving a full message-row object to receiving message, copyButtonVisible, and streaming directly.

Macroscope summarized 515ee1f.

- Render single completed tool calls directly
- Keep assistant metadata attached after trailing tool groups
@github-actionsgithub-actionsBot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Sep 3, 2026
@Yash-Singh1Yash-Singh1 changed the title fix(web): keep trailing tool groups visible after terminal responsesfix(web): keep trailing tool groups out of "Worked for" accordionSep 3, 2026
@github-actionsgithub-actionsBot added the size:L 100-499 changed lines (additions + deletions). label Sep 3, 2026
@github-actions

github-actionsBot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.5 KiB13.6 KiB+71 B (+0.5%)15.1 KiB
CodexThread snapshot wire7.0 KiB7.0 KiB−3 B (−0.0%)7.3 KiB
CodexLive turn WebSocket wire6.5 KiB6.6 KiB+74 B (+1.1%)7.8 KiB
CodexLive turn WebSocket decoded57.0 KiB57.1 KiB+88 B (+0.2%)66.4 KiB
CodexLive turn messages810+2 (+25.0%)21
ClaudeTotal thread wire13.6 KiB13.6 KiB+20 B (+0.1%)15.1 KiB
ClaudeThread snapshot wire7.0 KiB7.0 KiB+3 B (+0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.5 KiB6.6 KiB+17 B (+0.3%)7.8 KiB
ClaudeLive turn WebSocket decoded57.9 KiB57.9 KiB0 B (0.0%)66.4 KiB
ClaudeLive turn messages10100 (0.0%)21

Baseline: 5b8445b · PR result: 515ee1f · 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: 113.8 KiB
  • Claude decoded thread snapshot: 114.5 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

Comment threadapps/web/src/components/chat/MessagesTimeline.logic.ts

@cursorcursorBot 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.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 3cf2ce7. Configure here.

Comment threadapps/web/src/components/chat/MessagesTimeline.tsx
@macroscopeapp

macroscopeappBot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 515ee1f

Macroscope's review found this PR approvable — This is a focused chat-timeline bug fix that keeps trailing tool groups visible and places assistant metadata after them, with targeted regression coverage. The changes are confined to row derivation and rendering and introduce no defaults, schema, infrastructure, security, billing, authentication, or static-analysis configuration changes.

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

@Yash-Singh1
Yash-Singh1 merged commit 4b26132 into mainSep 3, 2026
27 checks passed
@Yash-Singh1
Yash-Singh1 deleted the t3code/show-trailing-tool-groups branch September 3, 2026 09:20
@Yash-Singh1
Yash-Singh1 restored the t3code/show-trailing-tool-groups branch September 3, 2026 09:20
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 3, 2026
## What's Changed
* fix(web): keep trailing tool groups out of "Worked for" accordion by @Yash-Singh1 in pingdotgg/t3code#9384
* feat(marketing): put named-developer quotes on the landing page by @t3dotgg in pingdotgg/t3code#9385
* fix(claude): expand slash commands when a message has attachments by @t3dotgg in pingdotgg/t3code#9122
* fix(web): stop the resting composer layout loop by @t3dotgg in pingdotgg/t3code#9393
* fix(web): render assistant images inline in chat by @t3dotgg in pingdotgg/t3code#9126
* feat(providers): add Google Antigravity via the official ACP agent by @t3dotgg in pingdotgg/t3code#9348
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260903.1267...v0.0.39-nightly.20260903.1268
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260903.1268
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR 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

@Yash-Singh1
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

fix(web): keep trailing tool groups out of "Worked for" accordion - #9384

Merged
Yash-Singh1 merged 2 commits into
mainfrom
t3code/show-trailing-tool-groups
Sep 3, 2026
Merged

fix(web): keep trailing tool groups out of "Worked for" accordion#9384
Yash-Singh1 merged 2 commits into
mainfrom
t3code/show-trailing-tool-groups

Conversation

@Yash-Singh1

@Yash-Singh1Yash-Singh1 commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

What Changed

Simplified composer and timeline behavior so trailing tool groups remain visible after terminal responses. Removed the hidden resting-controls layout and related scroll, selection, and event-scope plumbing, while preserving responsive branch and environment controls across web and mobile surfaces.

Why

Trailing tool groups could disappear after terminal responses because the composer relied on hidden controls, measured hosts, and restoration logic tied to timeline navigation. This change removes that fragile coordination and keeps the visible layout content-driven.

UI Changes

No screenshots included. The change updates composer context controls, branch and environment selectors, sidebar fallback icons, chat timeline behavior, and mobile work-log sizing.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Medium Risk
Changes core chat timeline row derivation and folding rules; regressions could affect turn folding, tool presentation, and assistant metadata placement across settled and error turns.

Overview
Settled-turn folding no longer hides work that appears after the terminal assistant message. The "Worked for …" accordion only folds entries at or before that message, so trailing commands and tool summaries stay on the timeline when a turn errors or finishes awkwardly.

Trailing tools read as one assistant block: when tool rows follow the final assistant text for the same turn, copy/timestamp metadata moves to a new assistant-meta row after those tools (always visible), instead of sitting under the prose alone.

Single completed tool calls render as direct work rows with an optional displayLabel (including lifecycle-collapsed start→complete pairs), replacing the previous work-toggle summary row for one-off calls. Multi-entry groups still use toggles; work-toggle rows now carry turnId for the trailing-meta logic.

UI wiring: shared AssistantMessageMeta, LegendListextraData refresh on row count changes, and stable-row equality updates for the new fields.

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

Note

Fix trailing tool groups in MessagesTimeline to render after assistant response

  • Settled turns now leave timeline entries after the terminal assistant message visible instead of folding them into the pre-response fold, via changes to deriveTurnFolds in MessagesTimeline.logic.ts.
  • A new attachTrailingToolGroupsToAssistant pass suppresses metadata and copy button on the assistant message row and inserts an assistant-meta footer row after the last trailing tool group, so the metadata appears once after the trailing activity.
  • Single completed tool calls now render directly as a work row with a display label instead of a summarized work-toggle row; multi-entry groups still use the grouped presentation.
  • LegendList receives rows.length as extraData so the list refreshes when derived row count changes.
  • Behavioral Change: MessagesTimelineRow gains assistant-meta variant, work.displayLabel, and work-toggle.turnId fields; isRowUnchanged compares these new fields for row reuse. AssistantCopyButton interface changed from receiving a full message-row object to receiving message, copyButtonVisible, and streaming directly.

Macroscope summarized 515ee1f.

- Render single completed tool calls directly
- Keep assistant metadata attached after trailing tool groups
@github-actionsgithub-actionsBot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Sep 3, 2026
@Yash-Singh1Yash-Singh1 changed the title fix(web): keep trailing tool groups visible after terminal responsesfix(web): keep trailing tool groups out of "Worked for" accordionSep 3, 2026
@github-actionsgithub-actionsBot added the size:L 100-499 changed lines (additions + deletions). label Sep 3, 2026
@github-actions

github-actionsBot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.5 KiB13.6 KiB+71 B (+0.5%)15.1 KiB
CodexThread snapshot wire7.0 KiB7.0 KiB−3 B (−0.0%)7.3 KiB
CodexLive turn WebSocket wire6.5 KiB6.6 KiB+74 B (+1.1%)7.8 KiB
CodexLive turn WebSocket decoded57.0 KiB57.1 KiB+88 B (+0.2%)66.4 KiB
CodexLive turn messages810+2 (+25.0%)21
ClaudeTotal thread wire13.6 KiB13.6 KiB+20 B (+0.1%)15.1 KiB
ClaudeThread snapshot wire7.0 KiB7.0 KiB+3 B (+0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.5 KiB6.6 KiB+17 B (+0.3%)7.8 KiB
ClaudeLive turn WebSocket decoded57.9 KiB57.9 KiB0 B (0.0%)66.4 KiB
ClaudeLive turn messages10100 (0.0%)21

Baseline: 5b8445b · PR result: 515ee1f · 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: 113.8 KiB
  • Claude decoded thread snapshot: 114.5 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

Comment threadapps/web/src/components/chat/MessagesTimeline.logic.ts

@cursorcursorBot 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.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 3cf2ce7. Configure here.

Comment threadapps/web/src/components/chat/MessagesTimeline.tsx
@macroscopeapp

macroscopeappBot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 515ee1f

Macroscope's review found this PR approvable — This is a focused chat-timeline bug fix that keeps trailing tool groups visible and places assistant metadata after them, with targeted regression coverage. The changes are confined to row derivation and rendering and introduce no defaults, schema, infrastructure, security, billing, authentication, or static-analysis configuration changes.

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

@Yash-Singh1
Yash-Singh1 merged commit 4b26132 into mainSep 3, 2026
27 checks passed
@Yash-Singh1
Yash-Singh1 deleted the t3code/show-trailing-tool-groups branch September 3, 2026 09:20
@Yash-Singh1
Yash-Singh1 restored the t3code/show-trailing-tool-groups branch September 3, 2026 09:20
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 3, 2026
## What's Changed
* fix(web): keep trailing tool groups out of "Worked for" accordion by @Yash-Singh1 in pingdotgg/t3code#9384
* feat(marketing): put named-developer quotes on the landing page by @t3dotgg in pingdotgg/t3code#9385
* fix(claude): expand slash commands when a message has attachments by @t3dotgg in pingdotgg/t3code#9122
* fix(web): stop the resting composer layout loop by @t3dotgg in pingdotgg/t3code#9393
* fix(web): render assistant images inline in chat by @t3dotgg in pingdotgg/t3code#9126
* feat(providers): add Google Antigravity via the official ACP agent by @t3dotgg in pingdotgg/t3code#9348
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260903.1267...v0.0.39-nightly.20260903.1268
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260903.1268
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR 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

@Yash-Singh1
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(web): keep trailing tool groups out of "Worked for" accordion - #9384

Merged
Yash-Singh1 merged 2 commits into
mainfrom
t3code/show-trailing-tool-groups
Sep 3, 2026
Merged

fix(web): keep trailing tool groups out of "Worked for" accordion#9384
Yash-Singh1 merged 2 commits into
mainfrom
t3code/show-trailing-tool-groups

Conversation

@Yash-Singh1

@Yash-Singh1Yash-Singh1 commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

What Changed

Simplified composer and timeline behavior so trailing tool groups remain visible after terminal responses. Removed the hidden resting-controls layout and related scroll, selection, and event-scope plumbing, while preserving responsive branch and environment controls across web and mobile surfaces.

Why

Trailing tool groups could disappear after terminal responses because the composer relied on hidden controls, measured hosts, and restoration logic tied to timeline navigation. This change removes that fragile coordination and keeps the visible layout content-driven.

UI Changes

No screenshots included. The change updates composer context controls, branch and environment selectors, sidebar fallback icons, chat timeline behavior, and mobile work-log sizing.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Medium Risk
Changes core chat timeline row derivation and folding rules; regressions could affect turn folding, tool presentation, and assistant metadata placement across settled and error turns.

Overview
Settled-turn folding no longer hides work that appears after the terminal assistant message. The "Worked for …" accordion only folds entries at or before that message, so trailing commands and tool summaries stay on the timeline when a turn errors or finishes awkwardly.

Trailing tools read as one assistant block: when tool rows follow the final assistant text for the same turn, copy/timestamp metadata moves to a new assistant-meta row after those tools (always visible), instead of sitting under the prose alone.

Single completed tool calls render as direct work rows with an optional displayLabel (including lifecycle-collapsed start→complete pairs), replacing the previous work-toggle summary row for one-off calls. Multi-entry groups still use toggles; work-toggle rows now carry turnId for the trailing-meta logic.

UI wiring: shared AssistantMessageMeta, LegendListextraData refresh on row count changes, and stable-row equality updates for the new fields.

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

Note

Fix trailing tool groups in MessagesTimeline to render after assistant response

  • Settled turns now leave timeline entries after the terminal assistant message visible instead of folding them into the pre-response fold, via changes to deriveTurnFolds in MessagesTimeline.logic.ts.
  • A new attachTrailingToolGroupsToAssistant pass suppresses metadata and copy button on the assistant message row and inserts an assistant-meta footer row after the last trailing tool group, so the metadata appears once after the trailing activity.
  • Single completed tool calls now render directly as a work row with a display label instead of a summarized work-toggle row; multi-entry groups still use the grouped presentation.
  • LegendList receives rows.length as extraData so the list refreshes when derived row count changes.
  • Behavioral Change: MessagesTimelineRow gains assistant-meta variant, work.displayLabel, and work-toggle.turnId fields; isRowUnchanged compares these new fields for row reuse. AssistantCopyButton interface changed from receiving a full message-row object to receiving message, copyButtonVisible, and streaming directly.

Macroscope summarized 515ee1f.

- Render single completed tool calls directly
- Keep assistant metadata attached after trailing tool groups
@github-actionsgithub-actionsBot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Sep 3, 2026
@Yash-Singh1Yash-Singh1 changed the title fix(web): keep trailing tool groups visible after terminal responsesfix(web): keep trailing tool groups out of "Worked for" accordionSep 3, 2026
@github-actionsgithub-actionsBot added the size:L 100-499 changed lines (additions + deletions). label Sep 3, 2026
@github-actions

github-actionsBot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.5 KiB13.6 KiB+71 B (+0.5%)15.1 KiB
CodexThread snapshot wire7.0 KiB7.0 KiB−3 B (−0.0%)7.3 KiB
CodexLive turn WebSocket wire6.5 KiB6.6 KiB+74 B (+1.1%)7.8 KiB
CodexLive turn WebSocket decoded57.0 KiB57.1 KiB+88 B (+0.2%)66.4 KiB
CodexLive turn messages810+2 (+25.0%)21
ClaudeTotal thread wire13.6 KiB13.6 KiB+20 B (+0.1%)15.1 KiB
ClaudeThread snapshot wire7.0 KiB7.0 KiB+3 B (+0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.5 KiB6.6 KiB+17 B (+0.3%)7.8 KiB
ClaudeLive turn WebSocket decoded57.9 KiB57.9 KiB0 B (0.0%)66.4 KiB
ClaudeLive turn messages10100 (0.0%)21

Baseline: 5b8445b · PR result: 515ee1f · 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: 113.8 KiB
  • Claude decoded thread snapshot: 114.5 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

Comment threadapps/web/src/components/chat/MessagesTimeline.logic.ts

@cursorcursorBot 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.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 3cf2ce7. Configure here.

Comment threadapps/web/src/components/chat/MessagesTimeline.tsx
@macroscopeapp

macroscopeappBot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 515ee1f

Macroscope's review found this PR approvable — This is a focused chat-timeline bug fix that keeps trailing tool groups visible and places assistant metadata after them, with targeted regression coverage. The changes are confined to row derivation and rendering and introduce no defaults, schema, infrastructure, security, billing, authentication, or static-analysis configuration changes.

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

@Yash-Singh1
Yash-Singh1 merged commit 4b26132 into mainSep 3, 2026
27 checks passed
@Yash-Singh1
Yash-Singh1 deleted the t3code/show-trailing-tool-groups branch September 3, 2026 09:20
@Yash-Singh1
Yash-Singh1 restored the t3code/show-trailing-tool-groups branch September 3, 2026 09:20
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 3, 2026
## What's Changed
* fix(web): keep trailing tool groups out of "Worked for" accordion by @Yash-Singh1 in pingdotgg/t3code#9384
* feat(marketing): put named-developer quotes on the landing page by @t3dotgg in pingdotgg/t3code#9385
* fix(claude): expand slash commands when a message has attachments by @t3dotgg in pingdotgg/t3code#9122
* fix(web): stop the resting composer layout loop by @t3dotgg in pingdotgg/t3code#9393
* fix(web): render assistant images inline in chat by @t3dotgg in pingdotgg/t3code#9126
* feat(providers): add Google Antigravity via the official ACP agent by @t3dotgg in pingdotgg/t3code#9348
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260903.1267...v0.0.39-nightly.20260903.1268
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260903.1268
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR 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

@Yash-Singh1
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(web): keep trailing tool groups out of "Worked for" accordion - #9384

Merged
Yash-Singh1 merged 2 commits into
mainfrom
t3code/show-trailing-tool-groups
Sep 3, 2026
Merged

fix(web): keep trailing tool groups out of "Worked for" accordion#9384
Yash-Singh1 merged 2 commits into
mainfrom
t3code/show-trailing-tool-groups

Conversation

@Yash-Singh1

@Yash-Singh1Yash-Singh1 commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

What Changed

Simplified composer and timeline behavior so trailing tool groups remain visible after terminal responses. Removed the hidden resting-controls layout and related scroll, selection, and event-scope plumbing, while preserving responsive branch and environment controls across web and mobile surfaces.

Why

Trailing tool groups could disappear after terminal responses because the composer relied on hidden controls, measured hosts, and restoration logic tied to timeline navigation. This change removes that fragile coordination and keeps the visible layout content-driven.

UI Changes

No screenshots included. The change updates composer context controls, branch and environment selectors, sidebar fallback icons, chat timeline behavior, and mobile work-log sizing.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Medium Risk
Changes core chat timeline row derivation and folding rules; regressions could affect turn folding, tool presentation, and assistant metadata placement across settled and error turns.

Overview
Settled-turn folding no longer hides work that appears after the terminal assistant message. The "Worked for …" accordion only folds entries at or before that message, so trailing commands and tool summaries stay on the timeline when a turn errors or finishes awkwardly.

Trailing tools read as one assistant block: when tool rows follow the final assistant text for the same turn, copy/timestamp metadata moves to a new assistant-meta row after those tools (always visible), instead of sitting under the prose alone.

Single completed tool calls render as direct work rows with an optional displayLabel (including lifecycle-collapsed start→complete pairs), replacing the previous work-toggle summary row for one-off calls. Multi-entry groups still use toggles; work-toggle rows now carry turnId for the trailing-meta logic.

UI wiring: shared AssistantMessageMeta, LegendListextraData refresh on row count changes, and stable-row equality updates for the new fields.

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

Note

Fix trailing tool groups in MessagesTimeline to render after assistant response

  • Settled turns now leave timeline entries after the terminal assistant message visible instead of folding them into the pre-response fold, via changes to deriveTurnFolds in MessagesTimeline.logic.ts.
  • A new attachTrailingToolGroupsToAssistant pass suppresses metadata and copy button on the assistant message row and inserts an assistant-meta footer row after the last trailing tool group, so the metadata appears once after the trailing activity.
  • Single completed tool calls now render directly as a work row with a display label instead of a summarized work-toggle row; multi-entry groups still use the grouped presentation.
  • LegendList receives rows.length as extraData so the list refreshes when derived row count changes.
  • Behavioral Change: MessagesTimelineRow gains assistant-meta variant, work.displayLabel, and work-toggle.turnId fields; isRowUnchanged compares these new fields for row reuse. AssistantCopyButton interface changed from receiving a full message-row object to receiving message, copyButtonVisible, and streaming directly.

Macroscope summarized 515ee1f.

- Render single completed tool calls directly
- Keep assistant metadata attached after trailing tool groups
@github-actionsgithub-actionsBot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Sep 3, 2026
@Yash-Singh1Yash-Singh1 changed the title fix(web): keep trailing tool groups visible after terminal responsesfix(web): keep trailing tool groups out of "Worked for" accordionSep 3, 2026
@github-actionsgithub-actionsBot added the size:L 100-499 changed lines (additions + deletions). label Sep 3, 2026
@github-actions

github-actionsBot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.5 KiB13.6 KiB+71 B (+0.5%)15.1 KiB
CodexThread snapshot wire7.0 KiB7.0 KiB−3 B (−0.0%)7.3 KiB
CodexLive turn WebSocket wire6.5 KiB6.6 KiB+74 B (+1.1%)7.8 KiB
CodexLive turn WebSocket decoded57.0 KiB57.1 KiB+88 B (+0.2%)66.4 KiB
CodexLive turn messages810+2 (+25.0%)21
ClaudeTotal thread wire13.6 KiB13.6 KiB+20 B (+0.1%)15.1 KiB
ClaudeThread snapshot wire7.0 KiB7.0 KiB+3 B (+0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.5 KiB6.6 KiB+17 B (+0.3%)7.8 KiB
ClaudeLive turn WebSocket decoded57.9 KiB57.9 KiB0 B (0.0%)66.4 KiB
ClaudeLive turn messages10100 (0.0%)21

Baseline: 5b8445b · PR result: 515ee1f · 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: 113.8 KiB
  • Claude decoded thread snapshot: 114.5 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

Comment threadapps/web/src/components/chat/MessagesTimeline.logic.ts

@cursorcursorBot 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.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 3cf2ce7. Configure here.

Comment threadapps/web/src/components/chat/MessagesTimeline.tsx
@macroscopeapp

macroscopeappBot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 515ee1f

Macroscope's review found this PR approvable — This is a focused chat-timeline bug fix that keeps trailing tool groups visible and places assistant metadata after them, with targeted regression coverage. The changes are confined to row derivation and rendering and introduce no defaults, schema, infrastructure, security, billing, authentication, or static-analysis configuration changes.

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

@Yash-Singh1
Yash-Singh1 merged commit 4b26132 into mainSep 3, 2026
27 checks passed
@Yash-Singh1
Yash-Singh1 deleted the t3code/show-trailing-tool-groups branch September 3, 2026 09:20
@Yash-Singh1
Yash-Singh1 restored the t3code/show-trailing-tool-groups branch September 3, 2026 09:20
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 3, 2026
## What's Changed
* fix(web): keep trailing tool groups out of "Worked for" accordion by @Yash-Singh1 in pingdotgg/t3code#9384
* feat(marketing): put named-developer quotes on the landing page by @t3dotgg in pingdotgg/t3code#9385
* fix(claude): expand slash commands when a message has attachments by @t3dotgg in pingdotgg/t3code#9122
* fix(web): stop the resting composer layout loop by @t3dotgg in pingdotgg/t3code#9393
* fix(web): render assistant images inline in chat by @t3dotgg in pingdotgg/t3code#9126
* feat(providers): add Google Antigravity via the official ACP agent by @t3dotgg in pingdotgg/t3code#9348
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260903.1267...v0.0.39-nightly.20260903.1268
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260903.1268
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR 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

@Yash-Singh1
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

fix(web): keep trailing tool groups out of "Worked for" accordion - #9384

Merged
Yash-Singh1 merged 2 commits into
mainfrom
t3code/show-trailing-tool-groups
Sep 3, 2026
Merged

fix(web): keep trailing tool groups out of "Worked for" accordion#9384
Yash-Singh1 merged 2 commits into
mainfrom
t3code/show-trailing-tool-groups

Conversation

@Yash-Singh1

@Yash-Singh1Yash-Singh1 commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

What Changed

Simplified composer and timeline behavior so trailing tool groups remain visible after terminal responses. Removed the hidden resting-controls layout and related scroll, selection, and event-scope plumbing, while preserving responsive branch and environment controls across web and mobile surfaces.

Why

Trailing tool groups could disappear after terminal responses because the composer relied on hidden controls, measured hosts, and restoration logic tied to timeline navigation. This change removes that fragile coordination and keeps the visible layout content-driven.

UI Changes

No screenshots included. The change updates composer context controls, branch and environment selectors, sidebar fallback icons, chat timeline behavior, and mobile work-log sizing.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Medium Risk
Changes core chat timeline row derivation and folding rules; regressions could affect turn folding, tool presentation, and assistant metadata placement across settled and error turns.

Overview
Settled-turn folding no longer hides work that appears after the terminal assistant message. The "Worked for …" accordion only folds entries at or before that message, so trailing commands and tool summaries stay on the timeline when a turn errors or finishes awkwardly.

Trailing tools read as one assistant block: when tool rows follow the final assistant text for the same turn, copy/timestamp metadata moves to a new assistant-meta row after those tools (always visible), instead of sitting under the prose alone.

Single completed tool calls render as direct work rows with an optional displayLabel (including lifecycle-collapsed start→complete pairs), replacing the previous work-toggle summary row for one-off calls. Multi-entry groups still use toggles; work-toggle rows now carry turnId for the trailing-meta logic.

UI wiring: shared AssistantMessageMeta, LegendListextraData refresh on row count changes, and stable-row equality updates for the new fields.

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

Note

Fix trailing tool groups in MessagesTimeline to render after assistant response

  • Settled turns now leave timeline entries after the terminal assistant message visible instead of folding them into the pre-response fold, via changes to deriveTurnFolds in MessagesTimeline.logic.ts.
  • A new attachTrailingToolGroupsToAssistant pass suppresses metadata and copy button on the assistant message row and inserts an assistant-meta footer row after the last trailing tool group, so the metadata appears once after the trailing activity.
  • Single completed tool calls now render directly as a work row with a display label instead of a summarized work-toggle row; multi-entry groups still use the grouped presentation.
  • LegendList receives rows.length as extraData so the list refreshes when derived row count changes.
  • Behavioral Change: MessagesTimelineRow gains assistant-meta variant, work.displayLabel, and work-toggle.turnId fields; isRowUnchanged compares these new fields for row reuse. AssistantCopyButton interface changed from receiving a full message-row object to receiving message, copyButtonVisible, and streaming directly.

Macroscope summarized 515ee1f.

- Render single completed tool calls directly
- Keep assistant metadata attached after trailing tool groups
@github-actionsgithub-actionsBot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Sep 3, 2026
@Yash-Singh1Yash-Singh1 changed the title fix(web): keep trailing tool groups visible after terminal responsesfix(web): keep trailing tool groups out of "Worked for" accordionSep 3, 2026
@github-actionsgithub-actionsBot added the size:L 100-499 changed lines (additions + deletions). label Sep 3, 2026
@github-actions

github-actionsBot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.5 KiB13.6 KiB+71 B (+0.5%)15.1 KiB
CodexThread snapshot wire7.0 KiB7.0 KiB−3 B (−0.0%)7.3 KiB
CodexLive turn WebSocket wire6.5 KiB6.6 KiB+74 B (+1.1%)7.8 KiB
CodexLive turn WebSocket decoded57.0 KiB57.1 KiB+88 B (+0.2%)66.4 KiB
CodexLive turn messages810+2 (+25.0%)21
ClaudeTotal thread wire13.6 KiB13.6 KiB+20 B (+0.1%)15.1 KiB
ClaudeThread snapshot wire7.0 KiB7.0 KiB+3 B (+0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.5 KiB6.6 KiB+17 B (+0.3%)7.8 KiB
ClaudeLive turn WebSocket decoded57.9 KiB57.9 KiB0 B (0.0%)66.4 KiB
ClaudeLive turn messages10100 (0.0%)21

Baseline: 5b8445b · PR result: 515ee1f · 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: 113.8 KiB
  • Claude decoded thread snapshot: 114.5 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

Comment threadapps/web/src/components/chat/MessagesTimeline.logic.ts

@cursorcursorBot 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.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 3cf2ce7. Configure here.

Comment threadapps/web/src/components/chat/MessagesTimeline.tsx
@macroscopeapp

macroscopeappBot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 515ee1f

Macroscope's review found this PR approvable — This is a focused chat-timeline bug fix that keeps trailing tool groups visible and places assistant metadata after them, with targeted regression coverage. The changes are confined to row derivation and rendering and introduce no defaults, schema, infrastructure, security, billing, authentication, or static-analysis configuration changes.

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

@Yash-Singh1
Yash-Singh1 merged commit 4b26132 into mainSep 3, 2026
27 checks passed
@Yash-Singh1
Yash-Singh1 deleted the t3code/show-trailing-tool-groups branch September 3, 2026 09:20
@Yash-Singh1
Yash-Singh1 restored the t3code/show-trailing-tool-groups branch September 3, 2026 09:20
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 3, 2026
## What's Changed
* fix(web): keep trailing tool groups out of "Worked for" accordion by @Yash-Singh1 in pingdotgg/t3code#9384
* feat(marketing): put named-developer quotes on the landing page by @t3dotgg in pingdotgg/t3code#9385
* fix(claude): expand slash commands when a message has attachments by @t3dotgg in pingdotgg/t3code#9122
* fix(web): stop the resting composer layout loop by @t3dotgg in pingdotgg/t3code#9393
* fix(web): render assistant images inline in chat by @t3dotgg in pingdotgg/t3code#9126
* feat(providers): add Google Antigravity via the official ACP agent by @t3dotgg in pingdotgg/t3code#9348
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260903.1267...v0.0.39-nightly.20260903.1268
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260903.1268
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR 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

@Yash-Singh1