carlos / platform Public

docs: rails-poc spec — record on-box verification results (queue proof, real pages)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Paul Campbell pushed by paul@keymail.dev ac4fd76811db8a0ca5f961b9a8010bd56b0fc6d2 parent 31224a5
1 file changed, +21 −0
  • docs/superpowers/specs/2026-08-11-rails-behind-carlos-edge-poc-design.md +21 −0
diff --git a/docs/superpowers/specs/2026-08-11-rails-behind-carlos-edge-poc-design.md b/docs/superpowers/specs/2026-08-11-rails-behind-carlos-edge-poc-design.md
index c84ddc170..e4f594543 100644
--- a/docs/superpowers/specs/2026-08-11-rails-behind-carlos-edge-poc-design.md
+++ b/docs/superpowers/specs/2026-08-11-rails-behind-carlos-edge-poc-design.md
@@ -212,6 +212,27 @@ host-authorization gap (classic 403, pro 404) is still open and is what
blocks this route shape from serving a real page today — the PoC proved
the plumbing, not a finished path to production traffic.
+**2026-08-11, later — two verification items closed on-box:**
+
+- **Shared-queue replica behavior (Verification item 4): proven for Pro,
+ organically.** The pro box's sidekiq processed 35 real staging jobs in
+ one observed hour (`ScheduledTasks::ExpireUnfulfilledAllocationsWorker`,
+ real JIDs in journald) — enqueued into the shared staging Redis by
+ Pro's own sidekiq-enterprise cron and won by the box worker in
+ competition with the k8s workers. Classic's staging queues were quiet
+ over the same window, so its half still wants a deliberate enqueue.
+- **Real-page serving: both apps serve correct full responses from the
+ boxes** when addressed by a hostname they already know (curl on-box
+ with `Host:` + `X-Forwarded-Proto: https`, exactly what the edge
+ forwards): `staging.pro.tito.io` → 200 with the real Tito Pro page;
+ `staging.tito.io` → 301 to canonical `staging.ti.to`;
+ `dashboard.staging.tito.io` → 302 into its SSO login flow. The 403/404
+ on the edge hostnames is therefore ONLY hostname configuration
+ (Classic's host allowlist; a Pro tenant/alias for the hostname), not a
+ serving gap — the remaining decision is which hostnames the parallel
+ deployment should answer to, which is a migration-design question, not
+ an infrastructure one.
+
## Out of scope
- Any platform code change (release kinds, primitives) — the PoC is