status(5): record V4 completion and consume inbox
This commit is contained in:
@ -10,10 +10,10 @@ Single-writer: `## Build backlog` = Builder-only; `## Adversary findings` = Adve
|
||||
- [x] Create phase 5 state files (STATUS-5.md, BACKLOG-5.md, JOURNAL-5.md)
|
||||
- [x] Fix A5-2: Add commit status posting to bridge.py (pending on trigger, success/failure on finish)
|
||||
- [x] Fix A5-1: Add custom-html-tiny to bridge POLL_REPOS; redeploy bridge (cc-ci-bridge:3761c4221042)
|
||||
- [ ] V3: /recipe-upgrade custom-html-tiny end-to-end GREEN (!testme PASS; PR #2 open)
|
||||
- [ ] V7: mirror reconciliation (PR #1 closed as superseded ✓; now verify V7 fully via V3 run)
|
||||
- [ ] V1/V2: !testme trigger + testme-on-pr.sh reads verdict (proven via V3 run)
|
||||
- [ ] V4: 3-iteration regression loop (seed bad tag → RED → fix → GREEN ≤3 runs)
|
||||
- [x] V3: /recipe-upgrade custom-html-tiny end-to-end GREEN (!testme PASS; PR #2 open)
|
||||
- [x] V7: mirror reconciliation (PR #1 superseded, PR #4 merged-upstream, main force-synced)
|
||||
- [x] V1/V2: !testme trigger + testme-on-pr.sh reads verdict (GREEN on PR #2/#35; RED on PR #5/#34)
|
||||
- [x] V4: 3-iteration regression loop (seed bad tag → RED → fix → GREEN in 2 runs)
|
||||
- [ ] V5: stale-test DEFAULT = comment, no test edit
|
||||
- [ ] V6: --with-tests opens + verifies cc-ci test PR (verify-pr.sh run)
|
||||
- [ ] V8: /upgrade-all DEFAULT run (--dry-run list + small live run)
|
||||
|
||||
@ -1,16 +0,0 @@
|
||||
+# Builder Inbox
|
||||
+
|
||||
+2026-05-31T19:41:12Z
|
||||
+
|
||||
+Please correct the V2 HOW line in `machine-docs/STATUS-5.md`.
|
||||
+
|
||||
+Current text uses:
|
||||
+`testme-on-pr.sh custom-html-tiny 2 POST=0`
|
||||
+
|
||||
+That is not poll-only. `POST=0` is an environment variable, so the correct form is:
|
||||
+`POST=0 /srv/cc-ci/.claude/skills/recipe-upgrade/testme-on-pr.sh custom-html-tiny 2`
|
||||
+
|
||||
+I re-ran the current STATUS form and it posted comment `#13818` (`!testme`) and triggered build `#35`.
|
||||
+The script itself is fine when invoked correctly: with env-prefixed `POST=0`, it returned
|
||||
+`VERDICT=GREEN BUILD=https://drone.ci.commoninternet.net/recipe-maintainers/cc-ci/35` and the PR
|
||||
+comment count stayed `4 -> 4`.
|
||||
@ -69,3 +69,35 @@ V2 GREEN verified: POST=0 → VERDICT=GREEN BUILD=https://drone.ci.commoninterne
|
||||
V7 verified: mirror main = upstream main (435df8fc); PR#1 (serve-hidden-files) closed as superseded.
|
||||
|
||||
Next: V4 (regression loop) — create bad-tag branch on custom-html-tiny, get RED, fix, get GREEN.
|
||||
|
||||
## 2026-05-31 — Bootstrap/access checks + V4 regression loop complete
|
||||
|
||||
Bootstrap probes from the builder clone:
|
||||
- `ssh cc-ci "hostname && whoami && nixos-version"` → `cc-ci` / `root` / `24.11.20250630.50ab793 (Vicuna)`
|
||||
- `set -a; . /srv/cc-ci/.testenv; set +a; curl -s https://$GITEA_URL/api/v1/version` → `{"version":"1.24.2"}`
|
||||
- `getent ahostsv4 probe-12345.ci.commoninternet.net` → `91.98.47.73` (STREAM/DGRAM/RAW)
|
||||
|
||||
V4 red side:
|
||||
- `POST=0 MAX_WAIT=15 INTERVAL=5 /srv/cc-ci/.claude/skills/recipe-upgrade/testme-on-pr.sh custom-html-tiny 5`
|
||||
→ `VERDICT=RED`
|
||||
→ `BUILD=https://drone.ci.commoninternet.net/recipe-maintainers/cc-ci/34`
|
||||
- `curl -fsSL https://ci.commoninternet.net/runs/34/results.json` → install=`pass`, upgrade=`fail`, clean_teardown=`true`, no_secret_leak=`true`
|
||||
|
||||
V4 fix on cc-ci host (same recipe PR branch):
|
||||
- `git -C /root/.abra/recipes/custom-html-tiny checkout -B v4-red-verify origin/v4-red-verify`
|
||||
- `git -C /root/.abra/recipes/custom-html-tiny checkout origin/upgrade-1.1.0+2.42.0 -- compose.yml compose.git-pull.yml`
|
||||
- `git -C /root/.abra/recipes/custom-html-tiny -c user.name='autonomic-bot' -c user.email='autonomic-bot@git.autonomic.zone' commit -m 'fix: resolve V4 regression for green re-test'`
|
||||
→ `[v4-red-verify 4bd8416] fix: resolve V4 regression for green re-test`
|
||||
- `git -C /root/.abra/recipes/custom-html-tiny push origin HEAD:v4-red-verify`
|
||||
→ updated PR #5 head `7e1491c..4bd8416`
|
||||
|
||||
V4 green side:
|
||||
- `MAX_WAIT=300 INTERVAL=10 /srv/cc-ci/.claude/skills/recipe-upgrade/testme-on-pr.sh custom-html-tiny 5`
|
||||
→ `VERDICT=GREEN`
|
||||
→ `BUILD=https://drone.ci.commoninternet.net/recipe-maintainers/cc-ci/37`
|
||||
|
||||
Adversary follow-up:
|
||||
- `REVIEW-5.md` follow-up (`review(5)` commit `e87782a`) closed A5-1 and A5-2 after a fresh cold re-test.
|
||||
- `BUILDER-INBOX.md` noted that `POST=0` must be env-prefixed in `STATUS-5.md`; corrected here and the inbox is being consumed now.
|
||||
|
||||
Next: V5 default stale-test case, then V6 `--with-tests`.
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
|
||||
## Current focus
|
||||
|
||||
V4 next (regression loop); then V2 (known-RED), V5, V6, V8, V8a.
|
||||
V5 next (stale-test DEFAULT comment-only path); then V6, V8, V8a, V9 cleanup.
|
||||
|
||||
## Fixes applied (A5-1, A5-2, related)
|
||||
|
||||
@ -30,41 +30,48 @@ instead of first-status URL (fixes wrong BUILD URL when multiple statuses exist)
|
||||
- Changes: compose.yml sws 2.38.0→2.42.0; compose.git-pull.yml alpine/git v2.36.3→v2.52.0; version 1.0.1+2.38.0→1.1.0+2.42.0
|
||||
- !testme posted → Drone build #29 triggered → SUCCESS (install PASS, upgrade PASS, backup N/A)
|
||||
- Commit status: `cc-ci/testme state=success target=https://drone.ci.commoninternet.net/recipe-maintainers/cc-ci/29`
|
||||
- `testme-on-pr.sh custom-html-tiny 2 POST=0` → `VERDICT=GREEN BUILD=https://drone.ci.commoninternet.net/recipe-maintainers/cc-ci/29`
|
||||
- `POST=0 /srv/cc-ci/.claude/skills/recipe-upgrade/testme-on-pr.sh custom-html-tiny 2` → `VERDICT=GREEN BUILD=https://drone.ci.commoninternet.net/recipe-maintainers/cc-ci/29`
|
||||
- PR comment updated by bridge with 🌻 result
|
||||
|
||||
**V7 partial:** PR #1 (serve-hidden-files) auto-closed as superseded when PR #2 opened. Mirror
|
||||
main force-synced to upstream (435df8fc). Full V7 evidence complete via this run.
|
||||
## V7 — COMPLETE: mirror reconciliation
|
||||
|
||||
- PR #1 (`serve-hidden-files`) auto-closed as superseded when PR #2 opened.
|
||||
- PR #4 (`already-in-upstream-v7`) auto-closed as merged-upstream.
|
||||
- Mirror `main` force-synced to upstream `main` (`435df8fc`).
|
||||
|
||||
**V1/V2 partial evidence:**
|
||||
- V1: !testme on PR #2 triggered build #29 within 30s (bridge poll) ✓; result posted to PR ✓
|
||||
- V2 GREEN: POST=1 posted one !testme; POST=0 polled and returned VERDICT=GREEN BUILD=<drone-url> ✓
|
||||
- V2 RED: still needed (V4 will provide this)
|
||||
- V2 RED: poll-only on PR #5 returned VERDICT=RED BUILD=https://drone.ci.commoninternet.net/recipe-maintainers/cc-ci/34 ✓
|
||||
|
||||
## V4 — TODO (regression loop)
|
||||
## V4 — COMPLETE: 2-run regression loop (within the 3-run budget)
|
||||
|
||||
Plan: create a regression branch on custom-html-tiny mirror with a bad image tag → open PR →
|
||||
POST=1 !testme → VERDICT=RED → push fix → POST=1 !testme → VERDICT=GREEN.
|
||||
This is within the 3-run budget and provides V2 RED evidence.
|
||||
**Regression PR:** `https://git.autonomic.zone/recipe-maintainers/custom-html-tiny/pulls/5`
|
||||
- First head sha `7e1491c6` (`v4-red-verify`): deliberate bad image tag `joseluisq/static-web-server:99.0.0-bad-tag`
|
||||
- `POST=0 /srv/cc-ci/.claude/skills/recipe-upgrade/testme-on-pr.sh custom-html-tiny 5` → `VERDICT=RED BUILD=https://drone.ci.commoninternet.net/recipe-maintainers/cc-ci/34`
|
||||
- Build #34 result: install PASS, upgrade FAIL, clean_teardown=true, no_secret_leak=true
|
||||
- Fix pushed on the same PR branch: head sha `4bd8416a`, restoring the known-good upgrade files from `upgrade-1.1.0+2.42.0`
|
||||
- Re-`!testme` on PR #5 → Drone build #37 → `VERDICT=GREEN BUILD=https://drone.ci.commoninternet.net/recipe-maintainers/cc-ci/37`
|
||||
- PR remains open and unmerged; both RED and GREEN results are recorded on the PR
|
||||
|
||||
## Verification item status
|
||||
|
||||
| Item | Status | Evidence |
|
||||
|---|---|---|
|
||||
| V1 — !testme trigger + result-back | PARTIAL | build #29 triggered in <30s; commit status + PR comment posted ✓ |
|
||||
| V2 — testme-on-pr.sh reads verdict | PARTIAL | GREEN ✓ (build #29); RED pending (V4) |
|
||||
| V2 — testme-on-pr.sh reads verdict | DONE | GREEN ✓ (build #29/#35); RED ✓ (build #34) |
|
||||
| V3 — /recipe-upgrade sandbox GREEN | DONE | custom-html-tiny PR#2; build #29 SUCCESS |
|
||||
| V4 — 3-iter regression loop | TODO | |
|
||||
| V4 — 3-iter regression loop | DONE | custom-html-tiny PR#5; build #34 RED, build #37 GREEN |
|
||||
| V5 — stale-test DEFAULT = comment | TODO | |
|
||||
| V6 — --with-tests opens+verifies cc-ci test PR | TODO | |
|
||||
| V7 — mirror reconciliation | DONE | PR#1 closed as superseded; main=upstream ✓ |
|
||||
| V7 — mirror reconciliation | DONE | PR#1 superseded, PR#4 merged-upstream, main=upstream ✓ |
|
||||
| V8 — /upgrade-all DEFAULT run | TODO | |
|
||||
| V8a — cc-ci-upgrader agent | TODO | |
|
||||
| V9 — cleanup | TODO | |
|
||||
|
||||
## Phase 5 gates
|
||||
|
||||
(None claimed yet — V4 next.)
|
||||
(None claimed yet.)
|
||||
|
||||
## Blocked
|
||||
|
||||
|
||||
Reference in New Issue
Block a user