feat(release): auto-redispatch the release-CI when SHA256SUMS is missing (plan #8) #1392

Merged
brenno merged 1 commit from hardening/phase3-redispatch into main 2026-08-08 22:50:21 +00:00
Owner

Wat

Laatste vervolg-PR (na #1388/#1390/#1391). Plan-#8: fase 3 sterft niet meer
meteen als SHA256SUMS ontbreekt, maar probeert éénmalig automatisch te herstellen.

Waarom

SHA256SUMS ontbreekt als de publiceren-job niet draaide — meestal omdat een
upstream-job (vaak windows-ophalen) struikelde. Tot nu toe stopte fase 3 dan met
een --resume-advies; maar --resume deed vervolgens hetzelfde wachten, zonder de
CI opnieuw te starten. Je bleef dan met de hand de release-CI herdispatchen.

Fix

Verschijnt SHA256SUMS niet binnen de eerste wachtronde (~5 min), dan dispatcht
fase 3 de hele release-CI (release.yml, ref=$TAG) éénmalig opnieuw via de
forge-API — de jobs zijn idempotent (uploads clobberen, de SHA256SUMS-sweep
herbouwt de lijst) — en wacht daarna ruimer (~30 min, een volledige herbouw). Pas als
dát óók niet lukt, escaleert het met een duidelijker melding (een upstream-job blijft
falen, bv. mirror onbereikbaar) plus het --resume-advies. Zelfde
dispatch-then-poll-patroon als het bestaande publish_scans_image.

De grondoorzaak van de meest voorkomende SHA256SUMS-404 (ontbrekende mirror-tag) is
al weg met #1388; dit vangt de rest (een echt gefaalde publiceren-job) automatisch op.

Test

Statische invariant in release_auto_version_test.dart: fase 3 dispatcht
release.yml opnieuw vóór de escalatie-die.

Poort & scans

make check groen; make check-secrets + make sast + shellcheck schoon.
DAST n.v.t.

Bewaker

Bewust overgeslagen: her-dispatcht de eigen release-CI op de eigen tag via de
bestaande forge-API — geen nieuw bestandsformaat, opslag, afhankelijkheid, nieuwe
vertrouwde partij of publieke belofte. Dit is wel de meest gedragsveranderende van de
drie vervolg-PR's, daarom begrensd (één poging), idempotent, en alleen in het
toch-al-falende pad (SHA256SUMS ontbreekt).

🤖 Generated with Claude Code

## Wat Laatste vervolg-PR (na #1388/#1390/#1391). Plan-**#8**: fase 3 sterft niet meer meteen als `SHA256SUMS` ontbreekt, maar probeert éénmalig automatisch te herstellen. ## Waarom `SHA256SUMS` ontbreekt als de `publiceren`-job niet draaide — meestal omdat een upstream-job (vaak `windows-ophalen`) struikelde. Tot nu toe stopte fase 3 dan met een `--resume`-advies; maar `--resume` deed vervolgens *hetzelfde wachten*, zonder de CI opnieuw te starten. Je bleef dan met de hand de release-CI herdispatchen. ## Fix Verschijnt `SHA256SUMS` niet binnen de eerste wachtronde (~5 min), dan dispatcht fase 3 de hele release-CI (`release.yml`, `ref=$TAG`) **éénmalig** opnieuw via de forge-API — de jobs zijn idempotent (uploads clobberen, de `SHA256SUMS`-sweep herbouwt de lijst) — en wacht daarna ruimer (~30 min, een volledige herbouw). Pas als dát óók niet lukt, escaleert het met een duidelijker melding (een upstream-job blijft falen, bv. mirror onbereikbaar) plus het `--resume`-advies. Zelfde dispatch-then-poll-patroon als het bestaande `publish_scans_image`. De grondoorzaak van de meest voorkomende `SHA256SUMS`-404 (ontbrekende mirror-tag) is al weg met #1388; dit vangt de rest (een echt gefaalde `publiceren`-job) automatisch op. ## Test Statische invariant in `release_auto_version_test.dart`: fase 3 dispatcht `release.yml` opnieuw vóór de escalatie-`die`. ## Poort & scans `make check` groen; `make check-secrets` + `make sast` + `shellcheck` schoon. DAST n.v.t. ## Bewaker Bewust overgeslagen: her-dispatcht de eigen release-CI op de eigen tag via de bestaande forge-API — geen nieuw bestandsformaat, opslag, afhankelijkheid, nieuwe vertrouwde partij of publieke belofte. Dit is wel de meest gedragsveranderende van de drie vervolg-PR's, daarom begrensd (één poging), idempotent, en alleen in het toch-al-falende pad (SHA256SUMS ontbreekt). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat(release): auto-redispatch the release-CI when SHA256SUMS is missing (plan #8)
All checks were successful
scans / scans (pull_request) Successful in 2m32s
static-gate / static-gate (pull_request) Successful in 5m19s
linux-gate / gate-linux (pull_request) Successful in 24m51s
ce7c2d4df0
Fase 3 sterft niet meer meteen als SHA256SUMS ontbreekt. Dat gebeurt als de
publiceren-job niet draaide — meestal omdat een upstream-job (vaak windows-ophalen)
struikelde. Tot nu toe stopte fase 3 met een --resume-advies, maar --resume deed
daarna hetzelfde wachten zonder de CI opnieuw te starten.

Nu: verschijnt SHA256SUMS niet binnen de eerste wachtronde (~5 min), dan dispatcht
fase 3 de hele release-CI (release.yml, ref=$TAG) éénmalig opnieuw via de forge-API
— de jobs zijn idempotent (uploads clobberen) — en wacht daarna ruimer (~30 min).
Pas als dát óók niet lukt, escaleert het met een duidelijker melding plus het
--resume-advies. Zelfde dispatch-then-poll-patroon als publish_scans_image.

De grondoorzaak van de meest voorkomende SHA256SUMS-404 (ontbrekende mirror-tag) is
al weg met #1388; dit vangt de rest (een echt gefaalde publiceren-job) automatisch op.

Test: statische invariant dat fase 3 release.yml opnieuw dispatcht vóór de escalatie.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
brenno merged commit f62d02bf73 into main 2026-08-08 22:50:21 +00:00
brenno deleted branch hardening/phase3-redispatch 2026-08-08 22:50:22 +00:00
Sign in to join this conversation.
No description provided.