Repository navigation
chore: sync upstream through 76d5ec7a22 - #270
Merged
Merged
Conversation
…ollow owner (pingdotgg#25148) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…mes (pingdotgg#25260) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ich attach through ref callbacks (pingdotgg#25246) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ingdotgg#25238) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…gdotgg#25251) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ll drops its sync effects (pingdotgg#25239) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…otgg#25227) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…pingdotgg#25223) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ment now show (pingdotgg#25229) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…gdotgg#25295) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…e app (pingdotgg#25233) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…t in effects (pingdotgg#25234) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…tton (pingdotgg#25315) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…25118) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ges (pingdotgg#25316) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
pingdotgg#25321) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…gn (pingdotgg#25323) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ingdotgg#25328) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…s lifetime (pingdotgg#25226) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…dropped (pingdotgg#25916) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ingdotgg#25910) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ng (pingdotgg#25903) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…25929) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…otgg#25928) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…otgg#25913) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
pingdotgg#25912) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…rs (pingdotgg#25859) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…n of effects (pingdotgg#25857) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
pingdotgg#25675) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ft pane (pingdotgg#18492) Co-authored-by: maria-rcks <maria@kuuro.net>
…ingdotgg#26058) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…pingdotgg#26045) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…otgg#26046) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…otgg#26047) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…n drafts (pingdotgg#26050) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…otgg#26061) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…an effect (pingdotgg#26049) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ad of stacking another (pingdotgg#26052) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Upstream's new card test loaded the fork's catalog and server modules, which pull in Expo, so they are mocked and the fork's Switch account button gets a case. useCreateCloudMachine now compiles, so it leaves KNOWN_BAILOUTS. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Upstream's new file preview browser tests render large Word, WASM and worker previews. Upstream runs Test Web on 8 vCPU; on the fork's 4 vCPU runner they time out while other browser files share the CPU, a different set each run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Brings in 135 more upstream commits and resolves 45 conflicts by keeping upstream's change and re-applying the fork's behavior. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Syncs upstream T3 Code through 76d5ec7, upstream's newest commit with green CI. That is 542 commits (66ee628..76d5ec7), merged in two steps: through 0899305 (407 commits, 68 conflicted files), then through 76d5ec7 (135 commits, 45 conflicted files).
Notable upstream changes:
request_secretcan save a token to a file (feat(server): request_secret can save a CLI token to a private file pingdotgg/t3code#24809).chore(lint)commits turn on new rules repo-wide, including a per-file React effect budget, comments capped at four lines, and no polling loops in tests.t3_pending_requestandt3_queue(feat(server): cut T3's MCP tool schemas by a third and merge 18 tools into action tools pingdotgg/t3code#25423). Vercel fx is a new provider (feat(provider): add Vercel fx as a provider pingdotgg/t3code#18277). Settings split into focused pages. Thread state moved to the end of the timeline (feat(web): thread state lives at the end of the timeline, not stacked on the composer pingdotgg/t3code#25401). Model labels use spoken names (feat: model labels show the name you'd say out loud pingdotgg/t3code#24205). On mobile, a "Use last project" preference for new threads (feat(mobile): add a "Use last project" preference for new threads pingdotgg/t3code#24741), and outbox delivery runs as an app service.Conflicts keep upstream's change and re-apply the fork's behavior.
Server
RunExecutionService: upstream split the stop check intoagentTurnsSettledandshouldStopProviderEventIngestion. The fork'schildrenHoldrule now applies in both, so failed or interrupted turns that don't continue still wait for the background-work probe without pinning children.bin.tsandserver.ts: upstream's__document-textfast path sits beside the fork's__spawn-host, and upstream'sDocumentText.layerruns on the fork'sSpawnHost.layer.storageCleanup: upstream's cleanup of deleted-thread worktrees, plus the fork's orphan-worktree removal.t3_thread_searchuses upstream's result shape (withlink) and keeps Home routing.FleetThreadLaunchResultgains an optionallink, andFleetServicefills it for Home-routed launches and sends, which upstream's tool copy tells agents to use.CodexProvider: keeps the fork's shared 30 s probe timeout over upstream's local 20 s one.WorkspaceSearchIndexkeeps the fork's dynamicimport()of fff-node, becausecreateRequirefails on unpatched npm installs on cloud boxes.Sqlite,ProviderSessionManager,ScheduledTaskService,UsageService,ws.ts,ClaudeAdapterV2: the fork's code with upstream's shorter comments.FoundationPersistence.test.tsspied on main-thread statements to prove deletes reach the writer. The fork's writer runs on a worker, so the test now checks that neither discovery nor deletes run on the main thread, and that the rows are gone.ForkMigrations.testnow expects upstream's migration 069 (ThreadMessageSearch) in upstream's ledger.Contracts and client-runtime
settings.tskeeps the fork's settings fields and upstream'sguestSharingEnabled. All have decoding defaults, so older settings files still decode.rpc.tsadds upstream'sWsGuestShareCreateRpcto the fork'sCoreWsRpcGroup.authorization/remote.tstakes upstream'srpcSocketUrland DPoP upgrade proof, but always appends/wsto the base path as the fork did, so gateway paths keep working.shellHostChat: the host's chat copy spreads the current shell state, keeping upstream's newgenerationandremovedAt.Web
PermissionUpdateNotice.tsx(web and mobile): upstream moved the logic into a.tsmodule. The fork's skip for cloud-chat machines is ported there, and the.tsxfiles are gone._chat.settings.*. The fork's Home settings route moved to_chat.settings.home.tsx, at the same/settings/homeURL.routeTree.gen.tswas regenerated.ThreadNotificationCoordinatortakes upstream's rewrite. The fork's rule, that threads Home launched raise no notifications while Home is on, moved intopresent().useHandleNewThread: upstream'screateNewThreadHandler, with the fork'splaceNewChatand Home-aware default project.UsageLimitRecoveryBanner: upstream's deadline-based reset and "Wake now", plus the fork's Switch account button.SidebarThreadRow,SettingsPanels,settingsSearch,CommandPalette,ConnectionsSettings,platform.ts,__root.tsx: both sides' additions. The fork'sCloudCoordinatorsstays mounted in the root.Mobile
Stack.tsxtakes upstream's flat settings routes and keeps the fork'sCloudBoxesWorkerandNewTaskCloudMachineroute.NewTaskCloudMachinejoins upstream's overlay route list, so selecting the new thread dismisses that screen.useSelectWorkspaceDetail. The fork'suseNewThreadNavigationis built on it.Fork code under upstream's new rules
provisionRequests.test.tsandregistry.cloud.test.tsnow wait on a real milestone instead of polling.vite.config.tstakes upstream's removal of the polling burn-down list.Effect.fnandEffect.timeoutOrElse).scripts/cloud/t3Rpc.tsgives its RPC client an explicit type, because the larger RPC group made the inferred type too big for TypeScript to serialize.Second step (through 76d5ec7)
t3_pending_request: upstream merged the three pending-request tools into one action tool. The fork's Home routing (requests.list,requests.read,requests.respond) and itsdecisionparameter are ported onto it, and a non-Homedecisionreturnscapability_denied(new test incore.test.ts). The Home instructions inManagedProjectFoldersname the new tool, andagentContextBudget.jsonallows the fork's extra tool bytes (49,251).ThreadOutboxDrainWorkerand made delivery an app service. The fork's cloud-box delivery is now two plain functions incloud-chat-delivery.ts.holdQueuedBoxDemandkeeps each queued message's box connected until its last message leaves.claimFirstTurnCloudBoxruns when a creation is delivered. Both are wired intocreateThreadOutboxDelivery. The fork'spinnednew-task option is gone, because upstream removed the pending-task editor it served.branchOptionalis ported onto upstream's module-level branch checkout, and a failed optional checkout starts on the default branch.AdaptiveWorkspaceLayoutuses upstream'snewTaskDestination(with "Use last project") and then the fork's cloud-machine routing.newChatScopeTargettakes upstream's connected-copy preference. A waking box still counts as hydrating.client-runtime/state/runtime.ts: upstream's new rule, that a query with nothing to show fails with the last error, applies toconnectingandbackoff. A waking box still waits.MessagesTimeline: the cloud setup card sits inside upstream's new footer, so its growth keeps the list pinned. The Home sender label moved into upstream'ssenderLabel. The fork'shome.openshortcut moved tocommandPaletteCommands.tswith upstream's other shortcuts.apps/server/package.jsontakes upstream's@cursor/sdk1.0.38 and keeps the fork's protobuf and connect pins for e2b and the Namespace SDK.Tests and CI under upstream's new tests
UsageLimitRecoveryCard.test.tsx(mobile) mocks the fork's catalog and server modules, which otherwise pull in Expo, and gains a case for the fork's Switch account button.useCreateCloudMachine.tsnow compiles with the React Compiler, so it leavesKNOWN_BAILOUTS.AttachmentFilePreview.browser.test.tsxin its own step after the rest, with the job timeout raised from 10 to 15 minutes, which also covers upstream's new built-client boot step. Upstream runs this job on 8 vCPU. On the fork's 4 vCPUubuntu-latest, upstream's new Word, WASM and worker preview tests timed out while sharing the CPU, with a different set failing each run (2, then 14). The same file passes 132 of 132 locally on both this branch and upstream.Dependencies
pnpm-lock.yamlis upstream's lock plus the fork'se2b,modaland@namespacelabs/sdk.vp i --frozen-lockfileinstalls it unchanged.pnpm-workspace.yamltakes upstream's enriched-markdown t3.16 tarball and keeps the fork'sprotobufjsandmodalpatch entries. The package manifests,knip.jsoncandthird-party-licenses.config.jsonkeep both sides' entries, andpackage.jsonkeeps the fork'scase:check.Verification:
vp run typecheckpasses inapps/server,apps/web,apps/desktop,apps/mobile,packages/contracts,packages/client-runtime,packages/sharedandscripts.vp lint --report-unused-disable-directivesandvp fmt --checkpass on every file that differs from upstream (682 after the second step).persistencewith ForkMigrations,scheduledTasks,usage,mcp, CloudFleetHost and the rest ofenvironmentControl,home,process), contracts, client-runtime, shared, provider-cursor, mobile, and web unit and browser tests. After the second step: servermcp,home, ProviderTurnStartService and AgentContextBudget (431), the full client-runtime (1,671) and contracts (153) suites, mobilefeatures/threadsandstate(537), and the web settings, command palette and timeline tests.UsageService.test.ts(macOS reports the temp folder as/private/var) and one inClaudeSkills.test.ts. Two desktop tests inDesktopLinuxUrlHandler.test.ts, a file identical to upstream, fail locally on icon-file name casing, which looks like the case-insensitive macOS filesystem; CI runs them on Linux.An independent review covered all 68 conflicted files and the fork-only files rewritten for the new rules. It found one defect, the missing Home link above, which is fixed with a test in
FleetService.test.ts. A second review, scoped to the second step's resolutions, found no defects.Follow-ups, not blocking:
environmentControl/leaseUpkeep.ts:Effect.fnwraps an endless loop, so its span never closes;Effect.fnUntracedfits better.environmentControl/WorkerForks.ts: the span namerunJobshould beWorkerForks.runJob.FleetServicethreads.sendnever returnstaskId(existing gap).presentation.tsshows an enabled environment as connecting until its supervisor reports, which briefly hides the fork's missing-workspace status on a removed box.DocumentTextstarts__document-textwithout the fork's spawn host, which costs a little on Linux.Not verified: the web, desktop and mobile UI were not run, and the native static check could not run because ktlint and detekt are not installed.
🤖 Generated with Claude Code