Skip to content

chore(mobile): clear the legacy-list deletion fallout - #13203

Merged
juliusmarminge merged 1 commit into
mainfrom
agent/mobile-v1-removal-fallout
Sep 23, 2026
Merged

juliusmarminge merged 1 commit into
mainfrom
agent/mobile-v1-removal-fallout

Conversation

@juliusmarminge

@juliusmarminge juliusmarminge commented Sep 23, 2026 •

Copy link
Copy Markdown
Member

The problem

Retiring the legacy grouped thread list (#13149 / #13183, both merged) left dead deletion fallout on main, flagged by an audit of the removal head:

  • homeThreadList.ts still imported eight v1-only helpers and kept the recency-window constants (RECENT_THREAD_WINDOW_MS, RECENT_THREAD_FALLBACK_COUNT) only v1 read — 13 no-unused-vars warnings.
  • home-list-options.ts still stored a threadSortOrder preference with a setter no screen calls; the mobile UI no longer has any thread sort order (refactor(mobile): retire the legacy grouped thread list #13183's body claimed it was gone — with this PR the claim is finally true end to end). projectSortOrder and projectGroupingMode stay; v2 uses them for scope ordering/grouping.
  • homeThreadList.test.ts carried an unused threadSearchMatchKey import and NOW fixture constant; threadListV2.test.ts imported the batch availability helper it no longer calls (that coverage lives in threadOrderAvailability.test.ts).
  • A HomeScreen comment still referenced "the legacy list", which no longer exists.

The fix

Also: DEFAULT_SIDEBAR_THREAD_SORT_ORDER in contracts loses its export (mobile was the last consumer of the value; the wire field keeps its internal decoding default), which is what knip flags once the mobile side is gone.

Straight deletion only — no behavior changes. The stored preference is a runtime-state field with no persisted schema; dropping it just stops a value nothing reads from being carried.

Verification: no-unused-vars clean on all touched files (HomeScreen stays at its pre-existing 13-warning baseline, unchanged), tsc --noEmit clean, full mobile suite 186 files / 1702 tests pass, formatting clean.

Done by Apex (Claude Opus 4.1) in pi, per the #13183 audit follow-up.

@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 Sep 23, 2026
macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Sep 23, 2026
@macroscopeapp

macroscopeapp Bot commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at a348da9

Macroscope's review found this PR approvable — This is a contained cleanup that removes unused mobile state, imports, constants, test fixtures, and a stale comment. The existing settings schema and updated_at decoding default remain unchanged, with no new runtime capability or meaningful behavior change.

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

@github-actions

github-actions Bot commented Sep 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.5 KiB 13.5 KiB +4 B (+0.0%) 15.1 KiB ✅
Codex Thread snapshot wire 7.1 KiB 7.1 KiB +3 B (+0.0%) 7.3 KiB ✅
Codex Live turn WebSocket wire 6.5 KiB 6.5 KiB +1 B (+0.0%) 7.8 KiB ✅
Codex Live turn WebSocket decoded 56.3 KiB 56.3 KiB 0 B (0.0%) 66.4 KiB ✅
Codex Live turn messages 10 10 0 (0.0%) 21 ✅
Claude Total thread wire 13.5 KiB 13.5 KiB +1 B (+0.0%) 15.1 KiB ✅
Claude Thread snapshot wire 7.1 KiB 7.1 KiB +1 B (+0.0%) 7.3 KiB ✅
Claude Live turn WebSocket wire 6.5 KiB 6.5 KiB 0 B (0.0%) 7.8 KiB ✅
Claude Live turn WebSocket decoded 57.0 KiB 57.0 KiB 0 B (0.0%) 66.4 KiB ✅
Claude Live turn messages 9 9 0 (0.0%) 21 ✅

Baseline: eafb4a9 · PR result: a348da9 · 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: 114.0 KiB
  • Claude decoded thread snapshot: 114.6 KiB

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

The v1 removal left behind code that only v1 consumed: unused imports
and the recency-window constants in homeThreadList.ts (13 no-unused-vars
warnings on main), an unused threadSortOrder preference with a setter
nobody calls in home-list-options.ts, stale test helpers, an unused test
import from the availability work, and a comment still pointing at the
legacy list. All of it is dead now that the v2 list is the only list;
projectSortOrder and projectGroupingMode are untouched and keep
powering v2 scope ordering.
@juliusmarminge
juliusmarminge force-pushed the agent/mobile-v1-removal-fallout branch from 5a88274 to a348da9 Compare September 23, 2026 03:52
@macroscopeapp
macroscopeapp Bot dismissed their stale review September 23, 2026 03:52

Dismissing prior approval to re-evaluate a348da9

@juliusmarminge
juliusmarminge enabled auto-merge (squash) September 23, 2026 03:53
@juliusmarminge
juliusmarminge merged commit aca3c87 into main Sep 23, 2026
21 of 22 checks passed
@juliusmarminge
juliusmarminge deleted the agent/mobile-v1-removal-fallout branch September 23, 2026 03:54
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 23, 2026
## What's Changed
* chore(mobile): drop dead nitro-markdown tgz override and @expo/metro-runtime by @juliusmarminge in pingdotgg/t3code#13148
* feat(web): show settings scope as a sentence at the top of the page by @juliusmarminge in pingdotgg/t3code#13139
* refactor(web): move settings scope pickers into breadcrumbs by @Yash-Singh1 in pingdotgg/t3code#13165
* feat(auth): share provider sign-in flows and credential bindings by @juliusmarminge in pingdotgg/t3code#12983
* refactor(mobile): git sheets use uniwind platform variants instead of className ternaries by @juliusmarminge in pingdotgg/t3code#13161
* chore(mobile): name the two project favicon caches by their job by @juliusmarminge in pingdotgg/t3code#13160
* revert(mobile): git sheets back to Platform.OS ternaries (un-guarded uniwind variants broke both platforms) by @juliusmarminge in pingdotgg/t3code#13169
* docs(mobile): document the two mobile routes that intentionally skip deep links by @juliusmarminge in pingdotgg/t3code#13164
* refactor(mobile): break module cycles with focused extractions by @juliusmarminge in pingdotgg/t3code#13151
* fix(server): generate PR diffs from branch changes by @Yash-Singh1 in pingdotgg/t3code#13170
* fix(web): preserve nested scroll behavior in chat timeline by @Yash-Singh1 in pingdotgg/t3code#13167
* test(web): cover usage model ordering without static markup by @flamboh in pingdotgg/t3code#13104
* fix(desktop): find linuxbrew node for the WSL backend by @CodyRay in pingdotgg/t3code#7827
* chore(models): use GPT-6 Luna for text generation by @extoci in pingdotgg/t3code#13115
* fix(mobile): keep ordinary offline outbox failures out of console.warn by @juliusmarminge in pingdotgg/t3code#13144
* feat(providers): check remote compatibility ranges by @juliusmarminge in pingdotgg/t3code#13130
* chore(lint): keep mobile theme escape-hatch allowlist honest by @juliusmarminge in pingdotgg/t3code#13146
* fix(web): the pull request badge reads at the meta size again by @juliusmarminge in pingdotgg/t3code#13175
* fix(mobile): uniwind platform variants stay guarded on both platforms by @juliusmarminge in pingdotgg/t3code#13172
* refactor(mobile): git sheets use uniwind platform variants instead of className ternaries by @juliusmarminge in pingdotgg/t3code#13185
* refactor(mobile): remaining className platform ternaries become class variants by @juliusmarminge in pingdotgg/t3code#13188
* fix(web): align provider emails without clipping by @Derpedyea in pingdotgg/t3code#13174
* perf(mobile): recycle the default v2 home list and scope the snooze minute tick by @juliusmarminge in pingdotgg/t3code#13149
* refactor(mobile): retire the legacy grouped thread list by @juliusmarminge in pingdotgg/t3code#13183
* fix(server): background PR checks spend less GitHub quota by @juliusmarminge in pingdotgg/t3code#13189
* fix(server): background PR sync reads summaries in batches by @juliusmarminge in pingdotgg/t3code#13198
* fix(server): GitHub PR lookups stop probing owner-qualified heads by @juliusmarminge in pingdotgg/t3code#13200
* chore(mobile): clear the legacy-list deletion fallout by @juliusmarminge in pingdotgg/t3code#13203

## New Contributors
* @CodyRay made their first contribution in pingdotgg/t3code#7827

**Full Changelog**: pingdotgg/t3code@v0.0.43-nightly.20260922.2123...v0.0.43-nightly.20260923.2135

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.43-nightly.20260923.2135
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M 30-99 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant