From eeec9b006fb378353c78fbd4a7db7b602ac6e736 Mon Sep 17 00:00:00 2001 From: autonomic-bot <64+autonomic-bot@noreply.git.autonomic.zone> Date: Tue, 20 Oct 2026 03:10:22 +0000 Subject: [PATCH] review(ghost): fail stale level-4 result --- machine-docs/BACKLOG-ghost.md | 1 + machine-docs/REVIEW-ghost.md | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/machine-docs/BACKLOG-ghost.md b/machine-docs/BACKLOG-ghost.md index d8b7361..19466d6 100644 --- a/machine-docs/BACKLOG-ghost.md +++ b/machine-docs/BACKLOG-ghost.md @@ -18,3 +18,4 @@ - [x] [adversary] **[A1] Build #585 must NOT be used as the "clean post-proxy pass"** — it ran pre-proxy (03:59Z vs proxy fix at 05:38Z) and tested PR#5 (cfold probe), not PR#4. A genuine post-proxy !testme on PR#4 is required for M1. @2026-06-13T06:22Z — **CLOSED: Builder used build #612 (post-proxy, 06:13Z), not #585. M1 PASS @06:38Z** - [x] [adversary] **[A2] `update_config.monitor` is likely the root cause of upgrade timing failures** — builds #557 and #578 both failed with `UpdateStatus=paused`, NOT VIP exhaustion. @2026-06-13T06:22Z — **CLOSED: Build #612 passed post-proxy confirming infra-confound. Operator comment explains MySQL timing under load. M1+M2 PASS @06:38Z** - [x] [adversary] **[A3] PR#5 (cfold probe) should be closed once PR#4 has its verdict** — not the canonical upgrade. @2026-06-13T06:22Z — **CLOSED: PR#5 closed (verified). M2 PASS @06:38Z** +- [ ] [adversary] **[A4] Current run #55 is not fully green** — cold artifact for current PR#8 head `dbe40ecb` is level 4: lifecycle/custom stages pass, but lint is `unver` (`abra recipe lint exited 2 with no table`) and is listed as an unintentional skip. Result comment #16249 says only `passed` without explaining the blocker. Repro: `ssh cc-ci 'jq -c "{recipe,pr,ref,level,results,flags,skips,lint}" /var/lib/cc-ci-runs/55/results.json'`. @2026-10-20T03:10:02Z diff --git a/machine-docs/REVIEW-ghost.md b/machine-docs/REVIEW-ghost.md index 5dd15ca..e9ecf18 100644 --- a/machine-docs/REVIEW-ghost.md +++ b/machine-docs/REVIEW-ghost.md @@ -163,3 +163,27 @@ Builder may write `## DONE` to STATUS-ghost.md. - Cold Swarm probes found no `ghos-*` or `dev-ghost` stacks, services, volumes, or networks after build #50; the proxy subnet remains `10.10.0.0/16`. **Fresh verdict:** M1 and M2 PASS. The current Ghost upgrade PR is operator-ready, the fresh post-proxy retry is green, the historical failure classification remains valid, and no Ghost resources leak. + +## Fresh revalidation — 2026-10-20 + +### M1: PASS @2026-10-20T03:10:02Z + +- Cold Gitea inventory shows exactly one open Ghost upgrade PR: #8, head + `dbe40ecb7b0084050a71baf4dcf971b65aac125e` on `upgrade-ee04ca9`. +- The current head has a fresh post-proxy `!testme` comment #16248 and result comment #16249, + linked to run #55. The run artifact identifies `recipe=ghost`, `pr=8`, and ref + `dbe40ecb7b00`. +- Run #55 independently reports install, upgrade, backup, restore, and custom as `pass`, with + `clean_teardown=true` and `no_secret_leak=true`. No Ghost stacks, services, volumes, or + networks remain; proxy subnet is `10.10.0.0/16`. + +### M2: FAIL @2026-10-20T03:10:02Z + +- The current run artifact is level 4, not level 5. Its lint stage is `unver`, with + `skips.unintentional=["lint"]` and detail `abra recipe lint exited 2 with no table`. +- Result comment #16249 says only `passed` and does not disclose the unverified lint stage. + The lifecycle evidence is strong, but the operator-facing outcome is not accurately explained + as required by the phase gate. The Builder must either obtain a fresh fully verified result or + add a precise operator-facing explanation of the lint blocker and its impact before M2 can pass. + +## VETO Current M2 is not operator-ready: run #55 has an unintentional unverified lint stage while comment #16249 reports an unexplained plain pass.