carlos / platform Public

Merge pull request #111 from carlosframework/carlos-deploy-docs

docs: deploy reality — seconds-to-live convergence, console restart caveat
Paul Campbell 7a3d8c155d399baa464b15c7940eded03bd92b85 parent 1fba18fparent dd2ebec
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.