From 1daa1ea067560161eca32330560dcf6fd5c175c2 Mon Sep 17 00:00:00 2001 From: autonomic-bot Date: Fri, 29 May 2026 20:34:57 +0100 Subject: [PATCH] =?UTF-8?q?review(2):=20Q4.2=20mumble=20PASS=20=E2=80=94?= =?UTF-8?q?=20COLD=20first-hand=20full-lifecycle=20GREEN=20(my=20clone=20@?= =?UTF-8?q?1ba5613);=205=20tiers,=20deploy-count=3D1,=20tcp=20ready-probe?= =?UTF-8?q?=202x,=20real=20upgrade=20crossover,=20P3=20config=20round-trip?= =?UTF-8?q?s=20non-vacuous=20(max=5Fusers=3D42=20+=20welcome=20marker),=20?= =?UTF-8?q?P4=20sqlite=20ci=5Fmarker=20survives,=20clean=20teardown;=20no?= =?UTF-8?q?=20veto.=20Minor:=20leftover=20mumb-smoke=20volume=20(housekeep?= =?UTF-8?q?ing)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- machine-docs/REVIEW-2.md | 46 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/machine-docs/REVIEW-2.md b/machine-docs/REVIEW-2.md index c37b875..46901a2 100644 --- a/machine-docs/REVIEW-2.md +++ b/machine-docs/REVIEW-2.md @@ -1339,3 +1339,49 @@ returned by construction. health-only). 4. Upgrade tier: real version crossover (0.1.0/0.2.0/1.0.0), CHAOS_BASE_DEPLOY base deploy is the prior pinned version (not LATEST), host-ports overlay provided to versions predating it. + +## Q4.2 mumble — PASS @2026-05-29T~19:33Z (COLD, first-hand, my clone /root/adv-verify @1ba5613) +Re-ran the FULL harness myself: `RECIPE=mumble PR=0 cc-ci-run runner/run_recipe_ci.py` from my own +clone reset to origin/main `1ba5613`. Log `/root/adv-mumble-cold.log` (read end-to-end, 190 lines, +not truncated). **All 5 tiers GREEN, deploy-count=1, clean teardown.** + +**Evidence (cold, first-hand):** +- RUN SUMMARY: `deploy-count = 1 (expect 1)`; install/upgrade/backup/restore/custom = **all pass**. +- Enrollment markers matched claim: `CHAOS_BASE_DEPLOY → chaos base deploy of pinned version`; + `mumble install_steps: provided compose.host-ports.yml to recipe checkout`; 2 images present. +- **`ready-probe OK (tcp 3x): 127.0.0.1:64738` appears TWICE** (L8 post-install, L43 post-upgrade) — + the new TCP voice-server probe gates past the host-mode 64738 rebind churn (the 409 the Builder + fixed in `ec76072`). Verified it fires on both deploys. +- **Real upgrade crossover (HC1):** `head_ref=9fa5e949 chaos-version=9fa5e949 version= + 0.2.0+v1.6.870-0→1.0.0+v1.6.870-0`. head_ref==chaos-version; prev→PR-head, not a no-op. +- Pre-op seeds executed: `pre_upgrade`, `pre_backup`, `pre_restore` (ops.py). +- **P2 parity (3, all green):** `test_tcp_health::test_mumble_listening_on_64738`, + `test_protocol_handshake::test_handshake_completes_with_channel_presence` (16.27s — real TLS + handshake w/ retry, NOT a stub), `test_web_client::test_web_client_serves_mumble_web_ui`. +- **P3 specific (2, version-independent config round-trips — the non-vacuity linchpin, both green in + MY cold run):** `test_server_config_limits::test_configured_max_users_surfaces_in_serverconfig` + (ServerConfig.max_users == 42, a NON-default; murmur default is 100 → can't pass vacuously) + + `test_welcome_text_roundtrip::test_configured_welcome_text_surfaces_in_serversync` (unique marker + `cc-ci-mumble-welcome-7f3a9c` surfaced in ServerSync welcome_text). Both prove deploy-time config + (EXTRA_ENV WELCOME_TEXT/USERS → MUMBLE_CONFIG_*) propagated into the running murmur server and is + delivered over the real protocol. Decoded from server wire bytes (audited `_mumble_proto.py` + earlier), not returned by construction. +- **P4 backup data-integrity (real):** `test_backup_captures_state` + `test_restore_returns_state` + PASSED — the sqlite `ci_marker` row (in `/data/mumble-server.sqlite`, the file backupbot dumps) is + asserted at backup, dropped in pre_restore, and returns as `original` after restore. Recipe-aware, + not health-only. +- **P6 N/A** accepted: mumble's core UX is the native voice-protocol client (covered by the handshake + test); the web UI is asserted via test_web_client. Reasonable; no browser flow owed. +- **Teardown:** post-run `docker stack ls | grep mumb` → empty; no `mumb-` volume from my run. + +**Verdict: Q4.2 mumble PASS.** First non-HTTP-native (TCP/voice) recipe fully enrolled with genuine, +non-vacuous coverage across P1/P2/P3/P4/P7; P5 N/A (no deps), P6 N/A (justified). Advances P1 +coverage. No VETO. + +**Minor housekeeping (NOT a Q4.2 defect, no veto):** a leftover volume +`mumb-smoke_ci_commoninternet_net_mumble_data` remains on cc-ci — from the Builder's earlier manual +*smoke* deploy (app name `mumb-smoke`), not from any harness run (harness apps get random hashes and +mine cleaned up). Builder may `docker volume rm` it at convenience. + +**Isolation note:** verdict formed from the plan + code (pre-claim audit `191fa77`) + STATUS claim +verification info + my own cold re-run. JOURNAL-2 not consulted before this verdict.