perf(ci): cut about a minute from every release - #8250
Conversation
Four release workflow changes from a timing audit of 60 release runs: - Drop the explicit web build in publish_cli. The t3 build task already depends on @t3tools/web#build, so the web client built twice (~35s). - Start relay_public_config and build_wsl_node_pty alongside preflight. Both consume only the commit SHA, so they no longer wait for version resolution (~30s). - Move the nightly cron off minute zero. GitHub delays scheduled runs most at the top of the hour (median 13m late in the sample). - Add per-channel concurrency groups so overlapping nightlies cannot build the same commit twice. Stable releases keep their own group. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
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. |
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — The PR changes release scheduling, concurrency, queueing, and job dependency behavior for workflows that publish production artifacts. The redundant web build removal is localized, but the release-orchestration changes have material operational impact and should receive human review. You can add or adjust custom eligibility rules. Learn more. |
The default concurrency queue holds one pending run per group and replaces it newest-wins, so a queued stable tag could be silently canceled by a third release. queue: max preserves all pending runs in FIFO order. Queued nightlies with no new commits still skip through check_changes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Dismissing prior approval to re-evaluate ebe3ebf
|
Note 🤖 Claude Fable 5 responding on behalf of Theo Merging over this verdict. It asks for human review of the release-orchestration changes, and that review happened: Theo and a second reviewing agent audited the workflow changes, the reviewer flagged the pending-stable cancellation edge case, and |
* perf(web): stop preview loading rerenders (pingdotgg#7561) * fix(web): keep messages clear of composer banners (pingdotgg#7792) * feat(web): double-click chat header title to rename thread (pingdotgg#7817) * fix(web): model picker no longer shows a double border (pingdotgg#7772) Co-authored-by: GPT-5.6 <noreply@openai.com> * fix(web): give sidebar un-settle button a tooltip (pingdotgg#7796) * fix(web): render oversized terminal graphemes without crashing (pingdotgg#7809) Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com> * feat(web): cmd+enter to create thread in background (pingdotgg#7821) * fix(web): launcher shortcuts no longer hijack the empty composer (pingdotgg#7794) Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com> * feat(desktop): choose external project icons (pingdotgg#7823) * perf(web): dedupe terminal mouse motion reports (pingdotgg#7845) Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com> Co-authored-by: maria <254055478+maria-rcks@users.noreply.github.com> * fix(search): oversized thread queries no longer crash clients (pingdotgg#6633) Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com> * fix(mobile): stop a directly-saved backend from hiding its T3 Connect environment (pingdotgg#7086) * feat(analytics): threads and turns now know which client started them (pingdotgg#7774) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(web): stop marking mixed tool runs as failed (pingdotgg#7893) * fix(web): command-click spaced folder links (pingdotgg#6439) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> * fix(chat): stop pushing follow-up messages to the top (pingdotgg#7897) * test(desktop): remove redundant release note assertion (pingdotgg#7873) Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com> * fix(web): handle wide ordered-list marker edge cases (pingdotgg#7856) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(ssh): restore user PATH for remote servers (pingdotgg#7213) * fix(desktop): keep tailscale spawn defects from breaking advertised endpoints (pingdotgg#7116) * fix(web): keep Codex service tier labels readable (pingdotgg#4503) * fix: render workspace images in chat markdown (pingdotgg#6433) * fix(clients): keep opening responses visible after turns settle (pingdotgg#7723) * feat(web): add appearance contrast control (pingdotgg#7906) Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com> Co-authored-by: maria <254055478+maria-rcks@users.noreply.github.com> * fix(server): stop completed Codex threads from staying stuck on working (pingdotgg#7937) * fix(mobile): preserve markdown image dimensions (pingdotgg#7940) * fix(web): remove duplicate provider update progress (pingdotgg#7761) * fix(server): fall back to the remote default branch instead of assuming main (pingdotgg#7078) * fix(web): give sidebar project menu rows the same side padding as other menus (pingdotgg#7913) * fix(clients): reconnect after credentials fail during remote server updates (pingdotgg#7953) * feat(codex): submit thread feedback to OpenAI (pingdotgg#7949) * fix(server): stop kills lingering Claude work (pingdotgg#5891) * fix(ci): let Macroscope approve pull requests again (pingdotgg#7970) * fix(clients): move settled pinned threads into the settled section (pingdotgg#7969) * perf(ci): speed up release builds and Windows packaging (pingdotgg#7975) * fix(web): stop tool calls from leaving a blank page in threads (pingdotgg#7971) * fix(web): stop recovered tool failures from marking work logs red (pingdotgg#7999) * fix(mobile): isolate markdown image requests (pingdotgg#7942) * feat(web): redesign skills in `$` menu and in `/` menu (pingdotgg#8009) * fix(web): restore right panel toggle clicks after closing on desktop (pingdotgg#8016) * fix(web): keep server update banners flush with the composer (pingdotgg#8000) * perf(web): reuse work log rows during streaming (pingdotgg#8006) * fix(web): keep provider badge legible in dark themes (pingdotgg#7968) Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com> Co-authored-by: maria <254055478+maria-rcks@users.noreply.github.com> * fix(web): treat configured urls with uppercase schemes as secure (pingdotgg#8005) Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com> * fix(desktop): keep release notes visible while downloading (pingdotgg#6412) * fix(web): show only providers with usage in usage views (pingdotgg#7563) * fix(web): prevent expanded tool calls from hiding thread content (pingdotgg#8052) * test(server): remove no-op live activity tests (pingdotgg#8056) Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com> * fix(web): clarify terminal sidebar grouping (pingdotgg#7967) * fix(codex): show app access approval prompts (pingdotgg#8058) * feat(web): upload image attachments before sending (pingdotgg#8048) * fix(server): bound OpenCode skill discovery output (pingdotgg#7675) Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com> * fix(mobile): persist thread shelf collapse state (pingdotgg#5152) * fix(mobile): restore Android tablet thread controls, clean up header (pingdotgg#5385) * fix(mobile): land the first thread open above the composer on Android (pingdotgg#5585) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): check out submodules in a new worktree (pingdotgg#7674) Co-authored-by: Rodrigo Brechard <rodrigo@clubtidy.fr> * fix(server): preserve merged PR badges after branch deletion (pingdotgg#6216) * fix(server): return fresh live pull request reads (pingdotgg#6472) * fix(web): compare client and server versions as semver, not strings (pingdotgg#7579) * fix(web): stop follow-ups from leaving giant blank space (pingdotgg#8068) * fix(marketing): stop automatic Vercel deployments on pull requests (pingdotgg#8070) * chore: vouch repeat contributors (pingdotgg#8071) * fix(server): keep the authoritative subagent model when snapshots race task_started (pingdotgg#7583) * fix(server): honor auto-accept edits for the OpenCode provider (pingdotgg#7100) * fix(server): run the CLI on Node versions without import.meta.main (pingdotgg#7141) * fix(server): recover from provider interrupt failures (pingdotgg#7412) * fix(server): recreate a thread's worktree before starting a turn (pingdotgg#7839) * fix(server): thread delete no longer fails on already-removed worktrees (pingdotgg#8076) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(web): stop update notices showing through the composer (pingdotgg#8083) * fix(web): detect outdated nightly servers (pingdotgg#8124) * fix(web): align usage page skeleton layout (pingdotgg#8111) * fix(web): make terminal links appear clickable only when clickable (pingdotgg#7488) * fix(web): make Windows file links clickable in chat (pingdotgg#8081) * fix(web): sort usage models by token count (pingdotgg#8108) * fix: open agent file links in the file viewer (pingdotgg#8098) * fix(server): stop routine events from rescanning thread history (pingdotgg#8150) * fix(deps): stop pnpm installs from changing the lockfile (pingdotgg#8163) * feat(web): settle and restore threads with a keyboard shortcut (pingdotgg#8089) * perf(desktop): cut macOS signing calls by 81% (pingdotgg#8093) * feat: link pull requests to threads (pingdotgg#8160) * feat(web): safely attach HEIC photos as JPEG images (pingdotgg#8161) Co-authored-by: mweinbach <maxweinbach5@gmail.com> * feat(mobile): track device models and OS versions (pingdotgg#8169) * fix(grok): bound cumulative tool output updates (pingdotgg#7279) * fix(web): delay thread shortcut hints by 200 ms (pingdotgg#8172) * fix(server): stop probing Cursor until enabled (pingdotgg#8175) * docs(release): verify remote updates with database migrations (pingdotgg#8177) * fix(server): keep provider CLIs available in the macOS service (pingdotgg#8173) * feat(claude): compact old threads before they burn through usage (pingdotgg#8144) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(client-runtime): retry queries after connection interruption (pingdotgg#8117) * fix(server): keep previously used providers working after upgrades (pingdotgg#8176) * feat(desktop): build macOS previews from a PR label (pingdotgg#8182) * fix(web): thread jump hints no longer stick after a dictation paste (pingdotgg#8189) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(web): keep grouped project renames (pingdotgg#7831) * feat(web): reveal chat file chips in the system file manager (pingdotgg#7140) Co-authored-by: Dara Adedeji <daraaded@amazon.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> * fix(server): push no longer writes a feature branch's commits to its base branch (pingdotgg#8228) * chore(deps): bump @clerk/electron to 0.0.37 (pingdotgg#8240) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * feat(server): fetch legacy model classification from a hosted manifest (pingdotgg#8227) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * chore(release): prepare v0.0.34 * fix(desktop): let Clerk UI receive stable auth fixes (pingdotgg#8248) * fix(app): un-settled threads return to the top of the list (pingdotgg#8231) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * perf(ci): cut about a minute from every release (pingdotgg#8250) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Bilal Bakr <62337003+Bil0000@users.noreply.github.com> Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com> Co-authored-by: Rakshith Bhat <88523594+RakshithBhat03@users.noreply.github.com> Co-authored-by: GPT-5.6 <noreply@openai.com> Co-authored-by: Simone <lucenz@proton.me> Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com> Co-authored-by: Exotic <118054752+extoci@users.noreply.github.com> Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com> Co-authored-by: maria <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: Rishet11 <154429365+Rishet11@users.noreply.github.com> Co-authored-by: Theo Browne <me@t3.gg> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Dara Adedeji <76637177+SunkenInTime@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: abcdmku <63693423+abcdmku@users.noreply.github.com> Co-authored-by: Guilherme Barros <gbarros1095@gmail.com> Co-authored-by: Alex <me@pixp.cc> Co-authored-by: Naveed Iqbal <naveediqbal949@gmail.com> Co-authored-by: Ishaan Kothari <ishaanko.mail@gmail.com> Co-authored-by: Tristan Knight <admin@snappeh.com> Co-authored-by: Wout Stiens <71498452+StiensWout@users.noreply.github.com> Co-authored-by: Pavlo Trinko <paul.trinko95@gmail.com> Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Rodrigo Brechard <rodrigobrechard@gmail.com> Co-authored-by: Rodrigo Brechard <rodrigo@clubtidy.fr> Co-authored-by: Adamulek123 <adam.bogucki2018@gmail.com> Co-authored-by: spiky02plateau <155588579+spiky02plateau@users.noreply.github.com> Co-authored-by: Carlos Jimenez <cjimenez@r21digital.com> Co-authored-by: Mark Griffin <mrmg@deflexion.net> Co-authored-by: MacKinley Smith <smithmackinley@gmail.com> Co-authored-by: oliver <97427849+flamboh@users.noreply.github.com> Co-authored-by: mweinbach <maxweinbach5@gmail.com> Co-authored-by: Lars Nieuwenhuis <35393046+lnieuwenhuis@users.noreply.github.com> Co-authored-by: Mohtasham Murshid <154406804+MohtashamMurshid@users.noreply.github.com> Co-authored-by: Dara Adedeji <daraaded@amazon.com>
## What's Changed * fix(app): un-settled threads return to the top of the list by @t3dotgg in pingdotgg/t3code#8231 * perf(ci): cut about a minute from every release by @t3dotgg in pingdotgg/t3code#8250 **Full Changelog**: pingdotgg/t3code@v0.0.35-nightly.20260826.1194...v0.0.35-nightly.20260826.1195 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.35-nightly.20260826.1195
Releases take a median 13m37s. Two pieces of that are pure waste: the CLI publish job builds the web client twice, and two startup jobs wait for version resolution they never use. This PR removes both, worth about a minute per release. It also fixes two scheduling problems found in the same audit.
t3build task already depends on@t3tools/web#build, so the explicit web build step repeated ~35s of work on the serial publish path. Verified locally:vp run --filter t3 buildemits exactly one web build and still producesdist/bin.mjs,dist/service-launcher.mjs, anddist/client/index.html.cancel-in-progress: false, so no running publisher is ever canceled. Stable tag releases get their own group and are never blocked by a nightly.Timing data comes from an audit of 60 release runs. The larger follow-ups from that audit (prebuilt hosted-web deploy, early CLI build, Windows cache benchmark) are separate work.
Changes by Claude Fable 5 via Claude Code.
🤖 Generated with Claude Code
Note
Low Risk
Changes are limited to GitHub Actions release orchestration; artifact contents should be unchanged aside from avoiding a redundant web build.
Overview
This PR trims release workflow wall time (~1 minute per run) and hardens nightly scheduling.
Parallelism:
relay_public_configandbuild_wsl_node_ptyno longer wait on preflight—they only need the commit SHA, so they start in parallel with version resolution (same gating as preflight on scheduled runs whencheck_changesfinds new commits). Both jobs check outgithub.shainstead of a preflight ref.Duplicate work:
publish_clidrops the explicit@t3tools/webbuild step;vp run --filter t3 buildalready pulls in the web client via the existing task dependency.Scheduling / safety: The nightly cron moves from minute 0 to minute 7 every 3 hours to reduce GitHub’s top-of-hour delay. A concurrency block serializes nightly runs (
cancel-in-progress: false,queue: max) while stable tag releases use a separate group so they are not blocked or dropped when nightlies queue.Reviewed by Cursor Bugbot for commit ebe3ebf. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Run
relay_public_configandbuild_wsl_node_ptyin parallel withpreflightin release workflowrelay_public_configandbuild_wsl_node_ptyto depend oncheck_changesinstead ofpreflight, so they run in parallel with preflight rather than waiting for ithas_changesis nottrue, avoiding redundant buildsgithub.shadirectly instead ofneeds.preflight.outputs.refnightlyvsstable) withcancel-in-progress: false, and shifts the cron schedule from minute 0 to minute 7 to avoid GitHub peak loadpreflightto complete, so apreflightfailure will not prevent these jobs from starting; verify thatrelay_public_configandbuild_wsl_node_ptydo not rely on any output frompreflightbeyondrefMacroscope summarized ebe3ebf.