docs: deploy reality — seconds-to-live convergence, console restart caveat (#110)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 file changed,
+17
−1
CLAUDE.md+17 −1
diff --git a/CLAUDE.md b/CLAUDE.md| index 75dbdc449..78fbb0c81 100644 |
| --- a/CLAUDE.md |
| +++ b/CLAUDE.md |
| @@ -89,7 +89,7 @@ deliver or verify its result. |
| console; a logged-in laptop running `go test ./...` minted 40+ real accounts |
| on the production console before this was isolated. |
| -## Deploy reality (2026-08-02) |
| +## Deploy reality (2026-08-02; convergence rewritten 2026-08-08) |
| - Flagship (keymail AWS acct): console, kass, keymail, platform-site. Ship via |
| `scripts/ship-app.sh` / `promote-app.sh` in the pinfra checkout — the signing |
| @@ -97,3 +97,19 @@ deliver or verify its result. |
| - Tito production is self-hosted CARLOS on `carlos-tito-ie` (titogo AWS acct). |
| - keymail.dev deploys via `carlos ship`/`promote` (account `bae`), NOT via its |
| repo's legacy `deploy/deploy.sh` — see that repo's CLAUDE.md. |
| +- **Since main 1fba18f (PR #108, live both boxes 2026-08-08): convergence is |
| + seconds, not ticks.** Console-mediated writes bump `control/serial`; boxes |
| + poll it at 2s and run the full pass set. Direct-bucket promotes (pinfra |
| + scripts) don't bump but canary/* channels are name-scoped fast anyway. |
| + Blocked stages relay to a root pass (`carlos-stage.path` — must be armed; |
| + update-platform-binary.sh does it). `carlos deploy` is the member one-command |
| + form: ship → promote → wait until `X-Carlos-Version` on the URL reports the |
| + shipped build over 2xx. Verify deploys with that header (`curl -sI |
| + --resolve`), never a cached answer. |
| +- **Consoles still need their manual restart** (`systemctl restart |
| + console.service`, both boxes): they are addr-backed routes with bespoke |
| + units, which the adopt pass's restart dispatch cannot cycle — and until the |
| + restart, the route-table header claims the adopted build while the old |
| + process serves (issue #110). Promote → adopt (seconds now) → restart, as |
| + ever, for console-style routes; ordinary unit/exec tenants restart |
| + themselves. |