feat(mac-option-c): deploy-gate accepteert een identieke, groene PR-head #268

Merged
janpeter merged 1 commit from feat/deploy-gate-pr-head into main 2026-09-28 19:04:09 +02:00
Owner

Lever 1 from the CI investigation (JP, 2026-09-28): merge → deployable goes from ~30 min to ~5 min (only build).

The deploy gate (build) required green Required checks on the merge commit itself, and that means waiting for its main run: 10–18 min on two runners. It now also accepts a merge commit when all of the following hold:

  • the main run has no verdict yet (pending or none);
  • the merge commit's tree is byte-identical to its PR head (second parent);
  • that PR head has all Required checks green.

That is exactly the content CI tested. A red main run is never overruled. If main moved in between, the trees differ and the gate waits as before.

Checked against the real #267 merge: 3ee73cf1 has a tree identical to PR head 57fd725f, which has CI / Required checks (pull_request): success.

Tests: identical tree + green head (no status and pending), red main, a non-green head, and diverged trees. 20/20 deploy tests pass.

🤖 Generated with Claude Code

Lever 1 from the CI investigation (JP, 2026-09-28): merge → deployable goes from ~30 min to ~5 min (only `build`). The deploy gate (`build`) required green Required checks on the merge commit itself, and that means waiting for its main run: 10–18 min on two runners. It now also accepts a merge commit when all of the following hold: - the main run has no verdict yet (pending or none); - the merge commit's tree is byte-identical to its PR head (second parent); - that PR head has all Required checks green. That is exactly the content CI tested. A red main run is never overruled. If main moved in between, the trees differ and the gate waits as before. Checked against the real #267 merge: `3ee73cf1` has a tree identical to PR head `57fd725f`, which has `CI / Required checks (pull_request): success`. Tests: identical tree + green head (no status and pending), red main, a non-green head, and diverged trees. 20/20 deploy tests pass. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat(mac-option-c): deploy-gate accepteert een identieke, groene PR-head zolang main CI nog loopt
All checks were successful
CI / Select checks (pull_request) Successful in 13s
CI / Ops-agent checks (pull_request) Successful in 2m28s
CI / DB access operator (pull_request) Successful in 1m29s
CI / Deploy artifact checks (pull_request) Successful in 57s
CI / Docker image build (pull_request) Successful in 1m32s
CI / Root app checks (pull_request) Successful in 8m11s
CI / Mac foundation hermetic checks (pull_request) Successful in 2m19s
CI / Mac foundation reproducible build (pull_request) Successful in 3m49s
CI / Publish post-merge release evidence (pull_request) Has been skipped
CI / Required checks (pull_request) Successful in 43s
4664d0b809
Een merge-commit wacht niet meer 10-18 min op zijn eigen main run als zijn
tree byte-gelijk is aan de PR-head en die groene Required checks heeft. Een
rode main run wordt nooit overruled; verschillen de trees, dan blijft
wachten de regel. Tests voor gelijk/afwijkend, rood en niet-groen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
s4m-codex-reviewer left a comment

Verdict: APPROVED

Geen blokkerende bevindingen.

  • INFO — deploy/mac-production/deploy-ops-release.sh:96: de gate behandelt de eigen main-status expliciet (groen, rood, pending/geen status) en accepteert de PR-head-route alleen voor een echte tweeouder-merge met een identieke tree en een groene Required-check.
  • INFO — test/mac-option-c-deploy.test.ts:283: de contracttests dekken de toegestane identieke merge en de relevante weigeringen af: rode main-run, niet-groene PR-head en afwijkende tree wanneer main voortbewoog.
  • INFO — deploy/mac-production/README.md:95: de gewijzigde operationele semantiek is gedocumenteerd.

Geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden.

Verificatie: bash -n deploy/mac-production/deploy-ops-release.sh en git diff --check zijn geslaagd. De gerichte Vitest-run kon lokaal niet opstarten doordat de native rolldown-binding in deze runtime niet gemapt mag worden.

# Verdict: APPROVED Geen blokkerende bevindingen. - INFO — `deploy/mac-production/deploy-ops-release.sh:96`: de gate behandelt de eigen main-status expliciet (groen, rood, pending/geen status) en accepteert de PR-head-route alleen voor een echte tweeouder-merge met een identieke tree en een groene Required-check. - INFO — `test/mac-option-c-deploy.test.ts:283`: de contracttests dekken de toegestane identieke merge en de relevante weigeringen af: rode main-run, niet-groene PR-head en afwijkende tree wanneer main voortbewoog. - INFO — `deploy/mac-production/README.md:95`: de gewijzigde operationele semantiek is gedocumenteerd. Geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden. Verificatie: `bash -n deploy/mac-production/deploy-ops-release.sh` en `git diff --check` zijn geslaagd. De gerichte Vitest-run kon lokaal niet opstarten doordat de native rolldown-binding in deze runtime niet gemapt mag worden.
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
janpeter/Ops-dashboard!268
No description provided.