fix(clients): move settled pinned threads into the settled section - #7969
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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. Comment |
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. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 65033b9. Configure here.
ApprovabilityVerdict: Skipped Macroscope did not run approvability analysis for this PR. Macroscope could not determine whether this PR modifies its approvability configuration, so the PR was not approved automatically. A PR that may change the rules that govern approval is never approved automatically. |
There was a problem hiding this comment.
One finding: the new pinned-vs-settled ordering leaves pinned rows without any in-row pin state cue or unpin affordance once they classify into the settled/snoozed shelves. Details inline.
Posted via Macroscope — UI Consistency
Fast-forwards main from 30be311 to f70eeee (6 commits, 47 files) and merges it into dev. Small in commits, heavy in fork contact: 19 files carried fork delta, giving 19 conflicts across 42 hunks. Upstream lands Codex /feedback upload to OpenAI (pingdotgg#7949), a Claude Stop rewrite that kills lingering work instead of only interrupting the turn (pingdotgg#5891), settled pinned threads moving into the settled shelf (pingdotgg#7969), and a credentials-failure reconnect during remote server updates (pingdotgg#7953). Notable resolutions. Classification on both clients is now snoozed, settled, pinned, Older, with the fork's Older grouping still last so it never claims a lifecycle-owned row. ProviderService.test.ts and the mobile send callback both had misaligned hunks and were reconstructed from each side rather than resolved marker by marker; taking upstream there would have dropped deliveryIntent and the bounded message window, both of which compile. uploadFeedback takes the fork's per-thread lock. Claude's session.exited keeps its sessionGenerationId and the usage-fiber cancellation survives upstream's close-first teardown. Two fixes a clean merge would not have caught: the fork's running composer left Queue and Steer enabled while submitComposer refused them, and card rows keep the passive pin marker because upstream's now-focusable indicator hid itself inside the fork's focus-hide wrapper. vp check, typecheck, and focused tests pass. Full suite green except the documented PortScanner pair caused by a foreign dev server on [::1]:3000. Reviewed and merged by Claude Opus 5 in Claude Code, with gpt-5.6-sol subagents for the behavioral reviews and post-merge audits.
PR #170 landed on origin/dev mid-sync, touching ChatView.tsx and Sidebar.tsx. The merge was conflict-free and holds up on inspection: the slim-row split-pane marker sits after the provider icon and composes with the pin indicator inserted after the title, and #170 already assumed a settled thread can occupy a pane, which is exactly what pingdotgg#7969 makes common. vp check, typecheck, focused split-view/sidebar/keybinding tests, and the full suite all rerun and pass, except the documented PortScanner pair.
## What's Changed * fix(clients): move settled pinned threads into the settled section by @t3dotgg in pingdotgg/t3code#7969 **Full Changelog**: pingdotgg/t3code@v0.0.34-nightly.20260823.1167...v0.0.34-nightly.20260823.1168 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.34-nightly.20260823.1168

Pinned threads stayed at the top after their pull requests merged or they became inactive.
Web, desktop, and mobile now place automatically settled pinned threads in Settled. Snoozed threads still stay hidden until they wake.
Model: GPT-5.6 Sol
Harness: Codex
Note
Medium Risk
Changes sidebar thread classification on web and mobile, which can move previously pinned rows into Settled and affect how users find them.
Overview
Pinned threads no longer stay at the top after they auto-settle. After snooze, settlement is checked before pinning, so inactive or merged-PR threads land in Settled even if
pinnedAtis set. Snooze still hides them until they wake.Web and mobile share this order. The pin glyph still shows on settled/slim rows (
isPinnedfrompinnedAt), and mobile slim menus include Unpin. Docs andpinnedAtcomments match: pins keep active threads on top, not settled ones.If Auto-settle merged threads is off, a pinned merged thread stays a pinned card.
Reviewed by Cursor Bugbot for commit 00b1450. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Move settled pinned threads into the settled section in
SidebarandThreadListV2ThreadListV2RowandSidebarThreadRowto derive pin state and menu actions fromthread.pinnedAtinstead of a section prop, keeping the pin marker visible across sections.Macroscope summarized 00b1450.