Skip to content

Merge upstream/main (c079503d07): sync pingdotgg/t3code into the fork - #12

Merged
ArturLauche merged 168 commits into
mainfrom
sync/upstream-2026-10-15-live-tps
Oct 15, 2026
Merged

ArturLauche merged 168 commits into
mainfrom
sync/upstream-2026-10-15-live-tps

Conversation

@ArturLauche

@ArturLauche ArturLauche commented Oct 15, 2026 •

Copy link
Copy Markdown
Owner

Upstream version synchronized

Merges pingdotgg/t3code @ c079503d07 (fix(mobile): release iOS audio session after video playback (#18539), 2026-10-15) into the fork.

  • Previous sync point: 42160f2925 (2026-10-13)
  • 165 upstream commits, 650 files changed, ~32k insertions
  • Merge base was 42160f2925, so this is a clean forward-sync with no upstream history rewritten

Important upstream changes incorporated

Highlights of the 165 commits, by area:

Dependency / platform

Server

Web / clients

Providers

Conflicts encountered and how they were resolved

7 conflicts. Each was investigated on both sides rather than picked mechanically.

File Resolution
apps/server/src/orchestration-v2/Adapters/ClaudeAdapterV2.ts Ported onto upstream's new spawner resolution. Upstream added a local spawnClaudeCodeProcess = options.spawnClaudeCodeProcess ?? (platform === "win32" ? undefined : spawnClaudeProcessGroup). The fork passes a cloud-sandbox spawner through the query-runner input. Kept upstream's shape and made the fork's input take precedence: input.spawnClaudeCodeProcess ?? options.spawnClaudeCodeProcess ?? (platform === "win32" ? undefined : spawnClaudeProcessGroup). Order matters — falling through to the process-group spawner would start the Claude CLI on the local machine instead of inside the sandbox. Comment updated to record why.
apps/web/src/components/chat/ChatComposer.tsx Kept the fork's capability gate, adopted upstream's no-useCallback style. Upstream dropped the useCallback wrappers around the composer prompt/attachment helpers. The fork's addComposerImagesToDraft rejects images for providers that declare no image support. Re-expressed the fork's body as a plain arrow function matching its new neighbours.
apps/web/src/components/ChatView.tsx Both icons are used: ShieldAlertIcon (fork's "Provider mode unavailable" banner) and ShieldQuestionIcon (upstream). Kept both.
apps/mobile/src/components/ProviderIcon.tsx The fork's only change here was adding Circle, Rect to the react-native-svg import — and neither is used anywhere in the file (dead imports). Upstream added Defs, LinearGradient, Stop, which are used by its new gradient fallback icon. Took upstream's import list, dropping the fork's two dead names.
packages/contracts/src/settings.test.ts Both imports needed: upstream's import { type CommandId, ProjectId } plus the fork's CloudRuntimeConfig, CloudRuntimeId.
pnpm-workspace.yaml Took upstream's side wholesale (effect 4.0.4, OpenCode 2.0.28, t3.12 tarball, dropped patches), then re-applied the fork's two entries: protobufjs: true in allowBuilds (needed by packages/cloud-runtime) and the four @daytona/* entries in minimumReleaseAgeExclude. Also restored a comment the fork had deleted incidentally (objc-js N-API prebuilds).
pnpm-lock.yaml 147 conflict markers — hand-merging a lockfile is wrong. Took upstream's file, then let pnpm install --lockfile-only re-resolve so the fork's dependencies (@daytona/sdk, e2b, novita-sandbox, protobufjs) land on top of upstream's bumps. Verified idempotent across repeated installs and that pnpm install --frozen-lockfile passes clean.

How fork-specific functionality was preserved

Verified by auditing every fork feature area; all present and wired up.

  • Cline ACP provider — ClineProvider.ts, Drivers/ClineDriver.ts, acp/ClineAcpSupport.ts, Adapters/ClineAdapterV2.ts, contracts, web settings, mobile, docs. Still registered in builtInDrivers.ts, still listed in the web providerDriverMeta registry, docs still in docs/internals/providers.md + docs/user/install.md.
  • Freebuff cloud runtimes — the whole packages/cloud-runtime package plus apps/server/src/cloud/runtime/*, packages/contracts/src/cloudRuntime.ts, the web and mobile settings screens. CloudRuntimeConfig/CloudRuntimeId still have exactly one definition; no duplication against upstream's (separate) T3 Connect cloud work.
  • Freebuff provider hardening — FreebuffAdapterV2.ts, FreebuffScreen.ts, freebuffScreens.ts, FreebuffConfig.ts, drivers and tests.
  • OpenCode provider/model management — openCodeProvider.ts, openCodeProviderSecrets.ts, openCodeProviderConfig.ts, providerCapabilities.ts, OpenCodeProvidersSection.tsx, providerClients.ts.
  • Provider instance registry — ProviderInstanceRegistry.ts, ProviderInstanceRegistryHydration.ts, providerInstance.ts. The fork's cloudTransport field still exists on ProviderAdapterDriverCreateInput after upstream's adapterDriver.ts refactor.
  • Live TPS meter — generationTiming.ts, ComposerStreamingTps.tsx, wired into ChatComposer.
  • Fork CI/Docker — all three fork-*.yml workflows, Dockerfile, .dockerignore, third-party-licenses.config.json, the vite.config.ts brand-mark stroke exemption, and the protobufjs/@daytona workspace entries.

Fork-only ACP options (protocolCwd, authenticateOnAuthRequired, resumeMethod, supportsMcpTooling) all survived upstream's AcpSessionRuntime / adapter.ts changes.

Only 6 files were deleted by the merge, all upstream dependency-version bumps: the t3.11 tarball and 5 obsolete patch files.

Additional compatibility fixes required

  1. apps/server/src/provider/ClineProvider.test.ts — wrong mock-agent path (pre-existing bug found during validation). The test resolved the ACP mock agent three levels up from apps/server/src/provider, landing on apps/scripts/acp-mock-agent.ts, which does not exist. Every test that spawned the mock CLI got ERR_MODULE_NOT_FOUND, so the five expecting a successful ACP session setup sat on the 20s startup deadline and timed out instead of asserting anything. Fixed to two levels up, matching upstream's sibling tests in the same directory. These 5 tests were already failing on main before this merge — verified by running the same file at origin/main. They now pass.
  2. Lockfile dependency graph. A test run pruned the transitive @aws-sdk / @smithy entries that packages/cloud-runtime pulls in via novita-sandbox. Regenerated; @daytona/sdk, e2b, novita-sandbox and 36 @aws-sdk packages all resolve.

Validation

Command Result
pnpm install --frozen-lockfile pass (lockfile idempotent)
pnpm typecheck (33 workspaces) pass, exit 0, 0 error TS (77 advisory Effect-language suggestions, pre-existing)
pnpm lint pass, exit 0, 0 errors (warnings pre-existing)
pnpm fmt:check pass — all 5718 files
vp run --filter t3 test (server) 6240 passed, 16 failed, 44 skipped
vp run --filter @t3tools/web --filter @t3tools/mobile test 9279 passed, 0 failed
vp run --filter @t3tools/contracts --filter @t3tools/shared --filter @t3tools/cloud-runtime --filter @t3tools/client-runtime --filter @t3tools/provider-core --filter @t3tools/provider-acp test 4758 passed, 0 failed
vp run --filter @t3tools/web --filter t3 build pass, exit 0
Fork feature suites (Cline, Freebuff, cloud runtimes, OpenCode settings, TPS, provider instances) 562 passed, 0 failed

The 16 server test failures are all pre-existing — zero regressions

Each was reproduced on origin/main in a clean worktree and fails there identically:

  • 8 permission-dependent tests (terminal/Manager.test.ts, cli/theme.test.ts, keybindings.test.ts, sourceControl/SourceControlDiscovery.test.ts) that chmod 000 a directory and expect the write/stat to fail. This environment runs as uid 0, and root bypasses permission bits, so stat succeeds and the assertion fails. Verified directly.
  • 8 muse replay fixtures in OrchestratorReplayFixtures.integration.test.ts. Running just the muse subset at origin/main reproduces exactly the same 8 failures.

Baseline origin/main: the same 16 failing test names. After the merge: the same 16. The merge introduced no test regressions and fixed 5 previously-failing fork tests.

Notes

  • No unrelated refactoring. The diff is the upstream merge plus the conflict resolutions and the two compatibility fixes above.
  • main was not modified; all work is on sync/upstream-2026-10-15-live-tps.

Model and harness: opencode / space-bunny-free.

Check status on this PR

The two review bots report infrastructure state rather than code findings, which matches this repo's behaviour on the previous large syncs:

Everything substantive was verified locally instead (table above): typecheck, lint, format, ~14k tests, and the web + server builds.

Yash-Singh1 and others added 30 commits October 13, 2026 16:56
…ghted (pingdotgg#18901)

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

Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
pingdotgg#12474)

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: Yash Singh <saiansh2525@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…pingdotgg#12469)

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: Yash Singh <saiansh2525@gmail.com>
…nger drop clients (pingdotgg#19205)

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

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…nt finishes (pingdotgg#18996)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ingdotgg#19162)

Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com>
…otgg#19160)

Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com>
t3dotgg and others added 27 commits October 15, 2026 03:17
…s progress in the sidebar (pingdotgg#19837)

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

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

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

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ingdotgg#19849)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Rodrigo Brechard <rodrigobrechard@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…pingdotgg#15841)

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

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…n ARM (pingdotgg#18521)

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

Co-authored-by: GPT-6.1-Sol at high effort <noreply@openai.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…pingdotgg#18378)

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

Co-authored-by: Victor Vogel <263261067+only21mil@users.noreply.github.com>
Co-authored-by: Jorrin <43169049+JorrinKievit@users.noreply.github.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…g#18539)

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

The lockfile conflict was resolved by taking upstream's file and letting
pnpm re-resolve, so the fork's cloud-runtime dependencies (@daytona/sdk,
e2b, novita-sandbox) and the protobufjs build script land on top of
upstream's effect 4.0.4 / opencode 2.0.28 bump.
ClineProvider.test.ts pointed three levels up from apps/server/src/provider,
landing on apps/scripts/acp-mock-agent.ts, which does not exist. Every test
that spawned the mock CLI therefore got ERR_MODULE_NOT_FOUND, and the five
that expected a successful ACP session setup timed out on the 20s startup
deadline instead. Upstream's sibling tests in this directory use two levels.
@coderabbitai

coderabbitai Bot commented Oct 15, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: Path: .coderabbit.config.ts
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 833b0075-dc81-439f-90c8-792c3d9be953
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@kody-ai

kody-ai Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

Code Review Could Not Complete ⚠️

The review failed before suggestions could be generated.

Reason: This PR exceeded the maximum context size accepted by the configured model (openai_compatible).

To resolve, choose one:

  • Switch to a recommended model: pick one of Kodus's recommended models in your BYOK settings (Claude Sonnet 4.6, Claude Opus 4.7, Gemini 3.1 Pro, GPT-5.4, Kimi K2.6 Coding, or GLM 5.1).
  • Split the PR into smaller ones: file count drives prompt overhead.

openai_compatible · deepseek-ai/DeepSeek-V4.1-Flash · HTTP 400 · generalist

Provider said: Invalid request

After fixing the issue, comment @kody review on this PR to re-run the review.

Kody Guide: Usage and Configuration
Interacting with Kody
  • Request a Review: Ask Kody to review your PR manually by adding a comment with the @kody start-review command at the root of your PR.

  • Validate Business Logic: Ask Kody to validate your code against business rules by adding a comment with the @kody -v business-logic command.

  • Provide Feedback: Help Kody learn and improve by reacting to its comments with a 👍 for helpful suggestions or a 👎 if improvements are needed.

Current Kody Configuration
Review Options

The following review options are enabled or disabled:

Options Enabled
Bug ✅
Performance ✅
Security ✅
Business Logic ✅

Access your configuration settings here.

​

@ArturLauche
ArturLauche merged commit 502cfe9 into main Oct 15, 2026
1 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.