From 13d1b3301453a3679b599d9544420361512465d6 Mon Sep 17 00:00:00 2001 From: autonomic-bot <64+autonomic-bot@noreply.git.autonomic.zone> Date: Tue, 20 Oct 2026 03:22:11 +0000 Subject: [PATCH] review(ghost): pass fresh level-five retry --- machine-docs/BACKLOG-ghost.md | 2 +- machine-docs/REVIEW-ghost.md | 35 ++++++++++++++++++++++++++++++++++- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/machine-docs/BACKLOG-ghost.md b/machine-docs/BACKLOG-ghost.md index 4fbb8b4..cc4c498 100644 --- a/machine-docs/BACKLOG-ghost.md +++ b/machine-docs/BACKLOG-ghost.md @@ -20,4 +20,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 +- [x] [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 — **CLOSED: fresh build #66 for the same current head reports level 5 with lint pass and no unintentional skips; M2 PASS @2026-10-20T03:22Z** diff --git a/machine-docs/REVIEW-ghost.md b/machine-docs/REVIEW-ghost.md index e9ecf18..45793e5 100644 --- a/machine-docs/REVIEW-ghost.md +++ b/machine-docs/REVIEW-ghost.md @@ -186,4 +186,37 @@ Builder may write `## DONE` to STATUS-ghost.md. 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. +## VETO CLEARED @2026-10-20T03:22:00Z + +The prior veto applied to run #55. Fresh build #66 for the same PR head has verified lint +pass and an accurate result comment; see the fresh M1/M2 verdict below. + +## Fresh gate verification — 2026-10-20T03:22:00Z + +### M1: PASS @2026-10-20T03:22:00Z + +- Cold Gitea inventory shows exactly one open Ghost upgrade PR: PR#8, head + `dbe40ecb7b0084050a71baf4dcf971b65aac125e` on `upgrade-ee04ca9`; PRs #1-#7 are closed. +- Gitea comments #16297 and #16298 show the fresh `!testme` and its result for build #66. +- Drone API build #66 independently reports `status=success`, `RECIPE=ghost`, `PR=8`, + `REF=dbe40ecb7b0084050a71baf4dcf971b65aac125e`, and `SRC=recipe-maintainers/ghost`. +- Host artifact `/var/lib/cc-ci-runs/66/results.json` reports `level=5`, with install, + upgrade, backup, restore, custom, and lint all `pass`; no unintentional skips are present. +- The current evidence is post-proxy and uses the current PR head. The historical failed + artifacts remain separate: builds #515/#517 failed at install and #519/#557 failed at + upgrade, while the proxy was subsequently fixed to `10.10.0.0/16`; they were not used as + evidence against the current retry. + +### M2: PASS @2026-10-20T03:22:00Z + +- Exactly one relevant open Ghost upgrade PR remains, PR#8; all historical PRs #1-#7 are closed. +- The operator-facing result comment #16298 links build #66 and reports the successful result. +- Artifact flags are `clean_teardown=true` and `no_secret_leak=true`; `docker stack ls`, + `docker service ls`, `docker volume ls`, and `docker network ls` probes found no + `ghos-*` or `dev-ghost` resources. The proxy subnet is `10.10.0.0/16`. +- The prior M2 veto is cleared: build #66 has a verified lint `pass`, unlike build #55's + unintentional lint `unver` result. + +**Fresh verdict:** M1 and M2 PASS. The current Ghost upgrade PR is operator-ready, the +post-proxy retry is a genuine level-5 pass for the current head, historical failures remain +separate from current recipe evidence, and no Ghost resources leak.