Skip to content

chore: sync with upstream pingdotgg/t3code main - #153

Merged
yordis merged 35 commits into
mainfrom
yordis/chore-sync-upstream-20261025-1
Oct 25, 2026
Merged

yordis merged 35 commits into
mainfrom
yordis/chore-sync-upstream-20261025-1

Conversation

@yordis

@yordis yordis commented Oct 25, 2026

Copy link
Copy Markdown
Member
  • Upstream merged cleanly with no conflicts, so every ledger divergence carries over unchanged and no ledger entry is retired.
  • Migrations stay byte-identical to upstream, keeping fork and upstream migration ids from ever colliding.
  • No vendored subtree changed upstream, so .repos/ needs no resync in this change.

t3dotgg and others added 30 commits October 24, 2026 20:02
…gg#24643)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…atches the page (pingdotgg#24644)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…place (pingdotgg#24671)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…he list (pingdotgg#24749)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…pingdotgg#24760)

With the Working shelf on, a thread that stops working stays there for 2s. A server auto-settle in that window sends it straight to Settled, so threads no longer flash in the inbox and vanish. "Thread completed" waits the same 2s and fires once.

The server now settles fast enough to land inside the window: it reads a pull request when a shell merge or close command ends, sweeps a thread when its background work ends, and runs per-thread settle checks in parallel, one per thread at a time.

Takes over pingdotgg#22458.

Co-authored-by: Omar <76748259+omar9848492@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…mbers drafts (pingdotgg#24750)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…tgg#24770)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…4696)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…4784)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…gdotgg#24769)

Mobile push said "Thread completed" when a run ended and its continuation started a moment later, then again when the work really finished. Every completion now waits the relay's existing 5s confirm window and is dropped if the thread is live again. A thread that auto-settles during the hold still alerts its completion, then clears its card on a new window. Failed runs publish at once.

Follow-up to pingdotgg#24760.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…tgg#24748)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…PR (pingdotgg#24830)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
t3dotgg and others added 5 commits October 25, 2026 02:36
…pt eats the command (pingdotgg#24775)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…tgg#24813)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…miss (pingdotgg#24832)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…pstream-20261025-1

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
@cursor

cursor Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

PR Summary

High Risk
Large mobile navigation and native UIKit changes affect core routing and split-view behavior, plus CI now depends on private cache credentials and OIDC permissions on maintainer workflows.

Overview
Syncs upstream pingdotgg/t3code main into the fork, bundling CI infrastructure, mobile workspace navigation, native scroll/header polish, and review-diff correctness fixes.

CI wires a maintainer-only shared Vite+ remote task cache (.task-cache.json, setup-ci-deps optional token, install-ci.ts) into lint/build/test/release jobs with id-token: write where needed; VP_REMOTE_CACHE is read-write on main, read-only elsewhere.

Mobile navigation replaces ad-hoc thread/PR selection (home-thread-navigation, Android-specific helpers) with a unified workspaceDetailRouter / selectWorkspaceDetail path, navigation ref + linking hooks, and selectDetail on the adaptive layout context.

iOS UI adds T3ScrollEdgeBleedView so header scroll-edge blur extends under the Duo vertical bar; lists adopt NativeScrollView markers and ScreenScrollViewSurface so scroll-edge material matches screen/drawer colors. Settings gains search and a refactored index list; the connection status dot drops looping Reanimated pulse work.

Review / PR diffs report viewport row indices against the full row payload when files are collapsed; JS highlighting skips collapsed files and fixes stale collapse work. Source loading drops a hard attempt cap, evicts cancelled shared requests correctly, and PR routes defer heavy diff build until transitions settle, with cached parsed diff pages and adapter reuse.

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

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL 📱 Native Change Changes the native fingerprint; merging blocks production OTAs until a new store build ships. labels Oct 25, 2026

@cursor cursor Bot left a comment

Copy link
Copy Markdown

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, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit ee5c64d. Configure here.

const { detail, sheet } = (action as unknown as SelectWorkspaceDetailAction).payload;
const next = workspaceDetailState(state, detail, sheet, nativelyPoppingRoute);
const reset = { type: "RESET", payload: { ...next, stale: false } };
return original.getStateForAction(state, reset as unknown as Action, options);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Workspace detail routes lack keys

High Severity

workspaceDetailState builds new Thread, PullRequest, and sheet routes without key, then workspaceDetailRouter RESETs with stale: false. React Navigation only rehydrates when staleis notfalse, so those routes never receive keys. Tests hide this by calling getRehydratedState`. The first list selection or reviewers sheet can therefore mount without a route identity, breaking native-stack identity, back, and in-place updates.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit ee5c64d. Configure here.

@github-actions

Copy link
Copy Markdown

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 5.0 KiB 5.0 KiB 0 B (0.0%) 6.8 KiB ✅
Codex Thread snapshot wire 3.8 KiB 3.8 KiB 0 B (0.0%) 4.9 KiB ✅
Codex Live turn WebSocket wire 1.2 KiB 1.2 KiB 0 B (0.0%) 2.0 KiB ✅
Codex Live turn WebSocket decoded 20.9 KiB 20.9 KiB 0 B (0.0%) 29.3 KiB ✅
Codex Live turn messages 2 2 0 (0.0%) 8 ✅
Claude Total thread wire 5.0 KiB 5.0 KiB 0 B (0.0%) 6.8 KiB ✅
Claude Thread snapshot wire 3.8 KiB 3.8 KiB 0 B (0.0%) 4.9 KiB ✅
Claude Live turn WebSocket wire 1.2 KiB 1.2 KiB 0 B (0.0%) 2.0 KiB ✅
Claude Live turn WebSocket decoded 21.2 KiB 21.2 KiB 0 B (0.0%) 29.3 KiB ✅
Claude Live turn messages 2 2 0 (0.0%) 8 ✅

Baseline: 92a5ca1 · PR result: ee5c64d · 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: 108.5 KiB
  • Claude decoded thread snapshot: 108.8 KiB

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

@yordis
yordis merged commit f08046a into main Oct 25, 2026
26 of 27 checks passed
@yordis
yordis deleted the yordis/chore-sync-upstream-20261025-1 branch October 25, 2026 10:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

📱 Native Change Changes the native fingerprint; merging blocks production OTAs until a new store build ships. size:XXL 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.

4 participants