merge: sync upstream main through f22331240e - #75
Merged
Merged
Conversation
…12843) Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
…dotgg#12949) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
… the server from starting (pingdotgg#12763)
Co-authored-by: codex <codex@users.noreply.github.com>
…trees (pingdotgg#12953) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…ingdotgg#12954) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…otgg#12955) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…ngdotgg#12945) Co-authored-by: maria-rcks <maria@kuuro.net>
…gdotgg#12982) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…ingdotgg#12984) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…gg#13094) Co-authored-by: Anco <anco@bluebarry.ai> Co-authored-by: Exotic <118054752+extoci@users.noreply.github.com> Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
…ingdotgg#13020) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…otgg#13022) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…ingdotgg#13025) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…ve (pingdotgg#13033) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…gdotgg#13034) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…pingdotgg#13035) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…s a Textarea (pingdotgg#13036) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…ingdotgg#13039) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…ingdotgg#13041) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…otgg#13042) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…ingdotgg#13043) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…ingdotgg#13139) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…gdotgg#12983) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… className ternaries (pingdotgg#13161)
…uniwind variants broke both platforms) (pingdotgg#13169)
Brings in 59 upstream commits (through "fix(server): generate PR diffs from branch changes", pingdotgg#13170) and keeps every Fold feature that overlapped them. Where upstream and the fork changed the same code, the fork's orchestration-v2 structure wins and upstream's behavior is ported onto it: - Shared provider sign-in (pingdotgg#12983) runs through the V2 session manager: one credential change at a time, sessions on every instance bound to the same credentials stop together, and peers that move to other credentials mid-drain are left alone. The session-admission guard moved to the V2 adapter registry. - Worktree submodule settings (pingdotgg#12953/pingdotgg#12954/pingdotgg#12955) are resolved in ThreadLaunchService, where the fork creates worktrees. - Explicit provider refresh (pingdotgg#13109) bypasses T3-owned caches; the Cursor half is dropped because the fork's SDK catalog has no discovery cache. - The design-system pass (pingdotgg#13020-pingdotgg#13043) is adopted as-is, and the extracted BranchPicker and mobile settings sections carry the same changes. The V1 files upstream touched (ProviderCommandReactor, the V1 adapter registry, server.test.ts, HostedBrowserWebview) stay deleted. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Upstream's module-cycle pass (pingdotgg#13151) lowered the `state -> features` import ceiling to 6, and the fork sat at 7. `threadAllowsProviderSwitch` is pure model logic over a thread shell and projection with no feature dependencies, so it belongs beside the composer state that reads it — the same move upstream made for `legacy-plan-mode`. Co-Authored-By: Claude Opus 5 (1M context) <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.
Our fork was 59 commits behind
pingdotgg/t3code. This merges upstreammainthroughf22331240einto a merge commit on top of ours, so every Fold feature survives and the next sync is a normalgit mergerather than a rescue operation.36 files conflicted. Resolution rule: where the fork's orchestration-v2 rewrite owns the code, the fork's structure stays and upstream's behavior is ported onto it; where upstream refactored something the fork had only restyled, upstream wins so the next sync is quieter.
What today's pull brings in
Provider sign-in can be shared between instances (pingdotgg#12983) — the big one. New
ProviderAuthFlow, credential bindings in the credential store, typed sign-in interactions (providerAuthRespond), and shared sign-in methods. Ported onto V2: one credential change at a time across instances that share a binding, sessions on every affected instance stop together, and a peer that moves to different credentials mid-drain is left alone. The session-admission guard (don't start a session while a sign-in it depends on is changing) moved from the deleted V1 adapter registry to the V2 one.Worktree submodule control (pingdotgg#12953, pingdotgg#12954, pingdotgg#12955) —
worktreeSubmodulesint3.json, project settings and environment settings: initialize recursively, top level only, or skip entirely for a setup script to handle. Resolved inThreadLaunchService, where the fork actually creates worktrees. Exposed in web project defaults and in mobile's "New threads" page.Explicit provider refresh bypasses T3-owned caches (pingdotgg#13109) — refreshing a provider now force-refreshes the model manifest, drops per-instance discovery caches, and clears the version cache, instead of waiting out the timers. Also restores the usage-limit refresh and per-instance
refreshModelsthe fork had lost.Settings scope reads as a sentence (pingdotgg#13139, pingdotgg#13165) — the scope a setting writes to is stated at the top of the page; the fork's scope-picker breadcrumb is retired in favor of it.
Opus 5.5 (pingdotgg#13094) plus a model-manifest refresh.
Smaller fixes: attachment uploads retry after reconnect (pingdotgg#10338); composer transitions respect the panel-motion setting (pingdotgg#11064, pingdotgg#13098); menus close when you click into the browser tab (pingdotgg#11148); thread undo moved to a sidebar notice (pingdotgg#12972); comment and review buttons merged into one composer (pingdotgg#12945); PR row actions answer in place (pingdotgg#12843); snooze calendar starts the week where your locale does (pingdotgg#12745); old
message-sentevents without aturnIdno longer block server start (pingdotgg#12763); text selection works while renaming threads (pingdotgg#12935); iOS autocorrect stops rewriting search queries (pingdotgg#12949); PR diffs generate from branch changes (pingdotgg#13170); mobile module-cycle and favicon-cache cleanups (pingdotgg#13151, pingdotgg#13160).Design system pass (pingdotgg#13020–pingdotgg#13043) — ~24 commits giving
Button,Badge,Input,ScrollArea,Skeleton,Empty,Spinner, tooltips, menus and popovers real variants instead of className overrides, plus ashadcn/no-restylelint rule. Adopted as-is; the fork's extractedBranchPickerand mobile settings sections carry the same changes so they don't drift.Fork-side notes
RESTYLE_CEILINGraised 628 → 679. The fork carries surfaces upstream doesn't (work board, splatter themes) that trip the new rule; the gate still blocks growth.1.2.0with the fork's OTA manifest; upstream's bump to1.3.0is not ours to take.ProviderCommandReactor, the V1ProviderAdapterRegistry,server.test.ts,HostedBrowserWebview, and the ACP-based Cursor model discovery.@t3tools/shared/threadEnvModeis gone upstream, folded intoresolveProjectSettings; the fork's last caller already went through the resolver.ProviderTurnStartServicedoesn't read the submodules setting, so it falls back to the checkout's ownt3.json— the same fallback upstream uses when a settings read fails.Verification
vp run -r typecheck— all 15 workspaces cleanvp lint— passes;vp run lint:restyle-ceilingat the ceilingvp run knip:check— cleanNo UI screenshots: the visible changes here are upstream's own, already reviewed in their PRs.
Model: Claude Opus 5 (1M context), harness: Claude Code in T3 Code.
🤖 Generated with Claude Code