Evidence ledger · updated 25 September 2026

Engineering impact

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.

Ledger counts

Merged CMUX PRs indexed

437

Curated records

58

Quantitative claims

80

Additive totals

0

Headline claims

Every row carries its confidence and direction. The ledger has no grand dollar total yet.

ClaimValueConfidenceDirectionEvidence
Start macOS compile admission beside the fast Linux jobsrun start to compile admission job created121 seconds/runmeasuredreductionPR / issue
ci: place each PR macOS job on a free owned mini, overflow the restshare of attempt-1 PR compile admissions placed on owned Mac minis49 percent of admissionsmeasuredshiftPR / issue
Stop portal lifecycle tests waiting 12 s each on login(1)TerminalWindowPortalLifecycleTests suite time per CI run166 seconds/runobservedreductionPR / issue
Stop the CLI no-socket regression waiting 90 s for an app it never startstestLaunchCapableCommandsReachTheirDispatchPathWithoutLiveImplicitSocket duration88 seconds/runmeasuredreductionPR / issue
Replay input times onto an owned Mac's kept DerivedDatashare of warm owned compile admissions that rebuilt the whole cmux module35 percentage pointsmeasuredreductionPR / issue
Build cmuxTests without the compilation cache so it rebuilds incrementallycmuxTests build time after a one-test-file body edit108 seconds/runobservedreductionPR / issue
Build the app without the compilation cache before Xcode 26.6cmux target SwiftCompile tasks for a body-only edit to one app file5,217 tasks/buildobservedreductionPR / issue
Run the CLI pipe regressions in compile admission, drop the separate lanemacOS runner time of the removed cli-pipe-regressions job3.3 runner-minutes/runmeasuredreductionPR / issue
Build cmuxTests without emitting its Swift modulecmuxTests build time after a one-test-file body edit27.4 seconds/runobservedreductionPR / issue
worktree reclaim: delete local branches whose work has landed (--branches)landed local branches deleted by the hourly reclaim on Air Blue255 branchesmeasuredreductionPR / issue
fleet-cas: tailnet addressing, launchd wrapper, upstream error loggingcacheable tasks hit through a deployed node reading another mini's store4,192 tasks/buildobservedreliabilityPR / issue
Prune expired R2 cache archives, never one a latest pointer namesR2 cache bytes deleted by the first prune117.2 GiBmeasuredreductionPR / issue
Seed DerivedData on the 12 vCPU macOS 26 poolseeder job queue wait1,326 seconds/runmeasuredreductionPR / issue
Build focused runs from compile admission's DerivedData seedE2E app build step on 6 vCPU macOS 26453 seconds/runmeasuredreductionPR / issue
Start macOS checkouts from main's git objectscompile admission checkout plus git seed restore36 seconds/runobservedreductionPR / issue
Restore SwiftPM's manifest cache for package resolvesadmission Resolve Swift packages step46 seconds/runmeasuredreductionPR / issue
Seed each Swift job width admission compiles atSwiftEmitModule tasks in the cmux scheme of a test-only seeded admission62 tasks/admissionobservedreductionPR / issue
Keep the runner account out of the SwiftPM manifest cache keyadmission Resolve Swift packages step on owned minis36 seconds/runobservedreductionPR / issue
Measure the fleet compilation cache mini to mini on the full cmux appfresh full cmux app build with a filled fleet cache624 seconds/eventobservedreductionPR / issue
Run the CmuxMobileShell package tests seriallypackage-test-wall-time-reduction-lower-bound655 seconds/runderivedreductionPR / issue
Move focused E2E dispatches to the low-queue macOS poolfocused-e2e-queue-p90-reduction82.3 minutesobservedreductionPR / issue
Read app-host artifacts over parallel range requestsartifact-transfer-job-minutes-per-full-suite60 job-minutes/runmeasuredbaselinePR / issue
Throttle push-triggered Nightly builds by published commit ageprojected-macos-runner-minutes-avoided-per-day450 runner-minutes/dayprojectedreductionPR / issue
Measure CI waste on a scheduleruns-beyond-first-on-unchanged-head9,763 runs/windowobservedbaselinePR / issue
Remove full-history checkout and unconditional Zig setup from iOS uploadsmacos-minutes-avoided-per-upload16 runner-minutes/eventderivedreductionPR / issue
Measure CMUX macOS CI capacity and replacement-cost exposurewarp-list-price-equivalent-floor-per-30-day-month52,437.4 USD/30-day-monthderivedbaselinePR / issue
Compile the E2E test product once and reuse it on rerunscompile-minutes-avoided-per-failed-dispatch-rerun15.3 minutes/eventderivedreductionPR / issue
Report recorded failures even when app-host results are incompleterecorded-failures-hidden-in-observed-run148 failures/runmeasuredreliabilityPR / issue
Reclaim eligible linked worktrees with --applyidle linked worktrees removed in the first apply runs248 worktreesmeasuredreductionPR / issue
Add glaeda-disk: where the disk went, and reclaim idle build outputidle build output deleted by glaeda-disk on Air Blue52.8 GiBmeasuredreductionPR / issue
Seed the test compilation cache from one clean buildcompilation-seed-download-reduction-per-pr1.5 GiB/runmeasuredreductionPR / issue
Debounce macOS admission on superseded pull-request pushesrunner-minutes-avoided-per-day590 runner-minutes/dayderivedreductionPR / issue
Route pull-request macOS jobs to sponsored capacityrunner-minutes-shifted-from-paid-capacity-per-day5,900 runner-minutes/daymeasuredshiftPR / issue
Trigger the persistent Mac router once per CI runrouter-runs-avoided-per-day5,611 runs/dayderivedreductionPR / issue
Seed compilation cache on the runner pull requests restore fromcold-compile-minutes-per-affected-pr19.9 minutes/runmeasuredbaselinePR / issue
Move Computer Use runtime out of the 3,700-file app modulewarm-incremental-build-time-reduction25.6 seconds/runmeasuredreductionPR / issue
Reuse one warm DerivedData across development tagssame-commit-tag-build-time-reduction917.3 seconds/runmeasuredreductionPR / issue
Stop pull requests from evicting shared cache seedsgithub-cache-occupancy-observed37.5 GBmeasuredbaselinePR / issue
Seed the Debug compilation cache from maincold-compile-seconds-per-admission-run800 seconds/runmeasuredbaselinePR / issue
Parallelize slow and history-dependent CI guardslinux-guard-critical-path-reduction261.2 seconds/runmeasuredreductionPR / issue

