Repository navigation
Conversation
…atform packages Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ng t3 npm scans each new version for minutes before it serves it, so the t3 launcher could go live while its platform package still returned 404 and npx t3 then failed with no build for the platform (pingdotgg#14409). After the platform uploads, poll npm until every version the launcher lists serves its tarball, and time out without publishing t3 after 20 minutes. The publish job timeout goes from 15 to 35 minutes so the wait fits on top of the job's existing budget. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…are not served Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — The release path now performs external npm readiness checks and may defer or withhold publishing the You can add or adjust custom eligibility rules. Learn more. |
This branch has not been deployed
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.
Problem
npx t3@nightlycan install before npm serves its platform package and exit with "no T3 Code CLI build is available for this platform". npm accepted linux-x64 at 09:44:43Z in the triaged nightly but did not serve it until 09:54:07Z. The launcher was already live at 09:47:30Z.Change
After all platform uploads succeed, wait until npm serves every exact version in the launcher's
optionalDependencies, then publisht3. A version is ready only when its registry metadata GET and tarball HEAD both return 2xx. Errors count as not ready.Poll pending versions every 15 seconds and fail after 20 minutes without publishing the launcher. Dry runs decode the launcher manifest but skip the wait. Raise
publish_cli's job timeout from 15 to 35 minutes to leave room for the wait and the existing job budget.Scope and approval
Fixes #14409. juliusmarminge's triage confirms waiting for fetchable platform tarballs before publishing
t3and movingnightly. This supports the direction, not acceptance of this implementation. No maintainer has commented on this smaller version yet.Verification
Linux x64, Node v24.18.1. Focused test command:
With the new tests over main
ec1313c8f8: 4 failed, 2 passed, exit 1. The ordering assertion shows the launcher starts without waiting; the other three failures exercise helpers absent on main. Branchd9e96e17e0: 6 passed, exit 0.The tests were checked against two mutants, one that publishes
t3after a failed wait and one that counts registry or network errors as served; each fails a test.New tests over main, excerpt from the saved run.
The same tests on the branch, excerpt from the saved run.
Virtual-clock replay, using a temporary script not in the PR:
All uploads are accepted at t=0. linux-x64 becomes served at 564 seconds, using the triage delay; other platforms' delays are assumed. Main publishes
t3at 0 seconds and the replay counts it live at once, leaving a simulated 564-second broken window. The branch publishes at the next poll, 570 seconds, with no broken window. If linux-x64 never becomes served, the branch times out without publishingt3. This is a replay, not a real release.Saved replay output, including the never-served case.
Read-only live probe, also a temporary script:
All five platform versions in published
t3@0.0.45report served; an unpublished linux-x64 version reports not served. Waiting for those five returns in 1,803 ms. No package was published.Other recorded checks:
vp lint apps/server/scripts/publishOrder.ts apps/server/scripts/cli.ts apps/server/scripts/publishOrder.test.ts: exit 0, no findings.vp fmt --checkon changed files: exit 0.vp run typecheckinapps/server: exit 0 atd9e96e17e0, no diagnostics inpublishOrder*.vp run knip:check: exit 0 on an earlier commit with the same exports and imports; later commits change only the workflow timeout and test assertions.Not checked:
npm publish.registry.npmjs.org, which the probe uses directly.Redo of closed #18251 after maria-rcks requested a substantially smaller readiness fix. Kept the wait, manifest-derived versions, GET/HEAD probe, timeout withholding
t3and 35-minute job limit. Dropped registry selection, URL/auth handling, per-request timeouts, backoff, concurrency, custom errors, stalled-body handling, manifest/tarball cross-checks, recovery docs and most tests. 51 non-test effective changed lines, 130 total, versus 1,007 in #18251.Credits
BOTKooper reported #14409 and proposed holding the launcher. juliusmarminge triaged it, measured the gap and confirmed the direction. No code from other contributors.
Production fix and tests written with Claude Opus 5.5 via claude_auto using the Claude Code harness; PR description and images by GPT-6.1 Sol using the Codex harness, both in T3 Code.
🤖 Generated with Claude Code