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.
Every row carries its confidence and direction. The ledger has no grand dollar total yet.
Claim
Value
Confidence
Direction
Evidence
cmux-wg: agree on ultra mode inside the tunnel, so one end turning it on protects both directionsremote desktop stream input-to-photon p50, ultra mode on at the viewer only, 100 ms RTT, 10% loss
cmux-host, cmux-remote: the relay Register reads a ticket kept ahead and registers at once after a resumeresume to registered, p50, Cloud relay Register
Composer hat: finished lines stay longer, never go right after a look, and the hat folds awaylargest single-frame dock height step when the composer hat's last line leaves (Chromium)
cmux link sync push: no-follow writes, so a folder's listing replaces the per-file fs.statlink sync push wall time, 3,038 files, 460 MB, 30 ms latency, 8 Mbit/s
Cloud copy: compressed fs.write bytes (fs-write-deflate-v1) and fewer round trips per filebytes sent up for a 3,190-file, 365 MB Cloud push at 8 MB/s and 30 ms one-way latency
Prompt rail: full length on the first frame from the prompt count, no shift as history loadsprompt rail tick-track length gap between first paint and final, cold open of a 1,000-turn chat with paged history
carry of #26809: cmux-next swift test: main-thread-heavy suites in their own processes, the broad pass sharded, SIGPIPE caught as in the appMac minutes on the cmux-next swift test job, one full day
fix(agent-pane): the summary card holds still while the chat scrollsDOM changes in the inline Summary card and toggle while history pages in (100 frames, Chromium)
cmux NEXT: a chat opens on its attach, not on acpmux's paced session list (30 s → <1 s on a busy Mac)chat open (connect) time with the session list held for 3,000 ms
perf(agent-chat): sweeping the pointer across the session rail paints within each framesession rail hover: pointer move to card painted, p50, 3,000 prompts
acpmux: restore older Claude chat history after restartnavigation to newest answer in the page, restored chat of 700 turns (200 seeded, 500,000 raw log records)
ci(webviews): split the test shards by recorded duration, not index mod 4react-apps-check slowest shard job, median wall time on feat-cmux-next push runs
cmux NEXT: hide the app executable's exports, keep names in an in-app symbol map (-11 MiB, cx-b6r7)cmux NEXT arm64 executable symbol/name storage net reduction
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
cmux-wg: agree on ultra mode inside the tunnel, so one end turning it on protects both directions
9 November 2026
cmux-wg peers now agree on ultra mode inside the tunnel, so turning it on at one end protects both directions; under loss the desktop stream's input-to-photon p50 went from seconds to the base latency (100 ms RTT, 10% loss: 13,710 ms to 118 ms).
remoteperformance
13,600 msobserved · reduction
13,710 ms to 118 ms (116x), scripts/remote-stream-ultra-bench.sh on wg-tcp over the in-process lossy link, 8 s per cell, one run per cell, mode rs:4:4@viewer; before = base feat-cmux-next ae80f703 plus the bench knob (run 42537114898), after = this PR. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
30,300 msobserved · reduction
30,661 ms to 326 ms (94x), scripts/remote-stream-ultra-bench.sh on wg-tcp over the in-process lossy link, 8 s per cell, one run per cell, mode rs:4:4@viewer; before = run 42537114898, after = this PR. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
1,160 msobserved · reduction
1,206 ms to 46 ms (26x), scripts/remote-stream-ultra-bench.sh on wg-tcp over the in-process lossy link, 8 s per cell, one run per cell, mode rs:4:4@viewer; before = run 42537114898, after = this PR. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
manaflow-ai/cmux · pull-request · merged
cmux-wg: send a tail-loss probe before the retransmission timeout (vendored smoltcp)
8 November 2026
cmux-wg's TCP now sends a tail-loss probe before the retransmission timeout; in the interleaved bench a 100 ms RTT link at 1% loss improved from 1605 to 1173 ms p50 input-to-photon. At 300 ms RTT and 1% loss p50 got worse (4732 to 6268 ms).
performanceremotenetwork
432 msobserved · reduction
1,605 ms to 1,173 ms, remote_stream_bench --path wg-tcp --seconds 8 --bulk-bytes 4000000, in-process lossy link, fleet Linux, median of 4 interleaved runs per arm; A = #37889 head, B = A plus this change. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
495 msobserved · reduction
5,097 ms to 4,602 ms, same bench, median of 4 interleaved runs. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
2,240 msobserved · reduction
11,670 ms to 9,432 ms, same bench, median of 4 interleaved runs. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
manaflow-ai/cmux · pull-request · merged
cmux-wg: opt-in ultra mode (FEC and duplication under WireGuard) and its loss bench
8 November 2026
An opt-in FEC mode under WireGuard rebuilds lost datagrams: input-to-photon p99 at 100 ms RTT and 3% loss went from 5347 ms to 509 ms.
performancenetworking
4,840 msobserved · reduction
5,347 ms to 509 ms (11x), scripts/remote-stream-ultra-bench.sh, remote_stream_bench wg-tcp desktop stream, fleet Linux, 8 s per cell, one run per cell; before is ultra mode off, after is opt-in CMUX_WG_ULTRA=fec:8:2 (costs about 1.25-1.35x bytes. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
3,280 msobserved · reduction
3,794 ms to 513 ms (7.4x), scripts/remote-stream-ultra-bench.sh, remote_stream_bench wg-tcp desktop stream, fleet Linux, 8 s per cell, one run per cell; before is ultra mode off, after is opt-in CMUX_WG_ULTRA=fec:8:2 (costs about 1.25-1.35x bytes. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
1,040 msobserved · reduction
1,175 ms to 132 ms (8.9x), scripts/remote-stream-ultra-bench.sh, remote_stream_bench wg-tcp desktop stream, fleet Linux, 8 s per cell, one run per cell; before is ultra mode off, after is opt-in CMUX_WG_ULTRA=fec:8:2 (costs about 1.25-1.35x bytes. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
12,900 msobserved · reduction
13,268 ms to 323 ms (41x), scripts/remote-stream-ultra-bench.sh, remote_stream_bench wg-tcp desktop stream, fleet Linux, 8 s per cell, one run per cell; before is ultra mode off, after is opt-in CMUX_WG_ULTRA=fec:8:2 (costs about 1.25-1.35x bytes. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
manaflow-ai/cmux · pull-request · merged
cmux-host, cmux-remote: the relay Register reads a ticket kept ahead and registers at once after a resume
8 November 2026
After a resume, the Cloud relay Register reads a ticket kept ahead and registers at once: resume to registered p50 drops from 3.57 s to 0.68 s.
performancecloud
2.9 smeasured · reduction
3.57 s to 0.68 s (5.2x), cmux-host carrier_register_harness, HARNESS_RUNS=10, Linux pool; before = #38291 head (run 42465470129), after = this PR (run 42467371720. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
manaflow-ai/cmux · pull-request · merged
Composer hat: finished lines stay longer, never go right after a look, and the hat folds away
8 November 2026
When the composer hat's last line leaves, the hat now folds away over several frames instead of dropping 28 px in one frame, so the dock height no longer jumps (largest per-frame step 28 px to 9.6 px in Chromium).
layout stabilitycomposer
18.4 pxobserved · reduction
28 px to 9.6 px (2.9x), webviews test/composer-hat-leave-fold.test.ts (gallery entry agent-pane.composer-hat-linger, last-leaves variant); before = base plus gallery scaffolding (run 42474935253), after = PR head. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
manaflow-ai/cmux · pull-request · merged
cmux-wg: start the tunnel's TCP at RFC 6928's 10-segment window (vendored smoltcp)
7 November 2026
The tunnel's TCP starts at a 10-segment window, so a 200 KB first frame arrives sooner: 3191 ms to 1714 ms at 150 ms RTT with 1% loss.
performancenetworking
183 msobserved · reduction
616 ms to 433 ms, remote_stream_bench, wg-tcp path, 200 KB first frame, 10 s per row, 8 vCPU fleet Linux, one run per side; before is #37801 at 2a55b95c, after is this PR at 79d08b6d. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
492 msobserved · reduction
1,744 ms to 1,252 ms, remote_stream_bench, wg-tcp path, 200 KB first frame, 10 s per row, 8 vCPU fleet Linux, one run per side; before is #37801 at 2a55b95c, after is this PR at 79d08b6d. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
385 msobserved · reduction
988 ms to 603 ms, remote_stream_bench, wg-tcp path, 200 KB first frame, 10 s per row, 8 vCPU fleet Linux, one run per side; before is #37801 at 2a55b95c, after is this PR at 79d08b6d. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
1,480 msobserved · reduction
3,191 ms to 1,714 ms, remote_stream_bench, wg-tcp path, 200 KB first frame, 10 s per row, 8 vCPU fleet Linux, one run per side; before is #37801 at 2a55b95c, after is this PR at 79d08b6d. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
manaflow-ai/cmux · pull-request · merged
Fork Conversation: quiet history copy, a pending line with Cancel
6 November 2026
Fork Conversation copies history quietly: watching apps hear 2 notes per fork instead of 402, and a fork of a 73,119-event chat takes 345 ms instead of 1.04 s.
performance
695 msobserved · reduction
1,040 ms to 345 ms (3.0x), fork_latency (cargo test -p acpmux --test hub_integration fork_latency -- --ignored), 5 forks, p50, one fleet run on 8 cores; PR states 1.04 s, converted at 1 s = 1000 ms. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
249 msobserved · reduction
365 ms to 116 ms (3.1x), fork_latency, 5 forks, p50, same fleet run. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
400 notes/forkobserved · reduction
402 notes/fork to 2 notes/fork (201x), fork_latency, same run (bench chat repeats one record pattern; grows with chat length on real chats. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
manaflow-ai/cmux · pull-request · merged
cmux link sync: push through a per-user content-addressed blob store
4 November 2026
cmux link sync can push through a per-user content-addressed blob store, so a second machine or a small edit to a big file moves far fewer bytes from the Mac: a second machine went from 89,610,640 B to 235,291 B.
syncperformance
89,400,000 Bobserved · reduction
89,610,640 B to 235,291 B (381x), cargo test -p cmux-tui --test link_sync_store (fake platform and fake machine daemon, loopback); bytes from the Mac = link bytes + store upload bytes. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
30,600,000 Bobserved · reduction
33,682,014 B to 3,115,369 B (11x), cargo test -p cmux-tui --test link_sync_store; bytes from the Mac = link bytes + store upload bytes. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
22,700,000 Bobserved · reduction
89,610,640 B to 66,955,373 B, cargo test -p cmux-tui --test link_sync_store; bytes from the Mac = link bytes + store upload bytes. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
manaflow-ai/cmux · pull-request · merged
cmux link sync push: no-follow writes, so a folder's listing replaces the per-file fs.stat
4 November 2026
A link sync push reads one folder listing instead of one stat per file: a 3,038-file push went from 462.4 s to 286.0 s.
performancecloud
176 sobserved · reduction
462.4 s to 286 s, cmux-tui/tests/link_push_bench.rs with CMUX_BENCH_FILES=3000 CMUX_BENCH_BLOB_MB=160 CMUX_BENCH_RATE_MBPS=8 CMUX_BENCH_LATENCY_MS=30, one fleet Linux run each side. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
manaflow-ai/cmux · pull-request · merged
Cloud copy: compressed fs.write bytes (fs-write-deflate-v1) and fewer round trips per file
4 November 2026
Cloud copy compresses fs.write bytes through a new capability; bytes up on the wire for a 365 MB push fall from 490.7 MB to 461.0 MB.
performancenetwork
29.7 MBobserved · reduction
490.7 MB to 461 MB, link_push_bench, real headless daemon through a unix-socket proxy; before on fleet Linux job b081eb17, after in the linked run. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
5.4 sobserved · reduction
494.8 s to 489.4 s, link_push_bench, same config. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
manaflow-ai/cmux · pull-request · merged
perf(diff): back off freshness checks in unfocused windows
3 November 2026
Unfocused diff windows check repository freshness every 30 s instead of every 4 s: 14 idle wakeups per minute became 2, and git child CPU fell from 41.847 ms to 6.948 ms per minute.
performance
12 wakeups/60 sobserved · reduction
14 wakeups/60 s to 2 wakeups/60 s (7.0x), hook/git benchmark: real hook in a visible unfocused jsdom page hashing a real git diff in a temp repo, one 60 s sample per arm on the same worker. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
34.9 msobserved · reduction
41.847 ms to 6.948 ms (6.0x), same hook/git benchmark, one 60 s sample per arm. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
28.2 msobserved · reduction
166.332 ms to 138.133 ms, same hook/git benchmark, one 60 s sample per arm; hook/git CPU, not whole-app CPU. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
manaflow-ai/cmux · pull-request · merged
fix(rail): paint initial history ticks at final geometry
3 November 2026
Initial history ticks in the chat rail paint at final geometry; the transcript settles 392 ms sooner in the ui-stability harness.
performanceui
392 msobserved · reduction
919.7 ms to 527.9 ms, ui-stability harness, tracing off, 8 CPUs both runs; before run 41590147912 at d119e145, after run 41593763246. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
211 msobserved · reduction
356.6 ms to 145.6 ms (2.4x), same two runs (ui.chat_rail.settle_after_paint. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
manaflow-ai/cmux · pull-request · merged
Prompt rail: full length on the first frame from the prompt count, no shift as history loads
3 November 2026
The prompt rail now draws at full length and centred on the first frame from the chat's prompt count, so it no longer grows or shifts as history loads: a 9,000 px first-paint length gap went to 0 and the rail's first paint came 221 ms sooner.
layout stabilityperformanceagent chat
9,000 pxobserved · reduction
9,000 px to 0 px, webviews/bench/thread-rail-jump.bench.ts cold-open scenario (thread_rail.first_paint.length_gap_px.paged_1000); before = bench commit alone (run 41560761136), after = PR head. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
221 msobserved · reduction
598 ms to 377 ms, webviews/bench/thread-rail-jump.bench.ts cold-open scenario; before = bench commit alone (run 41560761136), after = PR head. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
389 msobserved · reduction
1,346 ms to 957 ms, ui-stability bench, chat_rail stage, WebKit; before = base run 41569604459, after = PR head. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
manaflow-ai/cmux · pull-request · merged
ci(web): the webview shard split counts the pools the runner really has (shards 40 -> ~13 min)
3 November 2026
The webview CI shard split now counts the pools the runner really has; shard wall time p50 fell from 26.0 to 19.9 minutes and the slowest shard from 40.3 to 24.4 minutes.
ciperformance
6.1 minobserved · reduction
26 min to 19.9 min, web CI webview shards; before: 64 shards on base push runs 41579957080 to 41581500665; after: this PR's run. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
15.9 minobserved · reduction
40.3 min to 24.4 min, same runs (before had 3 of 64 shards cancelled at 40 min; after none. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
33 min/runobserved · reduction
189 min/run to 156 min/run, same runs; runner count unchanged (8. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
manaflow-ai/cmux · pull-request · merged
acpmux: cache serialized closed summaries
2 November 2026
Closed-session summary rows are cached, so full list builds on a 7,828-record store dropped from 227 ms to 150 ms of CPU.
performance
77 msobserved · reduction
227.378 ms to 150.376 ms, measure_7828_full_idle_closed_summary_cache, same 7,828-record harness (7,295 closed. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
57.8 msobserved · reduction
207.694 ms to 149.91 ms, measure_7828_full_idle_closed_summary_cache, same 7,828-record harness (7,295 closed. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
54.5 msobserved · reduction
235.739 ms to 181.206 ms, measure_7828_full_idle_closed_summary_cache, same 7,828-record harness (7,295 closed. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
manaflow-ai/cmux · pull-request · merged
carry of #26809: cmux-next swift test: main-thread-heavy suites in their own processes, the broad pass sharded, SIGPIPE caught as in the app
31 October 2026
cmux-next swift test now runs main-thread-heavy suites in their own processes; Mac minutes on the job fell from 9,283 to 6,450 a day in the next measured day (the job was still mostly red on base failures).
ciperformance
2,830 minutes/dayobserved · reduction
9,283 minutes/day to 6,450 minutes/day, sum of job seconds from ci-dash daily jobs.csv dumps, 24 h to 13:50Z 2026-10-31 vs 2026-11-03 00:00-24:00Z. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
manaflow-ai/cmux · pull-request · merged
fix(agent-pane): the summary card holds still while the chat scrolls
31 October 2026
The Agent pane's summary card now takes new rows once, 250 ms after a scroll ends, instead of re-rendering while history pages in; DOM changes in the card during a 100-frame page-in went from 15 to 0.
performanceui-smoothness
15 changesobserved · reduction
15 changes to 0 changes, Chromium browser test of the summary card, before 91684367 vs after 5adcbd7. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
manaflow-ai/cmux · pull-request · merged
cmux NEXT: a chat opens on its attach, not on acpmux's paced session list (30 s → <1 s on a busy Mac)
31 October 2026
A chat opens on its own attach reply instead of waiting for the paced session list; with the list held 3 s the open went from 3,004 ms to 1 ms.
performance
3,000 msobserved · reduction
3,004 ms to 1 ms (3004x), chatOpenPacedList.test.ts 'with a list that takes 3 s', same test before (red commit) and after; after-run shown. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
manaflow-ai/cmux · pull-request · merged
perf(agent-chat): sweeping the pointer across the session rail paints within each frame
31 October 2026
Sweeping the pointer across the session rail now paints within each frame: move-to-card p50 drops from 20.5 ms to 7.9 ms with 3,000 prompts.
performanceui
12.6 msobserved · reduction
20.5 ms to 7.9 ms (2.6x), webviews/test/latency chat.rail.hover.sweep.3000, 535 moves, same Linux Chromium job, before = head with webviews/src reverted. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
15.5 msobserved · reduction
23.4 ms to 7.9 ms (3.0x), webviews/test/latency chat.rail.hover.sweep.100, same job. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
24.4 msobserved · reduction
28.3 ms to 3.9 ms (7.3x), same latency job, same cases. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
manaflow-ai/cmux · pull-request · merged
acpmux: restore older Claude chat history after restart
31 October 2026
After a restart, an adopted Claude chat no longer waits on the full session log before showing its newest answer; the newest answer reaches the page in 256.5 ms instead of 1,806.9 ms on a 700-turn chat.
performance
1,550 msobserved · reduction
1806.9 ms to 256.5 ms (7.0x), restore fixture, synthetic Linux Playwright harness, same build, fresh browser after fixture daemon restart, one sample per mode (waitLogs omitted vs waitLogs:false. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
manaflow-ai/cmux · pull-request · merged
acpmux: an adopted Claude chat reads its transcript from the end
30 October 2026
Adopting a Claude chat reads a page from the end of its transcript instead of the newest 64 MiB: opening a 422 MB transcript went from 51 ms to 9 ms.
performance
42 msobserved · reduction
51 ms to 9 ms (5.7x), hub::adoption::page_tests::bench_adopt_open_of_a_420_mb_transcript, --release --ignored, 32-vCPU Linux runner class. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
3,450 recordsobserved · reduction
3,915 records to 465 records (8.4x), same bench, same runs (before run 40979774165. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
manaflow-ai/cmux · pull-request · merged
fix(ios): detect dead links sooner and reconnect immediately on foreground
29 October 2026
The NEXT iPhone app now notices a silently dropped link in about 5 s instead of about 23 s, and redials at once on foreground.
performancereliability
18,400 msobserved · reduction
23,399 ms to 4,981 ms (4.7x), LinkRecoveryTests silentDropDetectionBenchmark (silent_drop_ms), 3 runs, before = head with only LinkController.swift restored from base. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
manaflow-ai/cmux · pull-request · merged
feat(composer): add shared searchable plus palette surface
29 October 2026
The composer's searchable plus palette no longer shifts its search field while filtering; keyboard-filter layout shift in the paired gallery capture went from 0.166 to 0 in the dark theme.
layout stabilitycomposer
0.2 CLSobserved · reduction
0.166181 CLS to 0 CLS, paired Chromium gallery run (scripts/gallery-matrix/runner.ts), same runner and command on base commit and fixed commit. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
0.3 CLSobserved · reduction
0.250289 CLS to 0 CLS, paired Chromium gallery run (scripts/gallery-matrix/runner.ts), same runner and command on base commit and fixed commit. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
0.1 CLSobserved · reduction
0.130233 CLS to 0.014148 CLS (9.2x), same gallery draft geometry checks and runner on base and head. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
manaflow-ai/cmux · pull-request · merged
ci(webviews): split the test shards by recorded duration, not index mod 4
29 October 2026
Webview test shards are split by recorded file duration instead of index mod 4; the slowest shard job's median fell from 19.7 to 17.0 minutes.
ciperformance
2.7 minutesmeasured · reduction
19.7 minutes to 17 minutes, react-apps-check shard jobs, 32 vCPU class, median over 8 push runs before (ending run 40815704587) and 14 after (runs 40844104395..40846198563. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
0.9 ratiomeasured · reduction
2.24 ratio to 1.31 ratio, same runs as above. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
manaflow-ai/cmux · pull-request · merged
perf(acpmux): stream session summaries into list snapshots
29 October 2026
Full session lists now stream one summary at a time into serialized rows instead of retaining every expanded JSON summary; at 1,000 retained sessions the daemon's RSS after lists fell from 382.361 to 318.771 MiB and its CPU for three list requests from 685 to 540 ms.
performancememory
63.6 MiBobserved · reduction
382.361 MiB to 318.771 MiB, daemon_memory, same worker, before vs after. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
145 msobserved · reduction
685 ms to 540 ms, daemon_memory, same worker, before vs after. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
33.2 MiBobserved · reduction
180.148 MiB to 146.908 MiB, daemon_memory, same worker, before vs after. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
manaflow-ai/cmux · pull-request · merged
New Tab: keep the input steady when entering a shell command
28 October 2026
Typing a shell command in New Tab no longer moves the input: layout shift while typing `!pwd` went from 0.00113 to 0 and the over-33-ms frame from 1 to 0.
performanceui
0 CLSobserved · reduction
0.001132851851851852 CLS to 0 CLS, onboarding recovery play adapter and fixture from b7fb33de, hosted Chromium, one run per side. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
1 framesobserved · reduction
1 frames to 0 frames, onboarding recovery play adapter and fixture from b7fb33de, hosted Chromium, one run per side. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
manaflow-ai/cmux · pull-request · merged
acpmux: a wait reads only the chats it waits on
26 October 2026
An acpmux wait client now reads only the chats it waits on, so the daemon no longer summarizes every chat on every record; with 13 waits open the daemon's CPU per record fell from 15.5 ms to 0.9 ms.
performance
14.6 msobserved · reduction
15.5 ms to 0.9 ms (17x), acpmux wait bench, 13 concurrent waits; base c7c6530b9c5 plus the bench vs head c1e674c1d9b (3 head runs. Recorded from the PR and its cited run or comment (backfill) by impact/autorecord.mjs.
manaflow-ai/cmux · pull-request · merged
cmux NEXT: hide the app executable's exports, keep names in an in-app symbol map (-11 MiB, cx-b6r7)
15 October 2026
Removed the cmux NEXT Release executable’s exported symbol tables and replaced raw-address dependence with a UUID-bound compressed in-app symbol map.
packagingartifact-sizedebuggingreliability
8.6 MiB/appmeasured · reduction
Names fell 11.46 to 0.27 MiB while a 2.6 MiB map was added. Crash/hang symbolication remained tested through the map; no stable download reduction is claimed.
manaflow-ai/cmux · pull-request · merged
fix: CmuxNextApp size cap: move SidebarSameTurn into CmuxNextSidebar
15 October 2026
Moved SidebarSameTurn into the sidebar package to restore CmuxNextApp size-cap headroom after a base regression.
architecturecimaintainability
5 lines under capmeasured · reliability
SidebarSameTurn moved 42 lines; the target went from 37 lines over to 5 lines under the cap, a structural 42-line swing with no behavior change. This is source headroom, not binary size or runtime performance.
manaflow-ai/cmux · pull-request · merged
Restore a reading position older than the first transcript page (cmux-next)
14 October 2026
When a saved reading row lies outside the initial page, load older pages before displaying the transcript and preserve the saved anchor during loading. Fall back after three seconds or exhausted history.
agent-experiencerestoration
Investigation record; no quantitative impact claim has been promoted yet.
manaflow-ai/cmux · pull-request · merged
Judge motion regressions from recorded interaction frames (cmux-next)
14 October 2026
Add real-app frame tracing and a golden-interactions judge covering tab opening, sidebar motion, transcript follow, window resize and Reduce Motion, with invalid measurements reported explicitly.
performanceregression-detection
Investigation record; no quantitative impact claim has been promoted yet.
manaflow-ai/cmux · pull-request · merged
cx-98s: keep New Tab Cmd-T under the p95 budget
14 October 2026
Added a real debug-socket New Tab Cmd-T p95 gate and removed duplicate tab-strip reconciliation when adopting an existing spare.
performancecitest-infrastructure
24.9 milliseconds/openmeasured · baseline
24.9 ms p95 against a 16 ms budget. No post-fix p95 or app-wide launch improvement is claimed.
manaflow-ai/cmux · pull-request · merged
cmux-next: a local merge commit reuses the fetched same-tree acpmux
14 October 2026
Let local reload reuse a checksum-verified same-tree acpmux binary already fetched for the checkout, while refusing reuse when an architecture is missing.
developer-loopcachereliability
Investigation record; no quantitative impact claim has been promoted yet.
manaflow-ai/cmux · pull-request · merged
Long chat history pages in without repeatedly folding the entire loaded log
14 October 2026
Made older agent-chat turns reachable beyond the newest 400 records, held the reader's position while prepending pages, and folded each page independently instead of rebuilding the loaded history.
agent-chatperformancehistory
105 milliseconds/pagemeasured · baseline
After the repair an older page folds in 1–6 ms. The range isn't converted to an average or fixed reduction. First paint and opening heap were unchanged. A 500-turn Chromium regression test proves older history becomes reachable with stable scroll anchoring, decreasing cursors, and no duplicated turns. Native app behavior and production latency weren't measured by this experiment. PR 20699 later repairs reopening at a saved position older than the first loaded page.
manaflow-ai/cmux · pull-request · merged
ci: fast tier can take its own runner label; release-path dogfood builds leave the shared minis (no bead)
14 October 2026
Gave the cmux NEXT fast tier its own runner label and moved cmux-tui release-path dogfood builds off the shared side lane when policy variables are enabled.
cicapacityrunner-routing
Investigation record; no quantitative impact claim has been promoted yet.
manaflow-ai/cmux · pull-request · merged
ci: build cmux-tui dogfood artifacts on the PR pool, not the side lane
14 October 2026
Moved cmux-tui dogfood artifact builds from a saturated side lane to the PR pool and removed the rescue rerun dependency.
cicapacityrunner-routing
92 minutes/runmeasured · baseline
24/25 builds never started; the single completed build waited 92 minutes for a 25-minute build. This is a queue baseline, not an after-routing reduction or fleet-wide capacity saving.
manaflow-ai/cmux · pull-request · merged
cmux NEXT: strip the embedded CEF libraries (-7 MiB, cx-b6r7)
14 October 2026
Stripped local symbols and debug stabs from embedded CEF libraries before signing while preserving Vulkan and CEF exports.
packagingartifact-sizerelease
7 MiB/filemeasured · reduction
22.27 MiB to 15.30 MiB; 0 local symbols remained and Vulkan entry points were retained. Other library changes and the 618.1 MiB app baseline are context, not additive savings. Feature-branch/nightly-next evidence; no whole-app or app download reduction claim.
manaflow-ai/cmux · pull-request · merged
ci: bound the cmux-next tour's DerivedData on each Mac
14 October 2026
Added LRU pruning for cmux NEXT media-tour DerivedData, preserving the current run, open or recently touched builds, and at most one other pair.
cistoragebuild-cache
70 GiB/Macobserved · baseline
One observed Mac held eight pairs, each about 9 GiB; the 36 GiB free state caused a reload floor failure. The proposed cap is about 36 GiB per Mac, but no live after-prune capacity or avoided failure is measured.
Converted cmux NEXT compiled String Catalog XML to binary property lists in both nightly-next and Mac release stripping paths, restoring the project setting and adding encoding guards.
packagingartifact-sizelocalization
10.3 MiB/appmeasured · reduction
19.55 MiB to 9.23 MiB with 0 table-content mismatches. The result is a feature-branch/nightly-next resource measurement; no whole-app installed-size delta, stable artifact, or app download reduction is claimed.
manaflow-ai/cmux · pull-request · merged
Restore journey: a quit and update relaunch proof harness for cmux NEXT
13 October 2026
Built a quit and update-relaunch restore journey harness that snapshots windows, splits, browser pages, terminals, and agent chats before and after relaunch.
reliabilitydesktoprelease-validation
275 rows/runobserved · reliability
One run observed 275/280 rows passing and restore settled about 2 s after quit. Window recency and agent-chat/layout gaps remained; this is a DEV harness result, not a stable release acceptance rate.
manaflow-ai/cmux · pull-request · merged
ci(cx-29ch2): cmux NEXT PR fast tier with flake quarantine
13 October 2026
Added a deterministic cmux NEXT PR fast tier with explicit flake classification, quarantine ownership, and repeat-20 admission before a seed gates.
cireliabilitytest-infrastructure
Investigation record; no quantitative impact claim has been promoted yet.
manaflow-ai/cmux · pull-request · merged
ci: a fast-tier filter that matches no test fails (cx-29ch2)
13 October 2026
Made fast-tier Swift and Cargo entries fail when their filter matches no tests, catching a hollow motion-clock entry immediately.
cireliabilitytest-infrastructure
Investigation record; no quantitative impact claim has been promoted yet.
manaflow-ai/cmux · pull-request · merged
Fix base size cap: move the CLI installer out of CmuxNextApp
13 October 2026
Moved the Foundation-only CLI installer out of CmuxNextApp to clear a failing source-size cap while keeping the cap unchanged.
architecturecimaintainability
119 lines under capmeasured · reliability
CLIPathInstaller moved 229 lines into a Foundation-only target; the resulting app target was 119 lines under the cap. This is structural source headroom, not a binary-size or runtime reduction.
manaflow-ai/cmux · pull-request · merged
ci: pane zoom motion in the cmux NEXT fast tier (cx-v0v8k)
13 October 2026
Registered eight deterministic pane-zoom motion cases in the cmux NEXT fast tier using a fixed 120 Hz simulation step.
ciperformancetest-infrastructure
8 cases/runobserved · throughput
About 0.1 s test-body time; no end-to-end CI duration or animation improvement is claimed. The separate 60 Hz slot report remains report-only.
manaflow-ai/cmux · pull-request · merged
ci: core model matrix in the cmux NEXT fast tier (cx-gkyi1)
13 October 2026
Registered the cmux-tui-core model matrix in the cmux NEXT fast tier and fixed its ghostty-next and Zig setup path.
citest-infrastructurecompiler-toolchain
59 cases/runobserved · throughput
The ~1 s figure is the recorded test body, not an end-to-end CI lane duration. Setup for ghostty-next and Zig runs outside the per-entry cap; no aggregate CI saving is claimed.
manaflow-ai/cmux · pull-request · merged
cmux-next: download SSH payloads on demand, serve Macs from the client (cx-b6r7)
12 October 2026
Ported the Linux and macOS SSH payload on-demand/client-serving model to feat-cmux-next, removing the four-platform payload bundle when the pinned client moves.
packagingartifact-sizessharchitecture
328.8 MB/appmeasured · baseline
Expected post-pin removal is about 329 MB installed and roughly 100 MB DMG, but that is a projection. This ports main PRs 19305 and 19361; do not sum the projected saving with those source records.
manaflow-ai/cmux · pull-request · merged
Lazy update pages and prefetched snapshots shorten the live-sidebar launch path
12 October 2026
Deferred sidebar update web pages until they're visible and prefetched the first daemon snapshot during launch, keeping buffered events ordered against the snapshot barrier.
desktopperformancestartup
79 milliseconds/launchmeasured · reduction
557 to 478 ms against #19579. Against the older pre-regression base, 487 to 478 ms is a 9 ms difference. This largely recovers a recent regression; it isn't a 79 ms gain against the earlier baseline. Small Debug sample; no production launch distribution or release-build speedup is established. Other first-frame and sidebar milestones overlap and aren't separately added.
manaflow-ai/cmux · pull-request · merged
build: strip every bundled helper in the cmux-next release (-3.4 MB)
12 October 2026
Extended cmux NEXT release stripping to bundled helpers and Chromium helper apps while preserving symbolication and signing order.
packagingartifact-sizereliability
3.4 MB/appmeasured · reduction
981.57 to 978.19 MB after ad-hoc deep re-sign. No signed/notarized after artifact or download reduction is claimed.
manaflow-ai/cmux · pull-request · merged
build: fat LTO for cmux-tui release again (-11.1 MB unstripped)
12 October 2026
Re-landed fat LTO with one codegen unit for the main cmux-tui release profile after three release-path publish proofs.
packagingartifact-sizecompiler
11.1 MB/clientmeasured · reduction
45.4 to 34.3 MB before stripping. This overlaps the later feat-client LTO record only as the same profile family; do not sum into an app total.
manaflow-ai/cmux · pull-request · merged
build: fat LTO for the cmux-next cmux-tui release
12 October 2026
Applied fat LTO to the feat-cmux-next cmux-tui client and measured the bundled client and OptChat Chief reductions on a fleet Release build.
packagingartifact-sizecompiler
19.6 MB/clientmeasured · reduction
The first published nightly-next arm64 build measured the client 78.9 to 59.3 MB. The same comparison measured OptChat Chief 10.8 to 8.7 MB, installed app 660.5 to 638.2 MB, and DMG 191.2 to 187.7 MB; those app/DMG totals are contextual and are not added to component claims. This overlaps main PR 19666 as the same LTO family but is a different branch/client measurement.
manaflow-ai/cmux · pull-request · merged
Share resource bundles between the app and bundled CLI
11 October 2026
Replace the CLI's duplicate SwiftPM resource bundles with relative links to the app's copies, including replacement of older copies and removal of stale links.
app-sizepackaging
3,383,194 bytes/appobserved · reduction
3,383,194 duplicate bytes before; no duplicated files beneath the 13 relative links after. Installed layout, not compressed download bytes. Release runtime and re-sign probe passed; Developer ID notarization was pending.
manaflow-ai/cmux · pull-request · merged
release: LZMA stable DMG and stripped SSH payloads (cx-b6r7)
11 October 2026
Converted stable DMGs to ULMO/LZMA before signing and stripped the two macOS cmux-tui SSH payloads while preserving pinned checksums.
releasepackagingartifact-sizessh
76 MB/DMGmeasured · reduction
312.7 MB to 236.7 MB in the re-encode experiment. The later post-merge dry run was 238.9 MB; neither establishes the later discussion target of 79/93 MB architecture-specific DMGs.
6.2 MiB/payloadmeasured · reduction
42.7 to 36.5 MiB; paired x86_64 reduction is a separate architecture. No app-wide download reduction is assigned to this claim.
6.3 MiB/payloadmeasured · reduction
46.0 to 39.7 MiB; the nightly-next counterpart is PR 19213 and is not additive.
manaflow-ai/cmux · pull-request · merged
release: strip the macOS cmux-tui SSH payloads (cx-b6r7)
11 October 2026
Applied the macOS SSH payload strip to nightly-next and preserved manifest checksums, as the feat-branch counterpart to main PR 19211.
releasepackagingartifact-sizessh
14.9 MiB/payloadmeasured · reduction
86.9 to 72.0 MiB. The x86_64 payload moved 94.2 to 79.1 MiB; the installed and DMG deltas include only this nightly path and are not summed with main PR 19211.
manaflow-ai/cmux · pull-request · merged
ci: let stable reuse the DMG notarization scripts (cx-b6r7)
11 October 2026
Enabled stable channel entitlements and recovery in the existing nightly DMG notarization scripts so thin stable variants could use the same signing path.
releasenotarizationpackaging
Investigation record; no quantitative impact claim has been promoted yet.
manaflow-ai/cmux · pull-request · merged
Ship stable as thin arm64 and x86_64 builds with a one-hop update path
11 October 2026
Published signed universal, arm64, and x86_64 stable DMGs with architecture-specific appcasts and one-hop updater selection.
releasepackagingartifact-sizearchitecture
461.3 MiB/appmeasured · baseline
The same dry run measured universal 741.8 MiB and x86_64 481.9 MiB. These are intermediate campaign receipts, not the later discussion target.
145 MB/DMGmeasured · baseline
Universal was 238.9 MB and x86_64 was 160.8 MB. The discussion target 79 MB is future-facing in the cited comment.
481.9 MiB/appmeasured · baseline
Intel selection is test-covered but was not live-run on native Intel in the retained receipt.
manaflow-ai/cmux · pull-request · merged
Download Linux SSH payloads on demand instead of bundling them (cx-b6r7)
11 October 2026
Moved Linux cmux-tui SSH payloads out of the app bundle into authenticated, resumable, SHA-256-checked on-demand downloads with a per-build cache.
packagingartifact-sizesshreliability
77 MiB/appobserved · baseline
About 77 MiB is a before baseline. Do not claim a shipped app-size reduction until a release artifact proves the payloads are absent; download/cache behavior is the durable capability.
manaflow-ai/cmux · pull-request · merged
build: ship compiled strings as binary property lists (-8.8 MiB)
11 October 2026
Compiled the app target and tunnel-extension String Catalogs as binary property lists, shrinking the Apple-silicon app’s localized-string payload while preserving all keys.
packagingartifact-sizelocalization
8.8 MiB/appmeasured · reduction
19.98 MiB UTF-16 to 11.20 MiB binary; all 56 measured outputs decode identically. Package resource bundles remain about 2.61 MiB, and no app download reduction is claimed. Do not sum with PR 20743, which targets Swift-package catalogs on feat-cmux-next.
manaflow-ai/cmux · pull-request · merged
Stop linking swift-syntax into the bundled CLI
11 October 2026
Removed unused Swift package products that pulled swift-syntax into the bundled CLI and added a dependency-graph guard.
packagingartifact-sizeclireliability
5.1 MiB/bin/cmuxobserved · baseline
At least 5.05 MiB was attributed to modules removed by the dependency change; exact post-merge binary delta was left for a later nightly comparison. This is separate from PR 19379 resource-bundle links.
manaflow-ai/cmux · pull-request · merged
Stop bundling macOS SSH payloads; serve Mac hosts from the client's own build
11 October 2026
Stopped bundling the two macOS cmux-tui SSH payloads and served a client’s own signed build or a pinned cross-architecture download instead.
packagingartifact-sizessharchitecture
76.5 MiB/appmeasured · baseline
The payloads were duplicate slices of bin/cmux-tui after signature removal. This baseline overlaps PR 19211/19213 stripping and PR 19601’s feat port; do not sum those layers.
manaflow-ai/cmux · pull-request · merged
Ship one Computer Use engine instead of two
11 October 2026
Removed the duplicate Computer Use engine from the app's bin resources and shared the installed helper's client policy between wrappers, preserving helper signing and permission identity.
packagingcomputer-useartifact-size
11.5 MiB/appobserved · baseline
The PR reports the duplicate copy's before-removal size. No native after-build or installed-size delta is established; no x86_64/universal reduction, download reduction, fleet-wide total, or end-to-end release verification is claimed. Shared client trust policy and the helper's signing/notarization identity remain part of the implementation boundary.
manaflow-ai/cmux · pull-request · merged
ci: shard the CLI regressions into three root-label jobs (no bead)
11 October 2026
Sharded 94 CLI and shell regressions into three deterministic root-runner jobs in main CI, keeping GUI runners for app-host work.
cideveloper-looptest-infrastructure
7.7 minutes/runmeasured · baseline
Three shards were designed around recorded test times at about 2.5 min each, but no real macOS after-run was reported. The 7.7 min is a baseline, not an avoided duration.
manaflow-ai/cmux · pull-request · merged
build: fully strip cmux's own release executables (-13.7 MB arm64)
11 October 2026
Fully stripped the main app and bundled release executables while preserving imports, UUIDs, crash symbolication, and required helper behavior.
packagingartifact-sizedebuggingreliability
13.7 MB/appmeasured · reduction
Component deltas were 10.45, 2.78, 0.50 and 0 MB respectively. Universal builds save about twice the arm64 executable component; no whole-app download reduction is claimed.
manaflow-ai/cmux · discussion · published
Is this now considered normal download/app size for a native mac (terminal) app?
6 October 2026
Track the cmux app-size campaign from the 775 MB installed and 312 MB DMG discussion baseline through thin architecture-specific release checkpoints and the component-level optimization records.
app-sizepackagingreleasearchitecture
775 MB/appobserved · baseline
The discussion reports 775 MB installed; it is a campaign baseline, not a current universal-release receipt.
312 MB/DMGobserved · baseline
The discussion reports a 312 MB DMG baseline; later PRs measure ULMO and thin variants separately.
248 MB/appprojected · baseline
Leo states 248 MB as a next-release target, not a receipt for the current installed app.
266 MB/appprojected · baseline
Leo states 266 MB as a next-release target, not a live Intel release receipt.
79 MB/DMGprojected · baseline
Leo states 79 MB as a next-release target; later #19255 ULMO output is a separate measured checkpoint.
93 MB/DMGprojected · baseline
Leo states 93 MB as a next-release target; later #19255 ULMO output is a separate measured checkpoint.
741.8 MiB/appobserved · baseline
Measured post-merge release checkpoint; do not treat as the 775 MB discussion baseline or sum with component claims.
461.3 MiB/appobserved · baseline
Measured post-merge release checkpoint; one Apple-silicon update reached this size.
481.9 MiB/appobserved · baseline
Measured artifact checkpoint; native Intel update was not run live.
238.9 MB/DMGobserved · baseline
Measured release artifact.
145 MB/DMGobserved · baseline
Measured release artifact.
160.8 MB/DMGobserved · baseline
Measured release artifact; no native Intel update was run live.
manaflow-ai/cmux · pull-request · merged
Require fresh evidence for a red-CI merge override
4 October 2026
Add a trusted-main, API-only evaluator that binds merge overrides to the current PR head, checks collaborator authority and named failures, and invalidates stale approval after pushes.
cireliability
Investigation record; no quantitative impact claim has been promoted yet.
manaflow-ai/cmux · pull-request · merged
ci(cmux-tui): size Linux runners and share Rust cache
2 October 2026
Move Rust-heavy cmux-tui Linux lanes to 32-vCPU runners and share the Rust compile cache across lint and test jobs.
ciperformancecapacitybuild-cachefeat-cmux-next
285 seconds/runderived · reduction
About 10 minutes to 5m15s cold cache implies roughly 285 seconds; approximate and non-additive with other lane or cache claims. Warm-cache rerun was pending.
29 seconds/runderived · reduction
About 3 minutes to 2m31s cold cache implies roughly 29 seconds; approximate and non-additive with the test claim.
369 seconds/runderived · reduction
About 10 minutes to 3m51s implies roughly 369 seconds; approximate, with no warm-cache receipt.
manaflow-ai/cmux · pull-request · merged
cmux-next: trim unused CEF locales at embed time
2 October 2026
Corrected CEF locale pruning after the first allowlist dropped regional catalogs and changed Spanish and Portuguese users to English.
packagingartifact-sizelocalizationreliability
Investigation record; no quantitative impact claim has been promoted yet.
manaflow-ai/cmux · pull-request · merged
Reuse transcript geometry during scroll renders (cmux-next)
1 October 2026
Memoize transcript layout by rows, width, measured row heights and renderer registry, avoiding a full conversation layout on scroll-only renders while preserving invalidation when row renderers change.
agent-experienceperformance
Investigation record; no quantitative impact claim has been promoted yet.
manaflow-ai/cmux · pull-request · merged
Open native agent tabs backed by the React acpmux pane (cmux-next)
1 October 2026
New Agent Chat opens a frontend-local agent tab with a React pane and a versioned Swift host handshake to the authenticated acpmux transport. The PR joins menu, palette, tab-menu and CLI entrypoints.
agent-experiencearchitecture
Investigation record; no quantitative impact claim has been promoted yet.
manaflow-ai/cmux · pull-request · merged
ci: nightly 120 Hz fling bench for the cmux-next agent pane
1 October 2026
Added a main-branch nightly 120 Hz frame-pacing bench for cmux NEXT, with virtual display setup, capped/full-rate flings, frame summaries, and warning thresholds.
ciperformancetest-infrastructure
8 milliseconds/flingobserved · baseline
Full-rate p50 8 ms with 2/722 frames dropped; capped p50 17 ms with 0/363 dropped. This is a manual smoke, not an Actions trend or before/after gain; the workflow had not run in Actions at merge.
manaflow-ai/cmux · pull-request · merged
ci: bound the SwiftPM scratch holder and cache scratch sizes
28 September 2026
Bound the SwiftPM scratch holder and cache scratch-directory sizes so cleanup avoids indefinite locks and repeated full-tree walks.
cistoragereliabilitybuild-cache
Investigation record; no quantitative impact claim has been promoted yet.
manaflow-ai/cmux · pull-request · merged
Attribute a red guard to the change that broke it and say how to fix it
26 September 2026
Fast guards no longer block merges, so a red guard on main needs an owner fast. ci-guard-attribution.yml runs after every CI fast guards or repository-variables run: it walks back to the last green run, re-runs only the failing step on each first-parent commit in between, names the culprit PR with the exact assertion, the likely fix and a one-line repro, keeps one tracking issue per red workflow, and offers mechanical fix patches.
ciobservabilitydeveloper-loop
Investigation record; no quantitative impact claim has been promoted yet.
manaflow-ai/cmux · pull-request · merged
PR picker fills idle and briefly busy owned minis before Blacksmith
26 September 2026
The PR runner picker capped the owned pool's allowance at Blacksmith's expected wait from a snapshot up to 45 min old, charged owned labels for in-flight peaks of jobs that did not exist yet, and fell back to the default Blacksmith route when the snapshot download failed. It now reads live runners, takes a run onto the owned pool while its jobs start within the configured queue rounds, and treats Blacksmith as overflow. In the first, lightly loaded night hours after merge, PR CI's attempt-1 macOS 26 work moved from a swinging 39% to 85% (56% overall) to about 89% on the owned minis, and its queue wait fell. Blacksmith re-runs of refused jobs rose over the same hours, so this is not a fleet-wide Blacksmith saving.
cicapacityrunner-routing
32.7 percentage-pointsmeasured · shift
56.2% to 88.9% owned; Blacksmith macOS 26 job-minutes per run 6.5 to 1.3, and runs touching Blacksmith 38% to 3%. Caveats: (1) The before baseline is not stable: by half-hour of first job it read 45%, 39%, 85% and 59% owned, and the 01:30 slot reached 85% under the old picker with 42 runs. (2) Not load-matched: about 94 PR runs an hour before and about 35 after, and the owned fleet had more spare room after (about 14.5 idle runners of 37.9 online before, 18.0 of 39.2 after), which helps placement under either rule. (3) Attempt 1 only. Attempt-3 re-runs of PR CI (Blacksmith by rule) took 260 Blacksmith macOS minutes inside the before window and 540 inside the after window (wall-clock clipped, any run, not only these runs), and ci-dash showed Blacksmith running jobs doubling (6.4 to 13.0 on average). More owned placement can raise mini refusals and so attempt-3 re-runs; how much of that rise this change caused is not measured, and cmux#14766, which stops the rescue cancelling siblings, went live only at 04:02Z. So no fleet-wide Blacksmith saving is claimed. (4) The controller dropped about 2,860 deliveries between 09-25 21:30 and 09-26 03:40Z (hq#734); jobs whose completion never arrived are missing from both sides. The PR body's replay (111 to 35 Blacksmith jobs) is modeled and not claimed. A daytime, load-matched comparison is still open.
183 seconds/jobmeasured · reduction
p50 200 s to 17 s, p90 2,565 s to 340 s, mean 775 s to 154 s. The before p50 is bimodal: owned jobs had a median of 12 s and Blacksmith jobs 1,005 s (Blacksmith's own queue), so most of the p50 drop comes from the pool mix changing (42% to 8% of these jobs on Blacksmith); owned-only p50 went 12 s to 4 s and compile admissions 133 s to 33 s. Same load caveat as the owned-share claim, which matters more here because queue wait rises with load. Cancelled jobs are excluded (253 Blacksmith jobs before, 71 after); those likely waited longest, so the before wait is if anything understated. A per-job wait is not a per-run critical-path saving.
manaflow-ai/cmux · pull-request · merged
UI E2E runs adopt the app and UI test bundle PR CI compiled
26 September 2026
UI E2E dispatches from scripts/run-e2e.sh used to compile the whole app again even though the PR's own CI compile admission already builds the cmuxUITests bundle. The dispatcher now finds the in-repository PR CI run for the commit, keeps the head when the merge has the same product inputs, waits for an in-flight admission, and test-e2e.yml adopts that product, so the build job skips its compile step.
cibuild-performancee2e
409 seconds/runobserved · reduction
659 s to 250 s from run creation to test start; the build-job window alone went 566 s to 109 s (457 s), but time before the build job grew from 93 s to 141 s (a 119 s Blacksmith queue), so the run-level figure is claimed. This is the best case: the adopted run found a finished product. When the dispatch starts while admission is still compiling, the dispatcher now waits for it (up to 50 min), and the saving is the compile step minus that remaining wait, which can be negative: #14746's own head (this before run, created 22:32:38) had an admission that published at about 22:41, so waiting for it and then adopting (93 to 141 s before the build job plus about 109 s to tests) would have started its tests at about 22:44 to 22:45, roughly 0.5 to 1.5 min later than the 22:43:37 they did. Run creation to test start never includes the dispatcher's wait, because the dispatcher waits before it creates the run. One run each side, on different pools: the old run compiled on an owned mini, the new one adopted a Blacksmith-compiled product on Blacksmith, because products never cross toolchain families. The removed work is the 448 s compile step, so the pool difference matters less than it would for a compile comparison, but it is not like-for-like. Whole run (created to last update, not the PR table's 976 s job-span figure) went from 982 s to 341 s; about 193 s of the old figure is a late product upload after the tests that the adopted run skips, so the whole-run delta is not claimed separately. Only UI runs whose commit has an in-repository PR CI product on macOS 26 benefit. The PR merged at 04:33:43Z and had no adopted production runs yet at recording time, so this stays observed until a median over post-merge UI runs exists.
917 compile-minutes/12.3 hmeasured · baseline
Before-only figure from the PR body. About 75 compile-minutes an hour. Separately, of the 75 compiling runs that named a SHA, 32 runs already had a CI product for that head, 36 had a CI run that was cancelled or failed before it produced one (some of these were still compiling at dispatch, which the new wait covers), and 7 had no CI run. This PR targets the first group (where the product is on a pool the run can use) plus the timing misses its wait catches; how many of the 917 minutes it removes is not measured yet.
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.