Curated records

Search and filter the same data through /api/work-impact.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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.

  10. 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.

  11. 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.

  12. teamleaderleo/glaeda · pull-request · merged

    fleet-cas: tailnet addressing, launchd wrapper, upstream error logging

    25 September 2026

    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).

  13. 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).

  14. 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.

  15. 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.

  16. 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.

  17. 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.

  18. 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.

  19. 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.

  20. 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.

  21. 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.

  22. 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.

  23. 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.

  24. 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.

  25. 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).

  26. 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.

  27. 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.

  28. 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.

  29. 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.

  30. 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.

  31. 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.

  32. 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.

  33. 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.

  34. 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.

  35. 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.

  36. 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.

  37. 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.

  38. 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.

  39. 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.

  40. 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.

  41. 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.

  42. 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.

  43. 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.

    cicostmacoscapacityeconomics
    • 1,966,401 runner-minutes/90-daysmeasured · baseline

      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.

  44. 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.

  45. 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.

  46. 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).

  47. 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.

  48. 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.

    swiftcompilerbuild-systemcompilation-cacheinvestigation
    • Investigation record; no quantitative impact claim has been promoted yet.
  49. 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.

  50. 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.

  51. 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.

  52. 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.

  53. 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.

  54. 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.

    swiftbuild-systemdeveloper-experiencemodularitylatency
    • 25.6 seconds/runmeasured · reduction

      The measured build fell from 38.9 seconds to 13.3 seconds and compiled zero app-target Swift files after the move.

  55. 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.

  56. 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.

  57. 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.

  58. 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.