From 656faa3d8e0789b21400bb6a3e50cda733ae4341 Mon Sep 17 00:00:00 2001 From: autonomic-bot Date: Sun, 31 May 2026 07:43:09 +0000 Subject: [PATCH] status(3): U2 PASS (Adversary @324d84d); start U3 (YunoHost-style PR comment) + note do_HEAD polish item --- machine-docs/BACKLOG-3.md | 8 ++++++-- machine-docs/STATUS-3.md | 10 ++++++---- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/machine-docs/BACKLOG-3.md b/machine-docs/BACKLOG-3.md index 2e549fa..7c94672 100644 --- a/machine-docs/BACKLOG-3.md +++ b/machine-docs/BACKLOG-3.md @@ -33,8 +33,12 @@ Milestones U0–U5 (plan §5); each ends with an Adversary gate. DoD items R1– - [x] U2.3 — Card + badge + screenshot + results.json served at stable URLs `/runs//{summary.png,badge.svg,screenshot.png,results.json}` (allow-list + traversal-guarded; runs dir bind-mounted RO into the dashboard swarm service). LIVE over HTTPS, verified. -- GATE U2: **CLAIMED 2026-05-31** — PASS card served live (u1-uk-shot, real screenshot embedded); - FAIL render deterministically honest (L0/red/✘/no-screenshot); traversal guard 404s. +- GATE U2: **PASS** (Adversary REVIEW-3 @324d84d, 2026-05-31) — card+badge render correct for pass & + fail, served traversal-guarded, never-greener, leak-clean, R7-safe, no VETO. (R3/R6 stay partial + until embedded in PR comment (U3) + dashboard (U4) + per-recipe badge (U5).) +- Adversary polish items to fold in (low-sev, not gates): (a) dashboard `/runs/` HEAD→501 (no do_HEAD) + → add do_HEAD (also enables a cheap bridge existence-check for U3 fallback); (b) per-recipe + latest-level badge endpoint → U5. ### U3 — YunoHost-style PR comment (R2) - [ ] U3.1 — Bridge posts a placeholder comment on run start (⏳ + live-logs link). diff --git a/machine-docs/STATUS-3.md b/machine-docs/STATUS-3.md index 1f1fe14..ba55aa8 100644 --- a/machine-docs/STATUS-3.md +++ b/machine-docs/STATUS-3.md @@ -118,7 +118,7 @@ credentials page, and its presence/absence never changes the verdict. --- -## Gate: U2 — CLAIMED, awaiting Adversary (Summary card + badge; R3, R6) +## Gate: U2 — PASS (Adversary REVIEW-3 @324d84d, 2026-05-31; R3/R6 partial cold-verified, no VETO) (Summary card + badge) **WHAT.** Each run now renders a **summary card PNG** (recipe+version, level badge, per-stage/per-test ✔/✘ table, embedded **real app screenshot**) and an **SVG level badge**, written into the run artifact @@ -165,9 +165,11 @@ The cardinal U2 invariant: the rendered card/level/badge are a faithful, never-g results.json + the actual test outcomes, served at a stable URL, generated best-effort so a render failure never blocks the run. -## In flight (next, post-gate) -- U3 — YunoHost-style PR comment (marker 🌻 + level/status badge + summary card image, linked; - updates on re-run; fallback to text). Held until U2 PASSes (no advance past the gate). +## In flight +- U3 — YunoHost-style PR comment (IN PROGRESS): bridge posts 🌻 + ⏳ start comment, edits same comment + on completion to 🌻 + level badge image + summary card image (both linking to the run/dashboard), + text fallback on render failure. URLs: `/runs//{badge.svg,summary.png}`. Also + adding dashboard `do_HEAD` (Adversary polish item + cheap bridge existence-check). ## Blocked (none)