From 4b862f61cab1accf81944951299904d512883d86 Mon Sep 17 00:00:00 2001 From: autonomic-bot Date: Sat, 30 May 2026 17:11:14 +0100 Subject: [PATCH] =?UTF-8?q?review(2):=20F2-14a=20oq-1=20RESOLVED=20(Builde?= =?UTF-8?q?r's=20favor)=20=E2=80=94=20independently=20reproduced=20abra=20?= =?UTF-8?q?FATA=20on=20env-interpolated=20start=5Fperiod=20(${APP=5FSTART?= =?UTF-8?q?=5FPERIOD:-5m}=20=E2=86=92=20'Does=20not=20match=20format=20dur?= =?UTF-8?q?ation'=20at=20app=20new;=20literal=2020m=20creates=20OK).=20Env?= =?UTF-8?q?-var=20form=20genuinely=20impossible=20for=20start=5Fperiod;=20?= =?UTF-8?q?literal=20recipe-PR=20bump=20is=20=C2=A79-compliant.=20oq-2=20(?= =?UTF-8?q?5m=E2=86=9220m=20default=20acceptability)=20+=20green=20maximal?= =?UTF-8?q?-subset=20run=20remain;=20ghost/mumble=20open;=20VETO=20stands?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- machine-docs/REVIEW-2.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/machine-docs/REVIEW-2.md b/machine-docs/REVIEW-2.md index f0b4efe..3a9690e 100644 --- a/machine-docs/REVIEW-2.md +++ b/machine-docs/REVIEW-2.md @@ -2221,3 +2221,27 @@ F2-14b/c still OPEN. VETO on DONE stands. and only open-question-2 remains (is a 5m→20m default bump acceptable upstream — defensible as grace-only). So F2-14a is close: overlay gone ✓, fix-form likely justified (pending my abra re-check), needs the green maximal-subset run + DECISIONS confirm to close. VETO on DONE still stands (ghost+mumble open). + +## F2-14a open-question-1 RESOLVED (Builder's favor) — independent abra repro @2026-05-30T16:10:50Z (recon, NOT a verdict — discourse Q4.6 still unclaimed) +I committed to independently reproducing the Builder's claim that abra cannot env-interpolate +`start_period` (the crux gating the literal recipe-PR bump vs the policy-preferred env-var form). +Did so cold on cc-ci (abra 0.13.0-beta-06a57de) with a throwaway recipe `sptest` (copy of discourse): +- **`start_period: ${APP_START_PERIOD:-5m}`** → `abra app new sptest -n -o -C` FAILS with + `FATA services.app.healthcheck.start_period Does not match format 'duration'`. Verbatim, first-hand. +- **`start_period: 20m`** (the Builder's actual literal fix) → `abra app new` SUCCEEDS + (`INFO sptest-lit.example.test created (version: f42bf3f6+U)`). +- Mechanism confirmed: abra/compose-go validates the literal compose `start_period` against the + 'duration' format **before** env substitution, so the env-var pattern is genuinely unavailable for + THIS field (unlike DOMAIN/labels which interpolate fine). `abra app config` is irrelevant here — it + opens an editor and dies on the non-TTY ssh, not a start_period error. +- **Teardown:** throwaway recipe + both .env app configs removed (apps never deployed → 0 stack/volume/ + secret; confirmed `docker stack ls | grep sptest` empty, no sptest under ~/.abra). Clean. + +**Consequence:** F2-14a open-question-1 resolves in the Builder's favor — the literal recipe-PR +`start_period` bump is the §9-compliant fix (env var impossible for this field; literal upstream PR is +the real recipe, no cc-ci overlay/drift). Still OPEN before I close F2-14a / grant the discourse claim: +(oq-2) is the 5m→20m **default change** acceptable upstream (it widens unhealthy-grace for all operators; +defensible as grace-only/slow-host, but a real default change — wants the recipe-PR to stand on its own +merit + DECISIONS note), AND (claim bar) maximal-subset install,backup,restore,custom GREEN on the +literal-bump PR head: deploy-count=1, P4 non-vacuous, ≥2 real P3, clean teardown, + §7.1 upgrade-tier +deferral with the removed-image DECISIONS note. ghost F2-14b + mumble F2-14c still OPEN. VETO on DONE stands.