Measurements and consequences kept close to their receipts. Baselines, reductions, capacity shifts, and derived estimates stay distinct so a big number can still be audited later.
The raw pull-request snapshot is a retrieval aid. Curated records carry the claims; originating repositories remain authoritative.
Stop the CLI no-socket regression waiting 90 s for an app it never startstestLaunchCapableCommandsReachTheirDispatchPathWithoutLiveImplicitSocket duration
Search and filter the same data through /api/work-impact.
manaflow-ai/cmux · pull-request · merged
Start macOS compile admission beside the fast Linux jobs
25 September 2026
Compile admission waited for the static stage and the admission gate before starting. It now starts right after change detection, with a hold step that keeps consumers behind the fast Linux gate.
cicritical-path
121 seconds/runmeasured · reduction
160.5 s to 39.5 s median; p90 236 s to 77.5 s. One late-night hour after merge; re-measure on a weekday. Job start and compile start also moved (282 s to 60 s, 430 s to 242 s), but pool routing changes merged in the same hour confound those.
manaflow-ai/cmux · pull-request · merged
ci: place each PR macOS job on a free owned mini, overflow the rest
25 September 2026
PR macOS jobs now go to the owned Mac minis first, one job at a time, and overflow to Blacksmith only when no mini is free. This record covers the routing series: owned pools first (cmux#14237), per-job placement (this PR), rolling over to the next pool when one is full (cmux#14323), overflowing to macOS 15 sooner (cmux#14319), and one fleet retry for a refused owned job (cmux#14312, cmux#14325). In the first night after the series landed, about half of PR compile admissions were placed on a mini within seconds.
cicritical-pathrunner-routing
49 percent of admissionsmeasured · shift
0% to 49%, over one 3.5-hour window of US night. Owned-placed admissions waited 2 s median and 3 s p90 for a runner; the other 27 overflowed to Blacksmith. Of the 26 owned attempt-1 jobs, 5 succeeded, 11 failed and 10 were cancelled (mostly superseded pushes). The failures mix real build failures with owned-runner refusals, which the retry path (cmux#14312, cmux#14325) re-runs as attempt 2; this measurement keeps attempt 1 only, so a refused job counts as owned and its refusal plus re-queue time is not in the wait. Runner speed after start is not compared here.
19.5 seconds/runmeasured · reduction
22.5 s to 3 s median; p90 323 s to 229 s; mean 138 s to 70 s. The baseline is conservative: it starts after cmux#14205 (least-queued Blacksmith pool, 12:13Z) and had about half the macOS job demand of the after window (31 to 41 vs 55 to 89 jobs per hour). At matched demand before cmux#14205 the median was 312 s (n=159), but most of that gap belongs to cmux#14205 and a single capped 6vcpu pool, so it is not claimed here. The after window is 3.5 hours of US night, and owned slots were raised again at 04:32Z. Reruns are excluded because their job created_at can follow started_at. Attempt 1 only: for an owned job that was refused and re-run, the extra refusal and re-queue time is not counted, which flatters the after median.
manaflow-ai/cmux · pull-request · merged
Stop portal lifecycle tests waiting 12 s each on login(1)
25 September 2026
TerminalWindowPortalLifecycleTests freed each terminal surface milliseconds after it spawned login(1), which still ignores SIGHUP while starting, so every close waited out Ghostty's full 12 s SIGHUP grace. tearDown now SIGKILLs the processes on the surface's PTY first. The suite went from about 174 s to about 6 s per CI run.
citesting
166 seconds/runobserved · reduction
173.6 s median minus the larger after value (7.3 s). Only two post-merge runs existed at recording time, so this stays observed. Shard 1's job dropped more than the suite did (581 s median to 319 s and 360 s), so part of that drop comes from other merges and is not claimed. Shard 4 was already the longest app-host job, so this saves shard 1 runner time rather than shortening the app-host lane.
manaflow-ai/cmux · pull-request · merged
Stop the CLI no-socket regression waiting 90 s for an app it never starts
25 September 2026
A CLI regression test deliberately starts no app, yet two of its cases waited out the CLI's full 45 s restore-socket startup timeout before asserting 'still opening'. The CLI now accepts an environment override that can only shorten that timeout, and the test sets it to 1 s. The test went from about 90 s to about 2.4 s in CI.
citestingcompute
88 seconds/runmeasured · reduction
90.4 s to 2.4 s median; every before run fell in 90.2 to 90.6 s and every after run in 2.35 to 2.54 s. Six runs that ran the test in under 1 s (a different selection), three on each side, are excluded. The test runs inside the parallel 'Run unit tests' step, so its time is not all wall time.
68 seconds/runmeasured · reduction
Upper bound on the lane effect, recorded as runner time. Shard 4 was usually the longest app-host job (median 653 s before, 590 s after), but shard 1 was close (job median 581 s) and ran longer than shard 4 in some after runs (run 36085886212: 653 s against 628 s), so the app-host lane's wall time fell by less than this step until cmux#14333 shortened shard 1. Other merges landed in the same windows and the after sample is five runs, so not all of the step drop is attributable; the per-test drop is. The PR body placed the test in the 'Run CLI no-socket regressions' step, but it runs in 'Run unit tests'; the no-socket step stayed at 218 to 252 s.
manaflow-ai/cmux · pull-request · merged
Replay input times onto an owned Mac's kept DerivedData
25 September 2026
An owned Mac kept its DerivedData between compile admissions, but every job copied a fresh source tree into the canonical root, so swift-driver saw every file as new and recompiled the whole cmux module. Each owned job now records its inputs' content digests and times, and the next job replays them onto byte-identical files after adopting the kept build.
cibuild-performancecaching
35 percentage pointsmeasured · reduction
82% (9 of 11) to 47% (7 of 15). The task counts are bimodal, so the median (2615 to 1236 tasks) sits on the boundary job of the lower cluster and one more whole-module job would move it back near 2480; it is not claimed. Jobs 7 to 52 changed inputs from the kept build compiled 1 to 177 tasks; jobs 71 to 187 inputs away still rebuilt the module, because the kept build is the previous PR's, not the merge base. The PR's stamp bump made each Mac's first job after merge cold (18 of 35 owned admissions cold after, 13 of 25 before), a one-time cost not netted here.
384 seconds/runmeasured · baseline
Null result for time: 384 s median before, 380 s after. p90 rose from 396 s to 836 s on two contended cmux13s jobs (836 s, 1639 s), unrelated to replay. Jobs that avoided the whole-module rebuild compiled in 91 to 241 s. The PR's expected drop to 50 to 100 s did not hold at the median.
manaflow-ai/cmux · pull-request · merged
Build cmuxTests without the compilation cache so it rebuilds incrementally
25 September 2026
Under the compilation cache, every cmuxTests build rewrote a chained bridging header that all 1,073 test inputs depend on, so a one-test-file edit recompiled the whole test target. The CI compile script now turns the cache off for cmuxTests only, and swift-driver's incremental build recompiles just the edited file. The app and every package keep the cache.
cibuild-performancecaching
108 seconds/runobserved · reduction
One canary run, one edit per mode. Uses 139 s minus 31 s; the second cache-on series gives 98 s. Only pays off when an admission rebuilds on adopted DerivedData. Adding a top-level declaration in the app still recompiles every cmuxTests file with or without the cache (117 s in the same run). Of the remaining 31 s, 25.7 s was cmuxTests' own emit-module job, which cmux#14364 then removed.
1,354 cpu-seconds/buildobserved · reduction
Xcode Build Timing Summary, summed task time across the 12 vCPU runner, not wall time. Same caveats as the wall-time claim.
manaflow-ai/cmux · pull-request · merged
Build the app without the compilation cache before Xcode 26.6
25 September 2026
On the macOS 15 pool (Xcode 26.3), a body-only edit to one app file recompiled every file in the cmux target. Under the compilation cache, Xcode 26.3 rewrites the app's ChainedBridgingHeader.h and bridging PCH on every build with identical bytes and a newer mtime, and the driver then invalidates all 2,615 inputs. The compile script now turns the cache off for the cmux target when Xcode is older than 26.6, and the same edit compiles 2 tasks.
cibuild-performancecaching
5,217 tasks/buildobserved · reduction
Two edits each way, one runner each. Only pays off in PR admission when it adopts DerivedData to rebuild on: the macOS 15 seeds (cmux#14315, cmux#14358) merged the same morning, and seeds built before this fix used the cache for cmux, so the first adoption after a stale seed can still rebuild the app fully. Xcode 26.6 pools were already incremental and are unchanged.
407 seconds/runobserved · reduction
Uses the smaller before value (448 s minus 41 s). The fix as merged measured 72 s and 44 s in run 36090019330. Same caveat as the task claim: it needs adopted DerivedData to rebuild on.
manaflow-ai/cmux · pull-request · merged
Run the CLI pipe regressions in compile admission, drop the separate lane
25 September 2026
The cli-pipe-regressions lane took its own macOS runner to rebuild the Debug CLI that compile admission already builds, then ran three Python tests and two CmuxFoundation filters. Admission's CLI smoke step now runs the two tests it lacked against its own binary, the CmuxFoundation filters stay covered by swift-package-tests, and the lane is deleted.
cicomputecapacity
3.3 runner-minutes/runmeasured · reduction
Median lane job 197 s, gross, on runs that routed to the CLI lane. The mean lane job was 382 s, so the median is the conservative figure. Averaged over all 137 PR runs in the window this is about 59 s per run. This removal also ends the cli-pipe-resolve-time claim in cmux-14257.
2 seconds/runmeasured · shift
9 s to 11 s median: the cost of running the two moved tests in admission, paid by every admission, including runs that never used the CLI lane. Admission is on the critical path, so this is a small increase there.
261 runner-minutes/windowmeasured · baseline
Step totals: CLI build 88 min, Restore Swift packages 85 min, resolve 32 min, tests about 23 min, the rest setup and checkout. Critical-path effect is small: the lane was the last job to finish in only 3 of 41 runs, so no time claim is made.
manaflow-ai/cmux · pull-request · merged
Build cmuxTests without emitting its Swift module
25 September 2026
After cmux#14349, most of a one-test-file cmuxTests rebuild was the target's own emit-module job, a serial type-check of every test file that produced a module nothing imports. CI now builds cmuxTests with the standalone Swift driver and -no-emit-module-separately, so no module is planned, and the same edit rebuilds cmuxTests in about 4 s with the same tests in the bundle.
cibuild-performance
27.4 seconds/runobserved · reduction
Uses the smaller before (31.6 s) minus the larger after (4.2 s). The whole cmux-unit rebuild went from 47 to 55 s to 19 s in the same series, which contains this saving, so it is not claimed separately. A standalone-driver series that still emitted the module took 36.4 s, so the gain comes from dropping the module. Only pays off when an admission rebuilds on adopted DerivedData, and the first admissions after the merge rebuild cmuxTests once because its arguments changed. Too few post-merge admissions existed at recording time (29 minutes after the merge) to measure it there. cmux#14378 (merged 04:40Z) applies the same settings to the local scripts/test-unit.sh.
teamleaderleo/glaeda · pull-request · merged
worktree reclaim: delete local branches whose work has landed (--branches)
25 September 2026
Removing a worktree kept its branch, so every agent task left a local branch behind. The hourly reclaim now also deletes local branches that are not checked out, are idle, and whose work landed (a merged PR containing the tip, or git alone), with a compare-and-swap delete and a receipt to restore each one.
developer-loop
255 branchesmeasured · reduction
Backlog clearance, capped at 64 per run, and eligible branches remained, so the total keeps rising. Before, these were only removed by a manual git branch -D. Big Red runs the same job; its receipts were not read here.
teamleaderleo/glaeda · pull-request · merged
glaeda-fleet-cas: ProcessType Interactive for the node and store agents
25 September 2026
The fleet cache node and store daemons ran at background priority, and under load they failed a large share of store calls. They now run as Interactive.
fleetcachingreliability
751 failures/runobserved · reliability
751 to 0. Wall time went 684 s to 2,643 s, likely from a 66 GB VM image pull on the same host (unconfirmed); this is a reliability win, not a speed win.
Cross-machine reads through the deployed fleet cache services never worked: macOS Local Network privacy blocks launchd-started third-party binaries on the headless minis from other hosts' LAN addresses. The store and nodes now use tailnet addresses, and a fresh full cmux app build on cmux11s hit every cacheable task through its deployed node.
fleetcachingreliability
4,192 tasks/buildobserved · reliability
Before, the deployed (launchd) node could not reach the store at all, so deployed cross-machine reads served nothing; lab reads in glaeda-1162 and glaeda-1180 ran from ssh, which the block does not affect. The 326 s build time is not claimed as a reduction: there is no same-host, same-Xcode cold baseline for it (756 s in glaeda-1162 was Xcode 26.3).
manaflow-ai/cmux · pull-request · merged
Prune expired R2 cache archives, never one a latest pointer names
24 September 2026
Nothing deleted CI cache archives from R2, so the bucket grew about 35 GiB a day, mostly per-commit Xcode compilation archives. A daily prune now deletes archives past their family's retention (1 day for per-commit families, 30 days for content-keyed ones) and never deletes one a latest pointer names.
cicachingstorage
117.2 GiBmeasured · reduction
One-time reclaim. The steady-state effect is capping growth at about one day of per-commit archives, not measured here.
35 GiB/dayobserved · baseline
The PR's stated growth rate (143.4 GiB held after about five days; the PR puts steady growth at about 35 GiB a day, mostly compilation archives).
manaflow-ai/cmux · pull-request · merged
Order R2 cache pointers by run ID, so seeder saves take effect
24 September 2026
The latest-seed pointer could name an older save than the newest one, so seeders kept adopting a stale seed. Pointers are now ordered by run ID.
cicachingreliability
322 inputs/runobserved · reliability
451 to 129 median on the same pool. Later runs reached a median of 28, but those also had #14188's faster seed cadence and #14190. Build time on the same pool moved only 845 s to 737 s.
manaflow-ai/cmux · pull-request · merged
Download the admission DerivedData seed while packages resolve
24 September 2026
Compile admission downloaded the DerivedData seed after resolving packages. The download now runs during the resolve.
cicritical-pathcaching
38 seconds/runmeasured · reduction
148 s to 110 s median. From job start the gain is 23 s, because checkout got about 12 s slower in the same period.
manaflow-ai/cmux · pull-request · merged
Balance the guard legs the macOS gate waits on
24 September 2026
The macOS admission gate waits on the slowest guard leg. This PR rebalanced the guard legs, and #14176 started them beside Fast static checks.
cicritical-path
21 seconds/runmeasured · reduction
100 s to 79 s median shortly after merge; over the whole day 89 s, and nothing measurable from run start because change detection itself got slower. #14176 accounts for about 5 s of it.
manaflow-ai/cmux · pull-request · merged
Stop counting queue time on cancelled jobs as runner minutes
24 September 2026
The CI health report counted the queue time of cancelled jobs as runner minutes, inflating the apparent cost of cancelled work. It now counts only minutes a runner actually ran.
ciobservability
4,732 minutes/windowmeasured · reliability
A reporting correction, not a compute saving: queue-only minutes were about 14 times the real runner minutes (4,732 vs 345), so the old report showed about 15 times the real cost.
manaflow-ai/cmux · pull-request · merged
Seed DerivedData on the 12 vCPU macOS 26 pool
24 September 2026
The main-branch seeder queued behind PR jobs on the 6 vCPU pool, so seeds landed long after each push. It now runs on the 12 vCPU pool.
cicachingcritical-path
1,326 seconds/runmeasured · reduction
1,342 s to 16 s median. After 14:00Z the 12 vCPU pool queued too (621 s and 663 s), once PR admissions began preferring it.
1,888 seconds/runmeasured · reduction
2,628 s to 740 s median, including the faster build and #14174 and #14190.
manaflow-ai/cmux · pull-request · merged
One git archive for the trusted router; delete duplicate CI guard tests
24 September 2026
The trusted CI router copied its 82 base files one git call at a time. It now extracts them with one git archive; the change also deleted duplicate guard tests.
citesting
14.2 seconds/runobserved · reduction
14.6 s to 0.43 s, measured locally on a loaded host with a full clone; a CI shallow checkout will differ and was not measured.
manaflow-ai/cmux · pull-request · merged
Build only the CLI product for CLI-only changes
24 September 2026
A CLI-routed change built all four app schemes. It now builds only the CLI product and its tests.
cicritical-path
80 seconds/runobserved · reduction
120 s to 40 s compile on the same PR. The broader 388 s to 36 s medians (n=4 each) compare first admissions against reruns and are not like for like. No true CLI-only PR has run yet.
manaflow-ai/cmux · pull-request · merged
Build focused runs from compile admission's DerivedData seed
24 September 2026
Focused E2E runs compiled the app cold. They now adopt compile admission's DerivedData seed.
citestingcaching
453 seconds/runmeasured · reduction
888 s to 435 s median. The before side includes 7 builds that had already adopted main's DerivedData or an early admission seed.
34.5 seconds/runmeasured · reduction
553 s to 518.5 s median over all builds. A seed hit builds in 367.5 s, but 8 of 22 builds missed with no-seed, cause unknown. macOS 15 has no seed until #14315.
manaflow-ai/cmux · pull-request · merged
Run focused cmuxTests against products CI already compiled
24 September 2026
Focused E2E runs of cmuxTests always compiled the whole app first. The dispatcher now reuses products PR CI already built, or waits for an in-flight CI compile of the same commit, and recompiles only cmuxTests.
citestingdeveloper-loop
15 refs/daymeasured · baseline
The 82 sampled cmuxTests-only runs had 12 to 27 minute build jobs; the duplicate refs' own compile times were not listed. No after-count was taken.
manaflow-ai/cmux · pull-request · merged
Compile only the cmuxTests sources a rerun's suites reach
24 September 2026
App-host test reruns still compiled all 1,091 test-target sources (1,069 cmuxTests files plus 22 app and CLI files) to run one suite. The rerun now prunes the test sources to those the selected suites can reach (1 to 24 of 1,069 files on that day's traffic), with a full-compile fallback.
citestingdeveloper-loop
212 seconds/runobserved · reduction
583 s to 371 s. One run each, so indicative only.
manaflow-ai/cmux · pull-request · merged
E2E: wait for an earlier dispatch's compile of the same revision
24 September 2026
Two test-e2e dispatches of one commit with different selectors ran side by side, each compiling the same product for 12 to 27 minutes. A sibling job now waits for the earlier run's build and adopts its product through the existing lookup.
citesting
12 runs/windowmeasured · baseline
Each would have cost 12 to 27 minutes of macOS compile. No after-count was taken.
manaflow-ai/cmux · pull-request · merged
Replay directory times when adopting a DerivedData seed
24 September 2026
Seed adoption restored file times but not directory times, so Xcode saw Assets.xcassets as changed on every adoption and reran the asset catalog. Directory times are now recorded with a digest of their entry names and restored when the names match.
cibuild-performancecaching
29 runs/windowmeasured · reliability
29 of 29 to 0 of 3. The after seeds also carried cmux-14262's checksum-only mode, so the 0 of 3 is both changes combined. The cmux-unit phase did not get faster: 12 vCPU 129 s median to 112 s (n=1); 6 vCPU 199 s median to 207 s and 242 s. cmuxTests still recompiles fully after adoption (cmux#14320).
manaflow-ai/cmux · pull-request · merged
Clone the canonical build root instead of rsyncing it
24 September 2026
Compile admission copied the checkout into the canonical build root with rsync. It now uses an APFS clone (cp -cpR).
cicritical-path
7.5 seconds/runobserved · reduction
10.0 s median to 2.54 s. The before runs span three pools; the after run was 6vcpu macOS 26.
manaflow-ai/cmux · pull-request · merged
Start macOS checkouts from main's git objects
24 September 2026
Every macOS job cloned the tested commit at depth 1 into an empty repository, downloading about 129 MB. Main now publishes a git seed, and macOS jobs restore it before checkout so the fetch moves only the delta.
cicritical-path
36 seconds/runobserved · reduction
48 s median to 12 s (4 s checkout plus 8 s restore). One after-sample per lane.
88 minutes/windowmeasured · baseline
35 + 21 + 17 + 15 minutes of checkout in the window.
manaflow-ai/cmux · pull-request · merged
Restore SwiftPM's manifest cache for package resolves
24 September 2026
Every admission re-evaluated about 90 Package.swift manifests. SwiftPM keys its manifest cache on the whole process environment, so a plain restore never hit. The resolve now runs under a fixed environment and restores a manifest cache main seeds.
cicritical-pathcaching
46 seconds/runmeasured · reduction
63 s to 17 s median.
32.5 seconds/runmeasured · reduction
48 s to 15.5 s median.
manaflow-ai/cmux · pull-request · merged
Skip a main seed build only when the nearest seed has the same inputs
24 September 2026
The seeder skipped a main commit whenever its parent's inputs matched, even when the parent had no seed, leaving main on a stale seed for 80 minutes in the latest case. It now compares against the nearest seeded ancestor.
cicachingreliability
8 runs/windowderived · reliability
8 of 22 to 0 of 22 by replaying the new rule on the same skips, not by live runs after merge. One extra, harmless build.
manaflow-ai/cmux · pull-request · merged
Compare build inputs by content so an adopted seed rebuilds only real changes
24 September 2026
Seeded PR compile admissions reran every C compile and re-emitted every package module even with an unchanged source tree, because llbuild compared mtimes and 1,616 Xcode SDK and toolchain files carry different mtimes on each runner image. Building with Swift Build's FileSystemMode=checksum-only, and folding the mode into the seed fingerprint, made the C and resource work cache-hit.
cibuild-performancecaching
129 tasks/admissionobserved · reduction
129 to 0. One run each: the before run was 12 vCPU with a same-width seed, the after run 6 vCPU with a j12 seed, and the after seed also carried cmux-14241's directory-time replay. The Swift module re-emits remained until cmux-14275.
manaflow-ai/cmux · pull-request · merged
Seed each Swift job width admission compiles at
24 September 2026
Swift Build passes -j<CPU count> to every swift-driver invocation, and no build setting overrides it. A seed built on 12 vCPU therefore changed every Swift driver task on a 6 vCPU runner, and all 62 modules re-emitted. Seeds are now keyed by width and built for each Blacksmith macOS 26 pool, and admission adopts a seed of its own width first.
cibuild-performancecaching
62 tasks/admissionobserved · reduction
62 to 0, one run each. Holds when a seed of the runner's width exists. Owned 14-CPU minis have none yet (cmuxterm-hq#590). cmuxTests still recompiles fully after adoption (cmux#14320).
86 seconds/runobserved · reduction
145 s to 59 s. One run each, so indicative only.
manaflow-ai/cmux · pull-request · merged
Keep the runner account out of the SwiftPM manifest cache key
24 September 2026
The SwiftPM manifest cache from cmux-14257 never hit on the owned Mac minis, because the runner account's HOME was part of the key. The resolve now runs with a fixed HOME, so the minis hit the same cache as Blacksmith.
cicritical-pathcaching
36 seconds/runobserved · reduction
52 to 56 s before, 13 to 16 s after; 36 s is the conservative gap (52 minus 16). cli-pipe-regressions on a mini still missed (41 s, n=1) because its workspace path differs.
manaflow-ai/cmux · pull-request · merged
Keep compile admission's build state on an owned Mac between jobs
24 September 2026
Owned Mac minis now keep compile admission's DerivedData and package checkouts between jobs, instead of restoring caches and a seed every time.
cifleetcaching
4.7 minutes/runobserved · reduction
15.4 to 10.7 min. It comes from skipping the seed and cache restore: the kept DerivedData still recompiled about 2,600 tasks, because the kept tree is whatever PR the mini built last (cmuxterm-hq#590). Warm owned is still 0.4 min behind the Blacksmith median. One warm job (107903167882) failed after compiling.
teamleaderleo/glaeda · pull-request · merged
glaeda-cmux-runner: one-command GitHub Actions runner for a cmux Mac mini
24 September 2026
One command turns a cmux Mac mini into a GitHub Actions runner with fleet labels. The first owned-mini runner (cmux15-glaeda) ran a job green on the fork.
fleetci
1 runnersobserved · shift
0 to 1, job-verified on the fork. By glaeda#1175, 13 runners were registered on manaflow-ai/cmux but not yet taking jobs; glaeda#1200 plans 36. Neither is job-verified here.
teamleaderleo/glaeda · pull-request · merged
Measure the fleet compilation cache mini to mini on the full cmux app
24 September 2026
Measured Xcode's compilation cache served from a shared fleet store on the Manaflow M4 Pro minis: a fresh full cmux app build that reads a filled store instead of compiling.
build-performancecachingfleet
624 seconds/eventobserved · reduction
756 s to 132 s. Lab measurement, not CI. For the full app the store and reader were on the same mini; cross-machine was shown on the CmuxSettingsUI chain, and for the full app in glaeda-1180.
teamleaderleo/glaeda · pull-request · merged
Record the cross-machine full-app read of the fleet compilation cache
24 September 2026
Repeated glaeda-1162's full-app measurement with the store filled on one mini and read from another over the LAN.
build-performancecachingfleet
629 seconds/eventobserved · reduction
756 s to 127 s. Members share entries only on the same Xcode build. The network adds about 20 to 30 s.
manaflow-ai/cmux · pull-request · merged
Run the CmuxMobileShell package tests serially
23 September 2026
Diagnosed a package lane that timed out without reporting a result as contention from parallel Swift Testing execution; serial execution finished the same 1,060 tests in about a minute and exposed the smaller set of real failures.
citestingswiftreliabilityperformance
655 seconds/runderived · reduction
Parallel execution exceeded 12 minutes without finishing; serial execution completed in 65 seconds. The stored 655-second reduction is therefore a lower bound.
144 failures/runderived · reliability
The parallel run produced about 161 issues while the serial run reported 17 real failures; the difference is approximately 144 contention artifacts.
manaflow-ai/cmux · pull-request · merged
Move focused E2E dispatches to the low-queue macOS pool
23 September 2026
Compared focused E2E dispatches across the macOS 15 and macOS 26 pools, then changed the automatic default to the pool with dramatically lower queue tails while preserving an explicit macOS 15 override.
cilatencymacosrunner-routingtesting
82.3 minutesobserved · reduction
Observed queue p90 was 83.3 minutes on macOS 15 and 1.0 minute on macOS 26. Execution median was about four minutes slower on macOS 26, and the test mixes differed, so the comparison is operational rather than causal.
3.8 minutesobserved · shift
Execution median was 18.7 minutes on macOS 15 and 22.5 minutes on macOS 26 while total elapsed median still favored macOS 26 after queueing.
manaflow-ai/cmux · pull-request · merged
Read app-host artifacts over parallel range requests
23 September 2026
Traced app-host product restore time to the single-stream artifact transport rather than hashing or extraction, then added a verified parallel range-request path with the canonical GitHub download retained as fallback.
ciperformanceartifact-transportmacos
60 job-minutes/runmeasured · baseline
The baseline was about eight minutes per consumer; the PR reports the transfer step as roughly 98 percent transport time and moves the path to concurrent ranges with verification and fallback.
manaflow-ai/cmux · pull-request · merged
Throttle push-triggered Nightly builds by published commit age
23 September 2026
Measured seven days of push-triggered Nightly activity and added a two-hour publication interval so busy main-branch periods stop running the expensive macOS publication pipeline back to back.
cicostmacosnightlycapacity
450 runner-minutes/dayprojected · reduction
The PR projects roughly 450–600 macOS minutes/day avoided at the two-hour default. This record stores the lower edge of that stated range; the PR also gives a roughly 280-minute/day lower-bound scenario.
1,030 runner-minutes/daymeasured · baseline
The seven-day sample recorded 7,197 push-to-main macOS minutes, about 1,030 minutes/day including three hung builds.
manaflow-ai/cmux · pull-request · merged
Measure CI waste on a schedule
23 September 2026
Turned repeated manual Actions investigations into a scheduled health report covering runner minutes, queue percentiles, cancelled work, repeated unchanged heads, mostly-skipped workflows, fork cache behavior, and previous-window comparison.
ciobservabilitycapacitycostreliability
9,763 runs/windowobserved · baseline
The report found 9,763 runs beyond the first for a head that did not change. This is an observation to investigate, not a claim that every repeated run is removable.
119.8 minutesobserved · baseline
The previous window's corresponding p90 was 0.9 minutes, which made the new 119.8-minute queue visible as a capacity regression.
manaflow-ai/cmux · pull-request · merged
Remove full-history checkout and unconditional Zig setup from iOS uploads
23 September 2026
Replaced a full recursive checkout and unconditional Zig installation in both iOS upload workflows with a shallow checkout, prebuilt-first GhosttyKit path, and bounded history fetch only when release notes actually need it.
ciiosreleasemacoscost
16 runner-minutes/eventderived · reduction
The PR states about 16–17 macOS minutes saved per upload. This record stores the lower edge of that range.
390 runner-minutes/dayprojected · reduction
The PR gives an upper ceiling of about 6.5 macOS-hours/day when all 24 hourly opportunities upload. Actual savings depend on upload frequency.
manaflow-ai/cmux · issue · measured
Measure CMUX macOS CI capacity and replacement-cost exposure
23 September 2026
A GitHub Actions 90-day usage export records 1,966,401 self-hosted macOS runner-minutes, averaging 21,848.9 minutes/day. Pricing every minute at only WarpBuild's cheapest documented macOS rate yields a $52,437.36 per 30-day-month replacement-cost floor.
The export contains 1,966,401 self-hosted macOS minutes. ci.yml alone accounts for 1,345,657 minutes, or about 68.4 percent of this total.
21,848.9 runner-minutes/dayderived · baseline
This 90-day average is about 16.8 percent above the separate 18,704-minute one-day accounting from September 22.
52,437.4 USD/30-day-monthderived · baseline
Floor valuation only: 655,467 equivalent minutes per 30 days at $0.08/min. No 12-vCPU premium is applied. This is replacement-cost exposure, not a claim that every minute was actually billed to Warp or saved by one contributor.
637,987.9 USD/yearderived · baseline
Annualized replacement-cost floor at the 90-day average. Any 12-vCPU Warp usage would raise the equivalent value.
18,704 runner-minutes/daymeasured · baseline
This independent issue-level accounting remains a useful corroborating snapshot but is no longer the primary economic baseline.
manaflow-ai/cmux · pull-request · merged
Compile the E2E test product once and reuse it on reruns
23 September 2026
Split the focused E2E dispatch into filter, build, and test jobs so invalid selectors fail on Linux before a Mac starts and reruns download the retained test product instead of recompiling it.
citestingmacosbuild-reuse
15.3 minutes/eventderived · reduction
Fresh dispatches do not claim lower total runner minutes; this figure is the measured compile portion removed from a rerun by the new job split.
manaflow-ai/cmux · pull-request · merged
Report recorded failures even when app-host results are incomplete
23 September 2026
Fixed an early-return path where one missing terminal test result caused the shard to suppress every failure it had successfully recorded, leaving red full-suite runs without the names of the tests that regressed.
citestingreliabilitydiagnostics
148 failures/runmeasured · reliability
The fix changes diagnostics, not the fail-closed verdict: incomplete runs remain failed while recorded failures are now named.
teamleaderleo/glaeda · pull-request · merged
Reclaim eligible linked worktrees with --apply
23 September 2026
glaeda-worktree-reclaim gained --apply: it re-plans each eligible linked worktree, pins an orphan HEAD, rechecks for movement and removes it with git's own guards, recording commit and branch so it can be recreated. The first runs cleared a backlog of 248 idle worktrees across Air Blue and Big Red. The first apply on Air Blue ran from the PR build shortly before merge.
developer-loopstorage
248 worktreesmeasured · reduction
Exact count from receipts; each reclaim is recoverable from the recorded commit and branch. Free space rose by 11.4 GiB (sum of per-repository before and after readings, so other host activity can move it).
teamleaderleo/glaeda · pull-request · merged
Add glaeda-disk: where the disk went, and reclaim idle build output
23 September 2026
glaeda-disk reports where the disk went by family and deletes idle, reproducible build output (Xcode DerivedData, temp-dir scratch, idle session scratchpads) with process, git and idle-window vetoes. On Air Blue it deleted 52.8 GiB of idle build output in its first day and a half, 35.5 GiB of it after merge.
developer-loopstorage
52.8 GiBmeasured · reduction
Gross bytes deleted, not sustained free space: DerivedData and scratch regrow when the next build or session needs them. 35.5 GiB of it came after merge; the other 17.3 GiB was deleted by the PR's own build before merge. The minis run the same pressure job but have not been under pressure (194 to 270 GiB free against a 69.1 GiB threshold), so there are no mini receipts.
swiftlang/swift · issue · filed
Cached-diagnostics replay crash with mixed prefix-mapped inputs
23 September 2026
Reduced a real compilation-cache crash to three Swift source files and one resource, traced the replay failure through CachedDiagnostics and FileSpecificDiagnosticConsumer, decoded the CAS diagnostics blob, and connected the missing-file condition to an earlier prefix-map fix.
Investigation record; no quantitative impact claim has been promoted yet.
manaflow-ai/cmux · pull-request · merged
Seed the test compilation cache from one clean build
22 September 2026
Stopped the test compilation-cache seeder from restoring its previous seed by prefix and recursively accumulating old generations until it crossed the save bound and froze.
cicacheswiftmacosperformance
1.5 GiB/runmeasured · reduction
The clean seed is about 3.5 GiB instead of roughly 5.0 GiB, so every pull request restores about 1.5 GiB less.
manaflow-ai/cmux · pull-request · merged
Debounce macOS admission on superseded pull-request pushes
22 September 2026
Inserted a bounded Linux admission delay before expensive macOS work so rapid follow-up pushes cancel stale runs before a Mac starts, then replayed a day of job timings to estimate the avoided work and latency trade-off.
cicostmacosqueueing
590 runner-minutes/dayderived · reduction
Replay estimate at the default 180-second delay; the same analysis measured a 1.4-minute median increase to the green signal.
manaflow-ai/cmux · pull-request · merged
Route pull-request macOS jobs to sponsored capacity
22 September 2026
Measured a day of macOS workload by triggering event, then routed the pull-request burst lane from paid overflow onto sponsored Blacksmith capacity while leaving other events on the existing repository variable.
cicostmacosrunner-routing
5,900 runner-minutes/daymeasured · shift
This moves workload onto sponsored capacity; it does not claim the compute disappeared.
manaflow-ai/cmux · pull-request · merged
Trigger the persistent Mac router once per CI run
22 September 2026
Changed the persistent-Mac router from a workflow activity emitted for every CI job to the once-per-run requested event, eliminating thousands of duplicate router invocations while preserving the trust boundary and hosted fallback.
cicontrol-planemacoscapacityrouting
5,611 runs/dayderived · reduction
The measured baseline was about 6,864 router runs/day; the once-per-CI-run trigger was expected to produce about 1,253/day, an 82% reduction.
manaflow-ai/cmux · pull-request · merged
Seed compilation cache on the runner pull requests restore from
22 September 2026
Found that the nightly compilation-cache seed and pull-request consumer ran on different runner layouts even though the cache fingerprint included the workspace path, making the seed impossible to restore by construction.
ciswiftcompilation-cacherunner-routing
19.9 minutes/runmeasured · baseline
The PR explicitly left warm compile time unmeasured until the next scheduled seed.
manaflow-ai/cmux · pull-request · merged
Move Computer Use runtime out of the 3,700-file app module
20 September 2026
Moved the Computer Use runtime into a local package and a shared process-identity type into CmuxFoundation so edits in those files stop paying the app target's whole-module planning and compilation cost.
The measured build fell from 38.9 seconds to 13.3 seconds and compiled zero app-target Swift files after the move.
manaflow-ai/cmux · pull-request · merged
Reuse one warm DerivedData across development tags
20 September 2026
Changed tagged development builds from one fresh DerivedData tree per tag to a reusable warm tree, while keeping build serialization, CLI lookup, path validation, and cleanup ownership explicit.
developer-experiencexcodeswiftbuild-cachelatency
917.3 seconds/runmeasured · reduction
Fresh DerivedData took 953 seconds; a new tag using the already-warm shared DerivedData took 35.7 seconds.
manaflow-ai/cmux · pull-request · merged
Stop pull requests from evicting shared cache seeds
20 September 2026
Found that pull-request jobs were writing gigabyte-scale, PR-scoped cache entries that other pull requests could never read, rapidly evicting the main-branch seeds and forcing expensive macOS builds cold.
cicacheswiftcostreliability
37.5 GBmeasured · baseline
The oldest macOS entry was only five minutes old and the shared Debug compilation seed was already missing. Pull-request jobs had 14 save+restore cache steps and wrote 1–3 GB PR-scoped entries.
manaflow-ai/cmux · pull-request · merged
Seed the Debug compilation cache from main
20 September 2026
Added a scheduled main-branch seed for the Debug compilation cache so pull-request compile admission could restore shared package work instead of always beginning from an empty cache.
ciswiftcompilation-cachemacos
800 seconds/runmeasured · baseline
The PR deliberately did not quote an unmeasured CI savings number before the scheduled seed had run.
manaflow-ai/cmux · pull-request · merged
Parallelize slow and history-dependent CI guards
20 September 2026
Split one roughly 390-second guard job into shallow, history-only, CLI-script, and source-lint jobs so independent policy checks run concurrently before macOS admission.
cilatencylinuxcritical-path
261.2 seconds/runmeasured · reduction
Measured guard wall time fell from 385.5 seconds to 124.3 seconds, about a 68% reduction.
1.1 runner-minutes/runmeasured · shift
Runner consumption rose from 6.43 to 7.49 minutes because parallel jobs duplicate setup work. The change intentionally spends cheap compute to return the macOS admission answer sooner.