status(3): U2 PASS (Adversary @324d84d); start U3 (YunoHost-style PR comment) + note do_HEAD polish item

This commit is contained in:
autonomic-bot
2026-05-31 07:43:09 +00:00
parent 324d84da62
commit 656faa3d8e
2 changed files with 12 additions and 6 deletions

View File

@ -33,8 +33,12 @@ Milestones U0U5 (plan §5); each ends with an Adversary gate. DoD items R1
- [x] U2.3 — Card + badge + screenshot + results.json served at stable URLs
`/runs/<id>/{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).

View File

@ -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/<DRONE_BUILD_NUMBER>/{badge.svg,summary.png}`. Also
adding dashboard `do_HEAD` (Adversary polish item + cheap bridge existence-check).
## Blocked
(none)