chore: sync fork with upstream - #31
Conversation
…ingdotgg#4555) Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
…otgg#4556) Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…tgg#4397) Co-authored-by: codex <codex@users.noreply.github.com>
…queue (pingdotgg#4453) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Prepare Relay production infrastructure for the PlanetScale PS_20 HA topology, upgrade Effect and Alchemy to compatible betas, reconcile migration state, and preserve patched MCP session termination behavior.\n\nCo-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
…ts down (pingdotgg#4531) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
…tgg#4670) Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com>
|
Addressed both Codex findings in 1237188:
Focused verification: 69 tests across the affected relay/desktop files, targeted lint, and relay/desktop typechecks. @codex review |
💡 Codex ReviewDuring a fast restart, provisioning can begin after t3code/infra/relay/src/environments/ManagedTunnelLimits.ts Lines 114 to 116 in 1237188 When CLI-managed environments shut down, the release flow deletes their Cloudflare tunnels but deliberately retains unrevoked managed link rows. This branch therefore counts every released environment forever, regardless of the five-minute reservation cutoff; after three such environments, provisioning a fourth is rejected at the default limit even though no tunnels remain active. The quota predicate needs an allocation state that distinguishes a live tunnel from a retained offline link. AGENTS.md reference: AGENTS.md:L96-L96 t3code/infra/relay/src/environments/ManagedEndpointAllocations.ts Lines 360 to 363 in 1237188
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
Addressed the follow-up findings in e0f529e:
Focused verification: 63 relay tests, targeted relay lint, and relay typecheck all pass. @codex review |
💡 Codex Reviewt3code/infra/relay/src/environments/ManagedEndpointProvider.ts Lines 594 to 599 in e0f529e If Cloudflare deletion succeeds but ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
Addressed the interrupted-release recovery finding in 4313af2:
Focused verification: 64 relay tests, targeted lint, and relay typecheck pass. @codex review |
💡 Codex ReviewExisting rows are unconditionally backfilled as ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
Addressed the migration backfill finding in 69bc081. Existing allocations without a recorded tunnel are now backfilled as expiring The SQL-only commit used @codex review |
💡 Codex Reviewt3code/infra/relay/src/environments/ManagedEndpointAllocations.ts Lines 341 to 342 in 69bc081 When two provision requests overlap for the same environment, both may reserve before either finishes, but AGENTS.md reference: AGENTS.md:L96-L96 ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
Addressed the overlapping-provision finding in 00427d6. The allocation upsert is now the per-environment operation lease: a fresh Added a concurrent regression that pauses the first tunnel creation, verifies a second same-environment provision fails at allocation reservation, then allows the owner to complete. Focused verification: 65 relay tests, targeted lint, and relay typecheck pass. @codex review |
💡 Codex Reviewt3code/infra/relay/src/environments/ManagedEndpointAllocations.ts Lines 243 to 246 in 00427d6 When a provision remains paused for more than five minutes, this branch allows a second request to take over the allocation and increment its generation. If the original request later resumes, however, ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
Addressed stale-lease mutation fencing in 7176728. The reservation generation now flows through Added a focused zero-row CAS regression. Focused verification: 66 relay tests, targeted lint, and relay typecheck pass. @codex review |
💡 Codex ReviewWhen a provisioner pauses for longer than the five-minute lease after t3code/infra/relay/src/environments/ManagedEndpointAllocations.ts Lines 424 to 427 in 7176728 When two release requests overlap, the second request can load the t3code/infra/relay/src/environments/ManagedTunnelLimits.ts Lines 107 to 110 in 7176728 If provisioning stalls or the Worker dies after ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
Addressed both follow-up findings in 849505a:
Added focused stale-tunnel rotation and concurrent-release regressions. Focused verification: 68 relay tests, targeted lint, and relay typecheck pass. @codex review |
💡 Codex ReviewWhen provisioning records a tunnel or DNS resource but fails before AGENTS.md reference: AGENTS.md:L95-L95 ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
Macroscope has since reviewed this pull request. An earlier review was skipped by a cost limit; a review has now completed, so that notice no longer applies. |
|
Addressed the latest stale-deprovision finding in fa16920: I also compared PR #31 with Focused verification: 85 relay/text-generation tests, targeted lint, and relay/server typechecks pass. @codex review |
💡 Codex Reviewt3code/infra/relay/src/environments/ManagedEndpointProvider.ts Lines 764 to 767 in e1c11fd When a provision has recorded its tunnel and then remains inside ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
Addressed the stale-DNS mutation finding in b5a987e by bounding the entire managed-endpoint provision attempt to four minutes, strictly below the five-minute allocation lease. A hung Cloudflare configuration/DNS operation is interrupted before another request can take over, so the expired generation cannot later resume and mutate shared DNS. Added a TestClock regression with a permanently hung tunnel creation. Focused verification: 69 relay tests, targeted lint, and relay/server typechecks pass. @codex review |
|
Codex Review: Didn't find any major issues. Delightful! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Summary
Bring the fork up to date with
pingdotgg/t3codeatb64ae880e, while preserving T3 Dulli branding, Pi support, Workler integration, fork-safe workflows, and the disabled upstream release schedule.Merge resolution also adapts the new pull-request template tests to the fork's Workler-backed Git driver layer.
Verification
vp test run apps/web/src/components/BranchToolbar.logic.test.ts apps/web/src/components/chat/composerProviderState.test.tsx apps/server/src/orchestration/Layers/ProviderCommandReactor.test.ts apps/server/src/provider/Layers/PiProvider.test.tsvp test run apps/server/src/sourceControl/PrTemplateDetection.test.tst3,@t3tools/web,@t3tools/client-runtime, and@t3tools/contractspnpm install --lockfile-only --frozen-lockfile --ignore-scriptsCreated with GPT-5.6 Sol in the pi coding agent harness.
Note
Sync fork with upstream across alchemy-effect, effect-smol, app, and infra packages
This is a large upstream sync touching many packages. The most impactful functional changes are:
DesktopPreviewBridgecontract in ipc.tscomposer.stashas a static keybinding (mod+swhen terminal is not focused) in keybindings.ts/settings/appearanceroute renderingAppearanceSettingsPanelin settings.appearance.tsxCloudflare.Queue/Cloudflare.QueueSendertoCloudflare.Queues.Queue/Cloudflare.Queues.WriteQueueClientacross relay infradevAllowedOriginsfield toServerConfig, populated viaT3CODE_DEV_ALLOWED_ORIGINSenv varpolicyandchangeRequestTemplateto all text generation providers (Claude, Codex, Cursor, Grok, OpenCode, Pi)backgroundThrottling: false) inDesktopWindowcreationCloudflare.QueueorCloudflare.QueueSendertypes must be updatedMacroscope summarized b5a987e.