diff --git a/.claude/memory/gururmm-beast-windows-build-host.md b/.claude/memory/gururmm-beast-windows-build-host.md index c2c795e..ca1ebfb 100644 --- a/.claude/memory/gururmm-beast-windows-build-host.md +++ b/.claude/memory/gururmm-beast-windows-build-host.md @@ -8,7 +8,27 @@ metadata: Set up 2026-06-12. **GURU-BEAST-ROG = PRIMARY Windows build host; Pluto (Administrator@172.16.3.36) = FALLBACK.** `deploy/build-pipeline/build-windows.sh` selects via `attempt_build beast || attempt_build pluto` — falls back if Beast is **unreachable/down OR its -build fails**. Beast is ~10x faster than Pluto (full set ~12-15 min vs ~21). +build fails**. + +## Parallel build (lever A, 2026-06-12) — ~5.6 min, was ~10-21 min +`run_remote_build()` parallelises the 8 variants across concurrent SSH sessions instead of one +serial `cmd /c` chain (the release profile is opt-level=z + lto=true + codegen-units=1, so each +variant's codegen/LTO is single-threaded — concurrency overlaps those tails). Beast: 24c/32t, 128 GB. +- **WAVE 1** (5 concurrent, stable toolchain): agent amd64 (`target/release`) + debug + (`target/debug-agent`) + x86 (`target/x86`), tray, cleanup. +- **WAVE 2** (2 concurrent, Rust 1.77): legacy amd64 (`target/legacy-x64`) + legacy x86 + (`target/legacy-x86`). MSI (WiX) runs after wave 1, overlaps wave 2. +- **Two hard rules learned (both broke the build on BOTH hosts first try):** + 1. **Every concurrent cargo needs its OWN `--target-dir`** — sharing one (e.g. amd64+x86 both on + `target/`) makes them block on cargo's per-build-dir lock and run serially ("Blocking waiting + for file lock on build directory"). `copy_artifacts()` paths must match the per-variant dirs. + 2. **Do NOT pre-resolve the legacy lock with `cargo +1.77 fetch`/`generate-lockfile`** — a + full-graph resolve on 1.77 dies parsing a transitive `edition2024` dep (wit-bindgen), + `rc=101`. Just `move Cargo.lock aside` and let the two `cargo +1.77 build --features legacy` + invocations resolve scoped (no wit-bindgen); cargo's package-cache lock serialises their brief + resolve safely, then they compile in parallel. Restore the lock after. +Result: v0.6.66 built on Beast in **336s** (cargo phase 319s), all 8 artifacts signed + published +beta. vs Beast's first serial+cold build 622s and Pluto's 1269s. ## How .30 reaches Beast - Beast is on Wi-Fi `10.2.51.228` (a DIFFERENT LAN than the .30 office 172.16.3.x) + tailnet