Skip to content

merge: sync upstream main through 0fcd5f9061 (v0.0.44) - #76

Merged
BreakTheBeta merged 25 commits into
mainfrom
chore/sync-upstream-2026-09-30
Sep 30, 2026
Merged

BreakTheBeta merged 25 commits into
mainfrom
chore/sync-upstream-2026-09-30

Conversation

@BreakTheBeta

@BreakTheBeta BreakTheBeta commented Sep 30, 2026 •

Copy link
Copy Markdown
Owner

Our fork was 22 commits behind pingdotgg/t3code. This merges upstream main through 0fcd5f9061 (v0.0.44) as a merge commit on top of ours, so every Fold feature survives and the next sync stays a normal git merge.

29 files conflicted. Same rule as last time: where our orchestration-v2 rewrite owns the code, our structure stays and upstream's behavior is ported onto it. Where upstream only changed something we had restyled, upstream wins.

What this pull brings in

Connect Codex with a ChatGPT account (pingdotgg#14290), the big one. Adds a managed Codex runtime that T3 installs, ChatGPT sign-in with plan sharing, account switching, reconnect and disconnect, a "Manage usage" link, and a usage-limit notice on web and mobile. Upstream built it on the V1 CodexAdapter, which our fork no longer runs sessions through, so it's ported onto CodexAdapterV2:

  • CodexManagedProvider now builds a V2 orchestration adapter with a managed option instead of the V1 adapter.
  • New CodexManagedClient wraps the Codex app-server client. Managed Codex reads the ChatGPT access token from its process environment, so when the token rotates, the next idle turn start respawns Codex. It replays the handler registrations and initialization, and resumes every thread the old process had loaded. A running turn keeps the old process. Upstream's V1 adapter restarts the session on the next sendTurn instead.
  • ChatGPT sharing failures are classified (CodexManagedErrors) in the V2 error and turn/completed handlers. They surface with the managed message and code, and revoke the connection when the error calls for it. Service tiers are suppressed for managed sessions.
  • Our thread error on the client is just a string, so isChatGptUsageLimitError matches on a shared CHATGPT_USAGE_LIMIT_MESSAGE instead of scanning V1 activities.

Other features: Bitbucket credentials in Source Control settings (pingdotgg#14103), Codex 0.159 protocol bindings (pingdotgg#14311), Pro Max accounts load so Ultrafast shows up (pingdotgg#14304), OpenCode Go limits merge by credential (pingdotgg#14209), OpenCode v2 marked incompatible (pingdotgg#14198), model manifest refresh.

Fixes: multi-PR badges open the pull requests panel (pingdotgg#13211; kept our hover mini-list); agent questions shown on user-input timeline rows (pingdotgg#12900); command menu descriptions use the full row width (pingdotgg#8865); workspace root links open in the file explorer (pingdotgg#12449); model ids in inline code stay text (pingdotgg#13909); compact tooltip for unresolved PR links (pingdotgg#14243); PR badge baseline in the sidebar (pingdotgg#14007); Grok recovers from crashed sessions (pingdotgg#10607); OpenCode stop no longer hangs (pingdotgg#12003); usage kept in oversized transcript records (pingdotgg#13650); local-path remotes don't crash legacy PR link projection (pingdotgg#13463).

Fork-side notes

  • Versions stay at our 0.3.0, not upstream's 0.0.44.
  • /settings/providers stays a redirect to /settings/agents. Docs keep "Settings → Agents", and the install table keeps the Pi row. The new Bitbucket search entry points at /settings/git, where our Source Control settings live.
  • server.test.ts stays deleted. Upstream's Grok and OpenCode fixes land in V1 adapters that we still ship but don't run sessions through.
  • A follow-up commit repairs tests that were already failing on main, and fixes the real bugs two of them caught:
    • Codex reset credit: an already-redeemed credit reported "could not confirm the new limits". Upstream's outcome === "reset" guard had been lost; it's restored.
    • Settings → Restore defaults ignored Composer context, Auto-resume limited threads and Snooze limited threads. They're now listed and reset.
    • Usage keybindings now sort deterministically, with Open Usage first.
    • Test-only: stale Codex replay fixture (thread.projectId), the harness now records raw requests (rollback fallback), missing imports and services in ProviderInstanceRegistryLive and the live orchestrator tests, and rightPanelStore no longer expects the fork's agents panel to be dropped.

Verification

  • Typecheck for contracts, shared, client-runtime, server, web, desktop and mobile: no new errors compared with origin/main (whose existing errors are mostly in V1 files); the live orchestrator tests now typecheck.
  • Lint on every touched file: no new errors compared with origin/main. knip: nothing new from this sync.
  • Tests: new CodexManagedClient.test.ts (rotation only when idle, handlers, init and thread resume replayed) and a CodexAdapterV2 test for ChatGPT usage-limit failures. CodexAdapterV2.test.ts 82/82 (43 were failing on main). ProviderInstanceRegistryLive.test.ts 8/8 (failed at load on main). Codex/provider/usage/settings server tests all pass; the live orchestrator tests typecheck and skip without credentials. Shared (75), desktop (14), client-runtime (1950) and contracts (550) all pass. Web settings/timeline/onboarding/right panel: 659/659.
  • Not exercised against a real ChatGPT account.

No screenshots: the visible changes are upstream's own, already reviewed in their PRs.

Model: Claude Opus 5.5 (1M context), harness: Claude Code in T3 Code.

🤖 Generated with Claude Code

pujitha24 and others added 23 commits September 28, 2026 18:00
…tion (pingdotgg#13463)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Signed-off-by: Pujitha Paladugu <10557236+pujitha24@users.noreply.github.com>
… before submission (pingdotgg#12003)

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com>
…tgg#14103)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
…dotgg#14007)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…4304)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…14311)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…dotgg#12900)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…2449)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: SAPHID <saphid@users.noreply.github.com>
…otgg#8865)

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com>
Brings in upstream pingdotgg/t3code main through 0fcd5f9 (v0.0.44).

ChatGPT-managed Codex (pingdotgg#14290) is ported onto the orchestration-v2 Codex
adapter: sessions launch from the managed runtime, ChatGPT sharing failures
surface with their managed message and code, and a rotated access token
respawns Codex before the next idle turn, resuming its loaded threads.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL labels Sep 30, 2026
- Codex reset credit: only an actual reset requires the refreshed limits
  to confirm; an already-redeemed credit no longer reports a false failure
  (upstream's guard had been lost).
- Restore defaults now lists and resets Composer context, Auto-resume
  limited threads, and Snooze limited threads.
- Usage keybindings sort deterministically, with Open Usage first.
- CodexAdapterV2 replay harness records raw requests, so the legacy
  rollback fallback is asserted end to end.
- ProviderInstanceRegistryLive and the live orchestrator tests import the
  reset credit coordinator and mock the managed Codex services.
- rightPanelStore no longer expects the fork's agents panel to be dropped.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

Thread transfer impact

⚠️ The latest CI run did not produce a thread transfer result for 215c01d.

This comment will update automatically after the next completed run.

…eed config

- The Codex replay layer fills `thread.projectId` and
  `requestUserInput.isBlocking`, which the regenerated protocol now
  requires, so recorded transcripts decode again. Old requests without an
  auto-resolution deadline were blocking.
- The desktop updates harness serves `app-update.yml` through its no-op
  file system, so the Fold feed replacement test reads its config.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@BreakTheBeta
BreakTheBeta merged commit b9866d1 into main Sep 30, 2026
16 of 21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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.