carlos / platform Public

woodstar runbook: D5 PDS rollout executed — fan-out carries the pds host; two platform catches filed

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LMx3RXuQFZM3yGe2BBhZBH
Paul Campbell 34e38a854d597d27571b0c2d38e55eb5ad5bf904 parent 7a4356d
1 file changed, +17 −6
  • docs/superpowers/plans/2026-08-16-woodstar-cutover-runbook.md +17 −6
diff --git a/docs/superpowers/plans/2026-08-16-woodstar-cutover-runbook.md b/docs/superpowers/plans/2026-08-16-woodstar-cutover-runbook.md
index cfb4fa573..cc0a1cf98 100644
--- a/docs/superpowers/plans/2026-08-16-woodstar-cutover-runbook.md
+++ b/docs/superpowers/plans/2026-08-16-woodstar-cutover-runbook.md
@@ -383,12 +383,23 @@ the delegation CNAME.)
## D5 — Post-cutover (spec §9 + the #77 ruling)
- [ ] Promote the W0 sha to stable after the 72 h supply-chain bake.
-- [ ] **PDS prod rollout (woodstar's own project, on CARLOS):** app
- `woodstar-atbridge` + `pds.woodstar.app` exact route via the door;
- a woodstar PR adding the relay fan-out `-atbridge-upstream` (`/at/*`
- leg) and moving wildcard atproto-did apbridge→atbridge;
- `atbridge.db` into litestream + `atbridge.seed` into the backup set.
- Wildcard DNS already covers the pds hostname.
+- [x] **PDS prod rollout — EXECUTED 2026-08-17 late evening** (the
+ woodstar session): sha `3445d51` on all seven apps; woodstar PRs #80
+ (`-atbridge-upstream`, `/at/*` leg, atproto-did repoint with an
+ apbridge fallback) and #81 (the pds host rides the fan-out leg
+ wholesale — **no exact pds route needed**, the wildcard catch-all +
+ relay carries it; an exact route can still take over later).
+ atbridge = tenant unit on 8457 (real AT Proto network); litestream +
+ seed backup in place; verified through the edge incl. firehose WS
+ and the WebKit console check. TWO CATCHES for the platform: (a) the
+ console-created instance materializes the managed socket shape
+ (hibernate + socket, no addr/unit) and box-side remove+add is
+ reconciled away while console `route -unit` refuses console-declared
+ instances — the catch-2 config-delivery gap again, now for
+ unit-backed tenant instances; (b) `carlos deploy`'s health watch
+ reads a root-404 service (media & friends answer 404 at `/` by
+ design) as "the app is failing" — needs a health path or a
+ status-range option.
- [ ] Repoint status publishing: `carlos ship -kind static` + promote
replaces `scripts/status-publish.sh`.
- [ ] Note woodstar `infra/` tofu drift; retire the old prod instance