diff --git a/machine-docs/DECISIONS.md b/machine-docs/DECISIONS.md index b53f45f..aa3e962 100644 --- a/machine-docs/DECISIONS.md +++ b/machine-docs/DECISIONS.md @@ -1113,3 +1113,21 @@ closes the race generally. It is NOT a test weakening: BACKUP_VERIFY is read-onl flaky CAPTURE so the P4 restore assertion is exercised reliably instead of luck-dependently. Companion recipe-PR hardening (mysql_backup.sh `set -o pipefail` + fail-loud on missing dump) still wanted so the reimport can never silently no-op. ghost BACKUP_VERIFY: backup.sql.gz is a valid non-empty gzip. + +## 2026-05-31 — mumble F2-14c disposition + `UPGRADE_EXTRA_ENV` harness hook (Builder, per Adversary VETO @2026-05-30T16:22:07Z) +**Settled.** mumble's only cc-ci compose fork (`tests/mumble/compose.host-ports.yml`, copied to the +upgrade base by `install_steps.sh`) is REMOVED. mumble overlays per upstream tags: `compose.mumbleweb.yml` +present from 0.1.0; `compose.host-ports.yml` present ONLY from 1.0.0 (the latest). So: +- BASE = previous published `0.2.0+v1.6.870-0` deploys MINIMALLY (`COMPOSE_FILE=compose.yml:compose.mumbleweb.yml`, + no host-ports) — HTTP health via mumble-web works; the on-host voice port 64738 is NOT published, so the + on-host voice/protocol custom tests are SKIPPED on 0.2.0 (recorded; they run in the CUSTOM tier, which + executes once on the post-upgrade latest). `CHAOS_BASE_DEPLOY` dropped (no untracked overlay → base + deploys as a clean pinned version). +- UPGRADE to latest (`1.0.0+`, ships `compose.host-ports.yml` natively) adds it to COMPOSE_FILE so 64738 is + host-published and the voice tests run on latest. +**New general harness hook `UPGRADE_EXTRA_ENV`** (recipe_meta dict or callable(domain)->dict): applied via +`abra.env_set` in `generic.perform_upgrade` AFTER the PR-head checkout and BEFORE the chaos redeploy, so a +recipe whose upgrade TARGET needs different app .env than the base (e.g. an overlay that exists only in the +newer version) can switch it without a cc-ci fork. Added `abra.env_get` (symmetric reader). mumble's +`READY_PROBE` + install-overlay now read the live COMPOSE_FILE and self-gate the tcp 64738 probe to the +host-ports (latest) phase. No cc-ci fork of any upstream file remains for mumble. diff --git a/machine-docs/JOURNAL-2.md b/machine-docs/JOURNAL-2.md index d3c47d5..d96574c 100644 --- a/machine-docs/JOURNAL-2.md +++ b/machine-docs/JOURNAL-2.md @@ -1588,3 +1588,17 @@ the exact round-trip stays faithful (unique hex token mid-string, untouched). NO real create→read-back of a uniquely-marked topic. **full8** relaunched full lifecycle (`/root/ccci-discourse-full8.log`, PID 65368, builder-clone @588a087). Node clean before launch (disc-ce6450 fresh secrets, no collision). On all-green → CLAIM Q4.6. Polling ~5min. + +--- +## 2026-05-31T05:2xZ — mumble F2-14c implemented + run launched (Builder) +Discourse Q4.6 claimed (`dabcceb`); picked up the LAST DONE-VETO item, mumble F2-14c. Investigated the +mumble recipe tags (corrected an earlier tag-name slip): `0.1.0/0.2.0/1.0.0+v1.6.870-0`; `compose.mumbleweb.yml` +is on the 0.2.0 base, `compose.host-ports.yml` ONLY on 1.0.0. So the only cc-ci fork was the host-ports copy. +Implemented per the Adversary's disposition (see DECISIONS 2026-05-31): removed the fork +install_steps; +base 0.2.0 deploys minimally; new `UPGRADE_EXTRA_ENV` harness hook adds native host-ports on the +upgrade-to-latest; `READY_PROBE`/install-overlay self-gate the voice-port check to the host-ports phase via +`abra.env_get(COMPOSE_FILE)`; dropped CHAOS_BASE_DEPLOY. py_compile clean. Commit `4bf9e1d`. **Run launched:** +`RECIPE=mumble PR=0` → `/root/ccci-mumble-f214c.log`, PID 75792 (node clean). Expect: install pass (voice +overlay SKIPS on 0.2.0, generic HTTP serving passes), upgrade pass (COMPOSE_FILE switched, host-ports added, +ready-probe tcp 3x on latest), backup/restore pass (sqlite ci_marker), custom pass (handshake/web/config on +latest). Polling ~5min (exercises new harness code — watch base deploy + the upgrade env switch).