test(e2e): harden template-delivery asset assertions to settle (#37 / mc#2996 Phase 2a) #3023
Reference in New Issue
Block a user
Delete Branch "fix/rfc2843-37-harden-delivery-e2e"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
RFC#2843 #37 (mc#2996) Phase 2a — harden the delivery gate so it can fail-closed
Goal: make
template-delivery-e2emerge-blocking (fail-closed) so a delivery regression (the #2919 model-drop / #32 skill-drop class) can't merge.Why two steps. The repo's own
lint-pre-flip-continue-on-errorblocks removingcontinue-on-erroruntil the job has banked green runs on main (it scans recent main run logs for masked failures — PR#656/mc#1982 lesson). Main's last delivery run (9c2161d) was red — but the red was a false negative: the final assertion did a single no-retrycurlof the just-online tenant's/configsendpoint and hitcurl: (28) ... 0 bytes→config.yaml size=0→ false "default stub". Not a real delivery break.This PR (2a): harden the asset-channel assertions (C config.yaml, D prompts) to poll within
E2E_ASSET_SETTLE_SECS(180s) instead of one no-retry read. A genuine stub still fails after the budget (real signal intact); only the transient/early read stops false-failing. The plugin assertion (E) already polled — this brings C/D to parity.continue-on-errorstays here on purpose.Next (2b, immediately after this is green on main): remove
continue-on-error+ add the emitted context to branch-protectionrequired_status_checks→ fail-closed.SOP
/configsendpoint →curl 28→ false stub. Named, not "flaky".bash -n+ the e2e itself runs on this PR via the path filter), observability (failure message now reports the post-budget value).🤖 Generated with Claude Code
QA: asset assertions now poll within settle budget (kills the curl-28 false stub); real stub still fails post-budget; plugin assertion parity. COE retained per pre-flip lint. APPROVE.
/sop-ack comprehensive-testing verified — #37 delivery-e2e hardening.
/sop-ack local-postgres-e2e verified — #37 delivery-e2e hardening.
/sop-ack staging-smoke verified — #37 delivery-e2e hardening.
/sop-ack root-cause verified — #37 delivery-e2e hardening.
/sop-ack five-axis-review verified — #37 delivery-e2e hardening.
/sop-ack no-backwards-compat verified — #37 delivery-e2e hardening.
/sop-ack memory-consulted verified — #37 delivery-e2e hardening.
Security: test-only; no runtime/secret surface change. APPROVE.