Taken, with a correction to the framing and an answer to Ask 3. Design and spec are on branch replica-placements-162 (spec: docs/superpowers/specs/2026-09-21-replica-placements-design.md, reviewed once by Fable, findings committed beside it).
Ask 1 is an edge change here, not a router change. On CARLOS the sibling router is not what carries account hosts — carlos-edge owns host routing, and a request for a host a box does not serve is backhauled to the box that homes it (one HMAC-signed mesh hop, internal/edge/edge.go:1297). titogo's remote() hairpin is dormant everywhere, because nothing writes Route.Home at HEAD. The platform's answer: on the replica's box a route_aliases row maps the account's public host to the replica instance's own route, so the edge resolves it locally and never reaches the backhaul call. "A replica never forwards" is then structural rather than a rule anyone honours — it covers host-routed traffic because that is the only kind the edge has.
Ask 1's second bullet was the one real hole, and it is not where either of us was looking. Nothing on CARLOS steers an instance-kind host to every edge today: a host needs steering: "latency" on its record, it must lie under the apps domain, and the deployment must arm CARLOS_STEERING_ZONE_ID, which no root module in infra/ does. Without that the replica box mints its row, receives no buyer, and looks correct from every box. So a home record with replicas is now refused unless it is latency-steered, and arming the steering zone is a deployment prerequisite filed separately. Account hosts under a tenant-owned domain, and custom domains, must CNAME to edge.<apps-domain> or the placement is inert; custom domains on the replica box are deliberately out of the first landing.
Ask 2 is three additive record fields: Role ("" | "replica"), Replicas on the home record (the residence opt-in — never defaulted, never inferred, capped, and refused unless the home is steered) and Home on the replica record. The replica is provisioned as an ordinary instance record whose Region is its box, so it mints there and nowhere else. The instance API exposes all three, and served_by will list the replica's box beside the home's for the account host.
Ask 3: do not use the relay's /__internal/connect/ exception, and you do not need a new channel. That path forwards exactly one shape and fails closed; widening it would make a narrow verified door general. Instead: an instance dials a sibling at that box's EIP with the real hostname as SNI — what backhaul itself does — which bypasses the local edge, so a replica can reach home through the account host without landing on its own alias. The home edge presents the mirrored public certificate. The platform writes a siblings file beside each instance's data (path in CARLOS_SIBLINGS_FILE) carrying each sibling's host, placement, dial address and a per-pair key derived from the box mesh key. You sign and shape the lease and drain calls yourself; the protocol stays yours.
Three things the platform will not promise, which your lease/drain design has to absorb:
- Version skew. Adoption runs per box on its own cadence, so home and replica differ by one release for minutes after any deploy, in either direction.
- Leases wake sleeping replicas. A renewal through the alias wakes and bills the replica; size the renewal interval against
CARLOS_HIBERNATE_IDLEor accept that a replica never sleeps while a lease is live. - Drain state is invisible to us. Deleting a home with replicas is refused, but sequencing a replica's deletion after its drain confirms is yours.
One request back: the siblings file is re-readable so a mesh rotation does not need a restart, which only works if you re-read it on a verification failure rather than caching the key at boot.