Repository navigation
Conversation
…stalling the workspace
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
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.
Result: about 80–160s off each release (−13% to −23%)
Since Windows arm64 stopped being the last desktop job, about a third of a release is the jobs after the desktop builds, which run one after another: Publish GitHub Release, then npm → hosted web → Discord, with AUR alongside. On the last two cached nightlies these took 204–273s. Most of that was checkout and Setup Vite+ installing the workspace to run a 1–6s step:
npm publishspent 49–62s on setup plus 9–20s in post-step cleanup.Old and new jobs, side by side in three runs on a fork (same runners, publish steps dry-run or pointed at a local webhook):
Estimate per release, applying those savings to the last two cached nightlies: 639s → ~556s and 713s → ~552s. After this, AUR (59–86s, mostly building the package) is about as long as the npm → web → Discord chain, so trimming either one further gains little.
Pipeline, before and after
Before: every job after the desktop builds checks out the repo and installs the workspace before doing a few seconds of work (times from upstream nightlies 39543980476 and 39505921112):
After: a new job builds those inputs while the desktop builds run, and the jobs after them only download them (times from the fork bench):
Prepare publish toolsstarts right after preflight and runs alongside the ~250s desktop builds, so nothing waits on it.Change
prepare_publishjob, alongside the desktop builds and off the critical path: buildst3.tgzand esbuild-bundlesmerge-update-manifestsandnotify-discord-release(same approach as the Windows verify scripts), plus a copy ofmirror-play-apk.cjs, into one artifact.releasenow needs it.releaseandannounce_discorddownload that artifact instead of checking out and installing. The scripts run on the runner's own Node (v22 on Blacksmith images);import.meta.mainis defined at bundle time so they run on Node versions that lack it.publish_clirunsnpm publish --provenance ./t3.tgzafter apackage.json-only checkout andactions/setup-node, so npm still comes from the repo's Node 24 (npm 11.19; trusted publishing needs 11.5.1+). It stays on the GitHub-hosted runner.cli.ts publishhad no other callers and is removed.deploy_webchecks out onlypackage.jsonfor Setup Vite+. It keepsvp dlx vercel;npx verceltook 23s against 3s.publish-aur.ymlchecks out onlypackaging/, which is allpackaging/aur/scripts/release.shreads.Parity, from the fork runs: merged updater manifests are byte-identical, the npm tarball has identical file contents (
npm publish --dry-runoutput matches), and the Discord webhook payload is identical apart from its timestamp.Not tested on the fork
The fork has no npm trusted publisher, Vercel or Discord secrets, and the AUR job only runs on
pingdotgg/t3code. The realnpm publish --provenance, the Vercel alias, the Discord post andmakepkgfrom the sparse checkout are first exercised on the next upstream nightly.Built with Claude Opus 5.5 via Claude Code.