Repository navigation
fix(web): toggling tools and thinking at the bottom keeps you at the bottom - #17954
Conversation
…bottom Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a contained web bug fix that keeps the conversation timeline pinned only when a disclosure toggle starts at the end, while preserving the existing position for users who are scrolled up. The added tests cover both positioning modes and delayed row resizing. You can add or adjust custom eligibility rules. Learn more. |
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
## What's Changed * fix(pi): preserve tool images and structured results by @StiensWout in pingdotgg/t3code#17851 * fix(server): Claude 5 task lists reach the tasks drawer by @Mnigos in pingdotgg/t3code#14964 * fix(web): find bar and thread details panel stop covering each other by @MatthewFeroz in pingdotgg/t3code#17858 * fix(web): use server metadata for file chip icons by @Yash-Singh1 in pingdotgg/t3code#17923 * fix(desktop): copy images from HTML previews by @Bil0000 in pingdotgg/t3code#17555 * docs(pi): update installation and remote login guidance by @StiensWout in pingdotgg/t3code#17836 * fix(pi): preserve native abort outcomes by @StiensWout in pingdotgg/t3code#17853 * fix(pi): keep thinking defaults specific to each model by @StiensWout in pingdotgg/t3code#17835 * fix(pi): preserve shell command exit codes by @StiensWout in pingdotgg/t3code#17834 * fix(pi): expire and cancel extension approvals by @StiensWout in pingdotgg/t3code#17840 * feat(pi): include native sessions in usage reports by @StiensWout in pingdotgg/t3code#17848 * fix(server): route Copilot ACP subagent output into subagent threads by @maria-rcks in pingdotgg/t3code#17714 * fix(web): composer banner titles truncate beside their icon instead of wrapping by @maria-rcks in pingdotgg/t3code#17699 * fix(server): Muse turns no longer fail on Windows by @ntindle in pingdotgg/t3code#17163 * fix(pi): allow known read-only T3 tools without approval by @StiensWout in pingdotgg/t3code#17852 * fix: worktree threads keep their worktree when the agent starts, and messages sent during setup queue by @maria-rcks in pingdotgg/t3code#17654 * fix(server): keep Claude workflows alive while they report progress by @maria-rcks in pingdotgg/t3code#17715 * fix(web): media preview centers its content and pins the close button by @maria-rcks in pingdotgg/t3code#17951 * fix(server): threads without a project no longer need Git installed by @t3dotgg in pingdotgg/t3code#17959 * fix(web): toggling tools and thinking at the bottom keeps you at the bottom by @t3dotgg in pingdotgg/t3code#17954 * fix(web): Compact chip follows Claude's real prompt cache TTL by @t3dotgg in pingdotgg/t3code#17945 * fix(usage): bound OpenCode history reads to prevent backend OOM by @Yash-Singh1 in pingdotgg/t3code#17961 * refactor: format diff line counts through one shared helper by @maria-rcks in pingdotgg/t3code#17948 * fix: new projects start their first thread in the project folder, not a worktree by @t3dotgg in pingdotgg/t3code#17371 ## New Contributors * @ntindle made their first contribution in pingdotgg/t3code#17163 **Full Changelog**: pingdotgg/t3code@v0.0.46-nightly.20261010.2948...v0.0.46-nightly.20261011.2955 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.46-nightly.20261011.2955
## What's Changed * fix(pi): preserve tool images and structured results by @StiensWout in pingdotgg/t3code#17851 * fix(server): Claude 5 task lists reach the tasks drawer by @Mnigos in pingdotgg/t3code#14964 * fix(web): find bar and thread details panel stop covering each other by @MatthewFeroz in pingdotgg/t3code#17858 * fix(web): use server metadata for file chip icons by @Yash-Singh1 in pingdotgg/t3code#17923 * fix(desktop): copy images from HTML previews by @Bil0000 in pingdotgg/t3code#17555 * docs(pi): update installation and remote login guidance by @StiensWout in pingdotgg/t3code#17836 * fix(pi): preserve native abort outcomes by @StiensWout in pingdotgg/t3code#17853 * fix(pi): keep thinking defaults specific to each model by @StiensWout in pingdotgg/t3code#17835 * fix(pi): preserve shell command exit codes by @StiensWout in pingdotgg/t3code#17834 * fix(pi): expire and cancel extension approvals by @StiensWout in pingdotgg/t3code#17840 * feat(pi): include native sessions in usage reports by @StiensWout in pingdotgg/t3code#17848 * fix(server): route Copilot ACP subagent output into subagent threads by @maria-rcks in pingdotgg/t3code#17714 * fix(web): composer banner titles truncate beside their icon instead of wrapping by @maria-rcks in pingdotgg/t3code#17699 * fix(server): Muse turns no longer fail on Windows by @ntindle in pingdotgg/t3code#17163 * fix(pi): allow known read-only T3 tools without approval by @StiensWout in pingdotgg/t3code#17852 * fix: worktree threads keep their worktree when the agent starts, and messages sent during setup queue by @maria-rcks in pingdotgg/t3code#17654 * fix(server): keep Claude workflows alive while they report progress by @maria-rcks in pingdotgg/t3code#17715 * fix(web): media preview centers its content and pins the close button by @maria-rcks in pingdotgg/t3code#17951 * fix(server): threads without a project no longer need Git installed by @t3dotgg in pingdotgg/t3code#17959 * fix(web): toggling tools and thinking at the bottom keeps you at the bottom by @t3dotgg in pingdotgg/t3code#17954 * fix(web): Compact chip follows Claude's real prompt cache TTL by @t3dotgg in pingdotgg/t3code#17945 * fix(usage): bound OpenCode history reads to prevent backend OOM by @Yash-Singh1 in pingdotgg/t3code#17961 * refactor: format diff line counts through one shared helper by @maria-rcks in pingdotgg/t3code#17948 * fix: new projects start their first thread in the project folder, not a worktree by @t3dotgg in pingdotgg/t3code#17371 ## New Contributors * @ntindle made their first contribution in pingdotgg/t3code#17163 **Full Changelog**: pingdotgg/t3code@v0.0.46-nightly.20261010.2948...v0.0.46-nightly.20261011.2955 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.46-nightly.20261011.2955
When you were at the bottom of a thread and opened a tool group, a tool row, or the thinking/turn fold, the new content opened below and you were no longer at the bottom. Closing one at the bottom left you about 8px above the bottom.
Every disclosure toggle turned off "stick to bottom" and held the toggled row in place, even when you were at the end. Now, if you are at the end when you toggle, the list stays pinned to the bottom while the rows re-measure. Tool output that renders a few frames late is pinned before it paints. If you are scrolled up, nothing changes: the toggled row holds its place.
The badge shows the distance from the bottom. Before: 192px, 96px, and 8px after toggles. After: 0px.
Verified in the web app with real thread data. A sampler read the distance from the bottom right before each paint. On
main, expanding left 282 to 1065px gaps. With this change it was 0px on every frame across 16 toggles (turn fold, tool groups, single tool rows, open and close). It also stays at the bottom during a running turn. Not at the bottom, the toggled row stays at the same spot.Reviewed with sol-loop: 2 rounds with GPT-6.1-Sol on high.
Created with Claude Opus 5.5 in Claude Code.