Sviluppo
development-release.yml è l'unico percorso canonico. Ogni push su main
viene prima validato da CI. Solo il completamento positivo della CI generata da
quel push, nello stesso repository e sul branch main, soddisfa il gate tecnico
della promozione automatica; il workflow congela e usa l'esatto head_sha della
CI. Quando l'Issue mergiata include osservazione o ripresa bounded, Codex usa:
Rilascia in development.
permette a Codex di osservare o riprendere in modo bounded soltanto l'exact head
corrente di main, dopo CI verde, senza creare un nuovo commit.
CI possiede test, typecheck, version e generated types, build, dry-run, documentazione, Brain e validazione/immutabilità del manifest. La release development riusa l'evidenza CI dello stesso SHA e non riesegue quel pack; dopo la verifica di identità risolve soltanto la baseline production e passa alle attività operative remote.
Il workflow risolve l'ultima release production riuscita come baseline, legge il
ledger D1 development e accetta solo un prefisso esatto. Uno stato già
convergente evita l'apply. Le sole pending expand vengono applicate dallo
stesso checkout e il ledger viene riletto; extraordinary, drift o ambiguità
bloccano prima del deploy. Dopo la verifica: API → smoke health/version,
/db/health, assenza della route legacy /public/v1/snapshot, protected front
door public-content e smoke autenticato opzionale → MCP → smoke
readiness/version.
Al job scope sono disponibili soltanto le credenziali Cloudflare di deploy. Il
solo step smoke API può ricevere la copia cifrata della coppia Public Site
Access DEV esistente. Esegue esclusivamente GET sull'origin DEV fissato, prova
filtri bounded, negazione Admin e isolamento cross-environment; se la coppia
opzionale non è configurata registra not-run. Runtime vars, configurazione
Access, Mailjet e secret Worker restano su Cloudflare e non vengono modificati.
development-operations.yml conserva unicamente il preflight non mutante
PREFLIGHT_DEVELOPMENT_ONLY; non esiste più un apply remoto scollegato dalla
release.