Vai al contenuto

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.