SLICE-4 (part 1): deploy contract — versioned health, backend-served SPA, SmtpMailer + honest 502 (SD-0001 §7.2) #10

Merged
ben.stull merged 5 commits from slice-4-deploy-contract into main 2026-06-11 06:36:27 +00:00
Owner

The code half of SLICE-4, making ecomm deployable by flotilla-core's 9-phase gesture:

  • VERSION (0.4.0) + /healthz reports it — the §8.1 verify contract (the deploy pin checks out tag v<VERSION>).
  • Backend serves frontend/dist with SPA fallback (deployed nginx proxies everything to uvicorn; dev unaffected — mount skipped when dist absent).
  • SmtpMailer (STARTTLS relay, ECOMM_SMTP_* config per INV-8) — logs only a hashed recipient (§6.6 log hygiene).
  • Closes #7: request_code sends BEFORE commit — a refused delivery rolls back (no orphan code, no tripped cooldown) and surfaces 502 delivery_failed (INV-9). The SignIn screen already renders this state.
  • docs/BOOTSTRAP.md PPE runbook (suite-run provisioning incl. the new launch-app provision-datastore — engineering#46/#47 — Cloud SQL per D-7/D-8).

Gate green: 68 backend tests + frontend typecheck/build/vitest. Provisioning + the PUC-11 rehearsal follow as operator gestures (session 0024).

🤖 Generated with Claude Code

The code half of SLICE-4, making ecomm deployable by flotilla-core's 9-phase gesture: - `VERSION` (0.4.0) + `/healthz` reports it — the §8.1 verify contract (the deploy pin checks out tag `v<VERSION>`). - Backend serves `frontend/dist` with SPA fallback (deployed nginx proxies everything to uvicorn; dev unaffected — mount skipped when dist absent). - `SmtpMailer` (STARTTLS relay, `ECOMM_SMTP_*` config per INV-8) — logs only a hashed recipient (§6.6 log hygiene). - **Closes #7**: `request_code` sends BEFORE commit — a refused delivery rolls back (no orphan code, no tripped cooldown) and surfaces `502 delivery_failed` (INV-9). The SignIn screen already renders this state. - `docs/BOOTSTRAP.md` PPE runbook (suite-run provisioning incl. the new launch-app `provision-datastore` — engineering#46/#47 — Cloud SQL per D-7/D-8). Gate green: 68 backend tests + frontend typecheck/build/vitest. Provisioning + the PUC-11 rehearsal follow as operator gestures (session 0024). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
ben.stull added 5 commits 2026-06-11 06:36:26 +00:00
ben.stull merged commit 8a2ec24d86 into main 2026-06-11 06:36:27 +00:00
Sign in to join this conversation.