Skip to content

fix(clients): move settled pinned threads into the settled section - #7969

Merged
t3dotgg merged 4 commits into
mainfrom
t3code/settle-pinned-threads
Aug 23, 2026
Merged

fix(clients): move settled pinned threads into the settled section#7969
t3dotgg merged 4 commits into
mainfrom
t3code/settle-pinned-threads

Conversation

@t3dotgg

@t3dotgg t3dotgg commented Aug 23, 2026

Copy link
Copy Markdown
Member

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 pinnedAt is set. Snooze still hides them until they wake.

Web and mobile share this order. The pin glyph still shows on settled/slim rows (isPinned from pinnedAt), and mobile slim menus include Unpin. Docs and pinnedAt comments 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 Sidebar and ThreadListV2

  • Adjusts thread bucketing precedence in threadListV2.ts and Sidebar.tsx to evaluate settlement before pinning, so settled pinned threads go to the settled section.
  • Updates ThreadListV2Row and SidebarThreadRow to derive pin state and menu actions from thread.pinnedAt instead of a section prop, keeping the pin marker visible across sections.
  • Risk: Alters thread classification order in buildThreadListV2Items and Sidebar; any code assuming pinned threads always remain in the pinned section may break.

Macroscope summarized 00b1450.

@coderabbitai

coderabbitai Bot commented Aug 23, 2026

Copy link
Copy Markdown

Important

Review skipped

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

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 0feeef2f-3080-4531-8c0c-876e90177761

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

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

❤️ Share

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

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Aug 23, 2026
Comment thread docs/user/thread-sidebar.md Outdated
@github-actions

github-actions Bot commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 13.4 KiB 13.4 KiB −8 B (−0.1%) 15.1 KiB
Codex Thread snapshot wire 6.9 KiB 6.9 KiB −5 B (−0.1%) 7.3 KiB
Codex Live turn WebSocket wire 6.5 KiB 6.5 KiB −3 B (−0.0%) 7.8 KiB
Codex Live turn WebSocket decoded 55.0 KiB 55.0 KiB 0 B (0.0%) 66.4 KiB
Codex Live turn messages 16 16 0 (0.0%) 21
Claude Total thread wire 13.4 KiB 13.4 KiB −1 B (−0.0%) 15.1 KiB
Claude Thread snapshot wire 6.9 KiB 6.9 KiB +1 B (+0.0%) 7.3 KiB
Claude Live turn WebSocket wire 6.5 KiB 6.5 KiB −2 B (−0.0%) 7.8 KiB
Claude Live turn WebSocket decoded 55.8 KiB 55.8 KiB 0 B (0.0%) 66.4 KiB
Claude Live turn messages 16 16 0 (0.0%) 21

Baseline: 4d12e52 · PR result: 00b1450 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

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

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

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using high 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 65033b9. Configure here.

Comment thread apps/mobile/src/features/threads/threadListV2.ts
@macroscopeapp

macroscopeapp Bot commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Approvability

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

@macroscopeapp macroscopeapp Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

One finding: 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

Comment thread apps/web/src/components/Sidebar.tsx
@github-actions github-actions Bot added size:L 100-499 changed lines (additions + deletions). and removed size:M 30-99 changed lines (additions + deletions). labels Aug 23, 2026
@t3dotgg
t3dotgg merged commit f70eeee into main Aug 23, 2026
25 checks passed
@t3dotgg
t3dotgg deleted the t3code/settle-pinned-threads branch August 23, 2026 11:28
pandec added a commit to pandec/t3code that referenced this pull request Aug 23, 2026
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.
pandec added a commit to pandec/t3code that referenced this pull request Aug 23, 2026
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.
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Aug 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L 100-499 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant