carlos / platform Public

plan: T1 region source re-ruled — AWS region via IMDS + CARLOS_AWS_REGION override, never the placement code (review catch)

Paul Campbell pushed by paul@keymail.dev 89b891b961347594987aa508df13cb4aa77f8e04 parent 8bd84c6
1 file changed, +10 −2
  • docs/superpowers/plans/2026-08-23-multi-region-steering.md +10 −2
diff --git a/docs/superpowers/plans/2026-08-23-multi-region-steering.md b/docs/superpowers/plans/2026-08-23-multi-region-steering.md
index 2bb55264a..5a292f43f 100644
--- a/docs/superpowers/plans/2026-08-23-multi-region-steering.md
+++ b/docs/superpowers/plans/2026-08-23-multi-region-steering.md
@@ -91,8 +91,16 @@ zones are Route53 — dated spec note in Task 8).
**Interfaces:**
- Produces: the edges-file schema gains `"region":"<aws-region>"`
- (omitempty; value = `CARLOS_REGION` env, empty when unset) — Task 4's
- converger requires it for latency records. `edgesFileLoop` seeds its
+ (omitempty). **RULED (controller, 2026-08-23, superseding the original
+ sketch):** the value is the AWS region (e.g. `eu-west-1`), NOT
+ `CARLOS_REGION` (which is the CARLOS placement code, `ie` — Task 1's
+ review caught the mismatch). Source: IMDS at loop arm
+ (`/latest/meta-data/placement/region`, same token idiom as
+ `readPublicIP`), overridden by `CARLOS_AWS_REGION` when set (testing /
+ non-EC2). Empty on non-EC2 boxes → such an edge is unarmed for
+ steering, which is correct (health checks target EIPs). Task 4's
+ armed gate additionally validates the AWS-region pattern
+ (`^[a-z]{2}(-[a-z]+)+-\d$`), never just non-empty. `edgesFileLoop` seeds its
change-gate from the bucket at arm.
- [ ] **Step 1: failing tests** — (a) seed: pre-populate the fake store