Evidence ledger · updated 9 November 2026

Engineering impact

Measurements and consequences kept close to their receipts. Baselines, reductions, capacity shifts, and derived estimates stay distinct so a big number can still be audited later.

The raw pull-request snapshot is a retrieval aid. Curated records carry the claims; originating repositories remain authoritative.

Ledger counts

Merged CMUX PRs indexed

437

Curated records

131

Quantitative claims

192

Additive totals

0

Headline claims

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

ClaimValueConfidenceDirectionEvidence
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% loss13,600 msobservedreductionPR / issue
cmux-wg: send a tail-loss probe before the retransmission timeout (vendored smoltcp)remote stream input-to-photon p50 at 1% loss, 100 ms RTT432 msobservedreductionPR / issue
cmux-wg: opt-in ultra mode (FEC and duplication under WireGuard) and its loss benchinput-to-photon p99 at 100 ms RTT, 3% loss4,840 msobservedreductionPR / issue
cmux-host, cmux-remote: the relay Register reads a ticket kept ahead and registers at once after a resumeresume to registered, p50, Cloud relay Register2.9 smeasuredreductionPR / issue
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)18.4 pxobservedreductionPR / issue
cmux-wg: start the tunnel's TCP at RFC 6928's 10-segment window (vendored smoltcp)first 200 KB frame time through the WireGuard TCP tunnel, 50 ms link183 msobservedreductionPR / issue
Fork Conversation: quiet history copy, a pending line with Cancelfork time p50, chat of 73,119 events (100 turns)695 msobservedreductionPR / issue
cmux link sync: push through a per-user content-addressed blob storebytes sent from the Mac to sync a folder to a second machine89,400,000 BobservedreductionPR / issue
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/s176 sobservedreductionPR / issue
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 latency29.7 MBobservedreductionPR / issue
perf(diff): back off freshness checks in unfocused windowsidle wakeups per 60 s in an unfocused, visible diff window12 wakeups/60 sobservedreductionPR / issue
fix(rail): paint initial history ticks at final geometrytranscript settled time after open (ui.transcript.settled)392 msobservedreductionPR / issue
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 history9,000 pxobservedreductionPR / issue
ci(web): the webview shard split counts the pools the runner really has (shards 40 -> ~13 min)webview shard wall time, p506.1 minobservedreductionPR / issue
acpmux: cache serialized closed summarieswatch/list full build CPU, 7,828 records77 msobservedreductionPR / issue
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 day2,830 minutes/dayobservedreductionPR / issue
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)15 changesobservedreductionPR / issue
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 ms3,000 msobservedreductionPR / issue
perf(agent-chat): sweeping the pointer across the session rail paints within each framesession rail hover: pointer move to card painted, p50, 3,000 prompts12.6 msobservedreductionPR / issue
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)1,550 msobservedreductionPR / issue
acpmux: an adopted Claude chat reads its transcript from the endadopt open (replay plus tail page) of a 422 MB Claude transcript42 msobservedreductionPR / issue
fix(ios): detect dead links sooner and reconnect immediately on foregroundsilently dropped link detection time, median of 3 runs (macOS run)18,400 msobservedreductionPR / issue
feat(composer): add shared searchable plus palette surfacepalette keyboard-filter layout shift (CLS), dark theme, filtering by typing 'browser'0.2 CLSobservedreductionPR / issue
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 runs2.7 minutesmeasuredreductionPR / issue
perf(acpmux): stream session summaries into list snapshotsacpmux daemon RSS after list requests, 1,000 retained sessions63.6 MiBobservedreductionPR / issue
New Tab: keep the input steady when entering a shell commandlayout shift (CLS) while typing !pwd in New Tab, 900x6500 CLSobservedreductionPR / issue
acpmux: a wait reads only the chats it waits onacpmux daemon CPU per logged record with 13 waits open14.6 msobservedreductionPR / issue
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 reduction8.6 MiB/appmeasuredreductionPR / issue
cx-98s: keep New Tab Cmd-T under the p95 budgetNew Tab Cmd-T open p95 before duplicate-reconciliation fix24.9 milliseconds/openmeasuredbaselinePR / issue
ci: build cmux-tui dogfood artifacts on the PR pool, not the side lanecmux-tui dogfood build queue before rerouting92 minutes/runmeasuredbaselinePR / issue
cmux NEXT: strip the embedded CEF libraries (-7 MiB, cx-b6r7)embedded libvk_swiftshader.dylib size7 MiB/filemeasuredreductionPR / issue
cmux NEXT: ship compiled strings as binary property lists (-10 MiB installed, cx-b6r7)nightly-next compiled String Catalog storage10.3 MiB/appmeasuredreductionPR / issue
Restore journey: a quit and update relaunch proof harness for cmux NEXTrestore journey probe rows passing on run 7275 rows/runobservedreliabilityPR / issue
cmux-next: download SSH payloads on demand, serve Macs from the client (cx-b6r7)feat-cmux-next four-platform SSH payload bundle328.8 MB/appmeasuredbaselinePR / issue
build: strip every bundled helper in the cmux-next release (-3.4 MB)cmux NEXT helper strip on arm64 nightly copy3.4 MB/appmeasuredreductionPR / issue
build: fat LTO for the cmux-next cmux-tui releasefeat-cmux-next stripped cmux-tui arm64 client19.6 MB/clientmeasuredreductionPR / issue
Share resource bundles between the app and bundled CLIduplicate CLI resource bytes removed from the app layout3,383,194 bytes/appobservedreductionPR / issue
release: LZMA stable DMG and stripped SSH payloads (cx-b6r7)v0.65.0 stable DMG after ULMO/LZMA re-encode76 MB/DMGmeasuredreductionPR / issue
Ship stable as thin arm64 and x86_64 builds with a one-hop update pathsigned stable arm64 dry-run installed app461.3 MiB/appmeasuredbaselinePR / issue
Download Linux SSH payloads on demand instead of bundling them (cx-b6r7)Linux SSH payloads bundled in the app before on-demand migration77 MiB/appobservedbaselinePR / issue
build: ship compiled strings as binary property lists (-8.8 MiB)Apple-silicon app String Catalog storage8.8 MiB/appmeasuredreductionPR / issue
Stop bundling macOS SSH payloads; serve Mac hosts from the client's own buildmacOS SSH payloads bundled before client-serving migration76.5 MiB/appmeasuredbaselinePR / issue
ci: shard the CLI regressions into three root-label jobs (no bead)serial CLI and shell regression segment in PR CI7.7 minutes/runmeasuredbaselinePR / issue
build: fully strip cmux's own release executables (-13.7 MB arm64)eligible arm64 release executables stripped13.7 MB/appmeasuredreductionPR / issue
Is this now considered normal download/app size for a native mac (terminal) app?maintainer-comment Apple-silicon installed target248 MB/appprojectedbaselinePR / issue
ci(cmux-tui): size Linux runners and share Rust cachecmux-tui Linux test lane wall-time reduction285 seconds/runderivedreductionPR / issue
PR picker fills idle and briefly busy owned minis before Blacksmithshare of PR CI attempt-1 macOS 26 job-minutes on owned minis32.7 percentage-pointsmeasuredshiftPR / issue
UI E2E runs adopt the app and UI test bundle PR CI compiledUI E2E run creation to test start, one selector, product already published at dispatch409 seconds/runobservedreductionPR / issue
Start macOS compile admission beside the fast Linux jobsrun start to compile admission job created121 seconds/runmeasuredreductionPR / issue
ci: place each PR macOS job on a free owned mini, overflow the restshare of attempt-1 PR compile admissions placed on owned Mac minis49 percent of admissionsmeasuredshiftPR / issue
Stop portal lifecycle tests waiting 12 s each on login(1)TerminalWindowPortalLifecycleTests suite time per CI run166 seconds/runobservedreductionPR / issue
Stop the CLI no-socket regression waiting 90 s for an app it never startstestLaunchCapableCommandsReachTheirDispatchPathWithoutLiveImplicitSocket duration88 seconds/runmeasuredreductionPR / issue
Replay input times onto an owned Mac's kept DerivedDatashare of warm owned compile admissions that rebuilt the whole cmux module35 percentage pointsmeasuredreductionPR / issue
Build cmuxTests without the compilation cache so it rebuilds incrementallycmuxTests build time after a one-test-file body edit108 seconds/runobservedreductionPR / issue
Build the app without the compilation cache before Xcode 26.6cmux target SwiftCompile tasks for a body-only edit to one app file5,217 tasks/buildobservedreductionPR / issue
Run the CLI pipe regressions in compile admission, drop the separate lanemacOS runner time of the removed cli-pipe-regressions job3.3 runner-minutes/runmeasuredreductionPR / issue
Build cmuxTests without emitting its Swift modulecmuxTests build time after a one-test-file body edit27.4 seconds/runobservedreductionPR / issue
worktree reclaim: delete local branches whose work has landed (--branches)landed local branches deleted by the hourly reclaim on Air Blue255 branchesmeasuredreductionPR / issue
fleet-cas: tailnet addressing, launchd wrapper, upstream error loggingcacheable tasks hit through a deployed node reading another mini's store4,192 tasks/buildobservedreliabilityPR / issue
Prune expired R2 cache archives, never one a latest pointer namesR2 cache bytes deleted by the first prune117.2 GiBmeasuredreductionPR / issue
Seed DerivedData on the 12 vCPU macOS 26 poolseeder job queue wait1,326 seconds/runmeasuredreductionPR / issue
Build focused runs from compile admission's DerivedData seedE2E app build step on 6 vCPU macOS 26453 seconds/runmeasuredreductionPR / issue
Start macOS checkouts from main's git objectscompile admission checkout plus git seed restore36 seconds/runobservedreductionPR / issue
Restore SwiftPM's manifest cache for package resolvesadmission Resolve Swift packages step46 seconds/runmeasuredreductionPR / issue
Seed each Swift job width admission compiles atSwiftEmitModule tasks in the cmux scheme of a test-only seeded admission62 tasks/admissionobservedreductionPR / issue
Keep the runner account out of the SwiftPM manifest cache keyadmission Resolve Swift packages step on owned minis36 seconds/runobservedreductionPR / issue
Measure the fleet compilation cache mini to mini on the full cmux appfresh full cmux app build with a filled fleet cache624 seconds/eventobservedreductionPR / issue
Run the CmuxMobileShell package tests seriallypackage-test-wall-time-reduction-lower-bound655 seconds/runderivedreductionPR / issue
Move focused E2E dispatches to the low-queue macOS poolfocused-e2e-queue-p90-reduction82.3 minutesobservedreductionPR / issue
Read app-host artifacts over parallel range requestsartifact-transfer-job-minutes-per-full-suite60 job-minutes/runmeasuredbaselinePR / issue
Throttle push-triggered Nightly builds by published commit ageprojected-macos-runner-minutes-avoided-per-day450 runner-minutes/dayprojectedreductionPR / issue
Measure CI waste on a scheduleruns-beyond-first-on-unchanged-head9,763 runs/windowobservedbaselinePR / issue
Remove full-history checkout and unconditional Zig setup from iOS uploadsmacos-minutes-avoided-per-upload16 runner-minutes/eventderivedreductionPR / issue
Measure CMUX macOS CI capacity and replacement-cost exposurewarp-list-price-equivalent-floor-per-30-day-month52,437.4 USD/30-day-monthderivedbaselinePR / issue
Compile the E2E test product once and reuse it on rerunscompile-minutes-avoided-per-failed-dispatch-rerun15.3 minutes/eventderivedreductionPR / issue
Report recorded failures even when app-host results are incompleterecorded-failures-hidden-in-observed-run148 failures/runmeasuredreliabilityPR / issue
Reclaim eligible linked worktrees with --applyidle linked worktrees removed in the first apply runs248 worktreesmeasuredreductionPR / issue
Add glaeda-disk: where the disk went, and reclaim idle build outputidle build output deleted by glaeda-disk on Air Blue52.8 GiBmeasuredreductionPR / issue
Seed the test compilation cache from one clean buildcompilation-seed-download-reduction-per-pr1.5 GiB/runmeasuredreductionPR / issue
Debounce macOS admission on superseded pull-request pushesrunner-minutes-avoided-per-day590 runner-minutes/dayderivedreductionPR / issue
Route pull-request macOS jobs to sponsored capacityrunner-minutes-shifted-from-paid-capacity-per-day5,900 runner-minutes/daymeasuredshiftPR / issue
Trigger the persistent Mac router once per CI runrouter-runs-avoided-per-day5,611 runs/dayderivedreductionPR / issue
Seed compilation cache on the runner pull requests restore fromcold-compile-minutes-per-affected-pr19.9 minutes/runmeasuredbaselinePR / issue
Move Computer Use runtime out of the 3,700-file app modulewarm-incremental-build-time-reduction25.6 seconds/runmeasuredreductionPR / issue
Reuse one warm DerivedData across development tagssame-commit-tag-build-time-reduction917.3 seconds/runmeasuredreductionPR / issue
Stop pull requests from evicting shared cache seedsgithub-cache-occupancy-observed37.5 GBmeasuredbaselinePR / issue
Seed the Debug compilation cache from maincold-compile-seconds-per-admission-run800 seconds/runmeasuredbaselinePR / issue
Parallelize slow and history-dependent CI guardslinux-guard-critical-path-reduction261.2 seconds/runmeasuredreductionPR / issue

Curated records

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

  1. manaflow-ai/cmux · pull-request · merged

    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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  39. manaflow-ai/cmux · pull-request · merged

    cmux NEXT: ship compiled strings as binary property lists (-10 MiB installed, cx-b6r7)

    14 October 2026

    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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  66. 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.
  67. 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.
  68. 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.
  69. 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.

  70. 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.
  71. 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.
  72. 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.

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

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

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

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

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

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

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

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

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

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

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

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

  85. teamleaderleo/glaeda · pull-request · merged

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

    25 September 2026

    Cross-machine reads through the deployed fleet cache services never worked: macOS Local Network privacy blocks launchd-started third-party binaries on the headless minis from other hosts' LAN addresses. The store and nodes now use tailnet addresses, and a fresh full cmux app build on cmux11s hit every cacheable task through its deployed node.

    fleetcachingreliability
    • 4,192 tasks/buildobserved · reliability

      Before, the deployed (launchd) node could not reach the store at all, so deployed cross-machine reads served nothing; lab reads in glaeda-1162 and glaeda-1180 ran from ssh, which the block does not affect. The 326 s build time is not claimed as a reduction: there is no same-host, same-Xcode cold baseline for it (756 s in glaeda-1162 was Xcode 26.3).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  116. manaflow-ai/cmux · issue · measured

    Measure CMUX macOS CI capacity and replacement-cost exposure

    23 September 2026

    A GitHub Actions 90-day usage export records 1,966,401 self-hosted macOS runner-minutes, averaging 21,848.9 minutes/day. Pricing every minute at only WarpBuild's cheapest documented macOS rate yields a $52,437.36 per 30-day-month replacement-cost floor.

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

      The export contains 1,966,401 self-hosted macOS minutes. ci.yml alone accounts for 1,345,657 minutes, or about 68.4 percent of this total.

    • 21,848.9 runner-minutes/dayderived · baseline

      This 90-day average is about 16.8 percent above the separate 18,704-minute one-day accounting from September 22.

    • 52,437.4 USD/30-day-monthderived · baseline

      Floor valuation only: 655,467 equivalent minutes per 30 days at $0.08/min. No 12-vCPU premium is applied. This is replacement-cost exposure, not a claim that every minute was actually billed to Warp or saved by one contributor.

    • 637,987.9 USD/yearderived · baseline

      Annualized replacement-cost floor at the 90-day average. Any 12-vCPU Warp usage would raise the equivalent value.

    • 18,704 runner-minutes/daymeasured · baseline

      This independent issue-level accounting remains a useful corroborating snapshot but is no longer the primary economic baseline.

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

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

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

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

  121. swiftlang/swift · issue · filed

    Cached-diagnostics replay crash with mixed prefix-mapped inputs

    23 September 2026

    Reduced a real compilation-cache crash to three Swift source files and one resource, traced the replay failure through CachedDiagnostics and FileSpecificDiagnosticConsumer, decoded the CAS diagnostics blob, and connected the missing-file condition to an earlier prefix-map fix.

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

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

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

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

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

  127. manaflow-ai/cmux · pull-request · merged

    Move Computer Use runtime out of the 3,700-file app module

    20 September 2026

    Moved the Computer Use runtime into a local package and a shared process-identity type into CmuxFoundation so edits in those files stop paying the app target's whole-module planning and compilation cost.

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

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

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

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

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

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