# Amboras evidence generated: 2026-09-05T16:12:15+00:00 host: edward booted: 2026-08-16 23:20:22 commit: df7495692535096bb72af1737f0189f2e228ffcc (2026-09-05T16:12:14+00:00 Hero prompts never quote copy; inventory rule + typographic tiles; public evidence page) working tree: 0 uncommitted change(s); origin/main: df74956 ## bin/gates.sh (the seven build-brief gates + Wave 2 checks) == Gate 1 infra PASS psql connects PASS redis PING=PONG PASS pg+redis loopback only == Gate 2 medusa PASS admin UI /app HTTP 200 PASS store API product: Medusa Shorts == Gate 3 spec-service PASS create tenant gate-probe HTTP 409 (201 new / 409 exists: one probe tenant, never one per run) PASS v5 round-trips canonically identical PASS v6 live (live=6), v5 unchanged == Gate 4 renderer PASS a: Northwind Goods — Everyday things, made well / b: <title>VOLTLINE — Training apparel differ PASS all six block types render on a PASS real Medusa products on a (4 cards) == Gate 5 agent PASS newest successful agent build: orbit-books (5 products) PASS storefront renders 5 products (any variant), palette vars=3, images=5 == Gate 6 exposure PASS public console asks for auth (HTTP 401) PASS public storefront orbit-books HTTP 200 PASS medusa admin NOT reachable off-box (got '000') == Gate 7 persistence PASS 4 units enabled=4 active=4, linger=yes PASS compose restart policy unless-stopped x2 == Wave 2 (layout variants · testimonial integrity · revision) PASS legacy social_proof renders the sample-content marker on a (block=1 text=2) PASS ethiopia and orbit-books home skeletons differ ethiopia: hero/split > product_grid/ledger > pull_quote/banner > rich_text/note orbit-books: offer_bar/strip > hero/full_bleed > product_grid/ledger > pull_quote/banner > faq/plain PASS no invented attributions on the two agent stores PASS reviews endpoint answers HTTP 200 PASS newest revision: ethiopia v3 -> v4, base still readable (HTTP 200) (variant exhaustiveness is a build-time property: run bin/probe-variant-exhaustiveness.sh) GATES: 23 passed, 0 failed exit=0 ## bin/probe-variant-exhaustiveness.sh (an unimplemented layout variant must fail the renderer build) PASS unimplemented variant fails the renderer typecheck: src/components/blocks/Hero.tsx(57,26): error TS2345: Argument of type '"unimplemented_probe"' is not assignable to parameter of type 'never'. exit=0 ## platform.tenant_live (live set: join table with weights, not a single pointer) Table "platform.tenant_live" Column | Type | Collation | Nullable | Default -----------+--------------+-----------+----------+--------- tenant_id | uuid | | not null | spec_id | uuid | | not null | weight | numeric(6,4) | | not null | 1.0000 Indexes: "tenant_live_tenant_id_spec_id_pk" PRIMARY KEY, btree (tenant_id, spec_id) Foreign-key constraints: "tenant_live_spec_id_store_specs_id_fk" FOREIGN KEY (spec_id) REFERENCES platform.store_specs(id) "tenant_live_tenant_id_tenants_id_fk" FOREIGN KEY (tenant_id) REFERENCES platform.tenants(id) rows: a v2 weight=1.0000 b v1 weight=1.0000 ethiopia v4 weight=1.0000 gate-21433 v2 weight=1.0000 gate-23566 v2 weight=1.0000 gate-23591 v2 weight=1.0000 gate5-1433 v1 weight=1.0000 gate-probe v6 weight=1.0000 noimg v1 weight=1.0000 orbit-books v4 weight=1.0000 smoke v1 weight=1.0000 ## platform.store_specs (append-only: the service has no UPDATE/DELETE path for versions) Table "platform.store_specs" Column | Type | Collation | Nullable | Default ------------+--------------------------+-----------+----------+------------------- id | uuid | | not null | gen_random_uuid() tenant_id | uuid | | not null | version | integer | | not null | spec | jsonb | | not null | created_by | text | | not null | note | text | | | created_at | timestamp with time zone | | not null | now() Indexes: "store_specs_pkey" PRIMARY KEY, btree (id) "store_specs_tenant_version_uq" UNIQUE CONSTRAINT, btree (tenant_id, version) Foreign-key constraints: "store_specs_tenant_id_tenants_id_fk" FOREIGN KEY (tenant_id) REFERENCES platform.tenants(id) Referenced by: TABLE "platform.tenant_live" CONSTRAINT "tenant_live_spec_id_store_specs_id_fk" FOREIGN KEY (spec_id) REFERENCES platform.store_specs(id) grep for update/delete on store_specs in the service layer: none ## version ledger, agent-built stores ethiopia: v4 live=true 2026-09-05T15:49:11.188Z agent-worker agent revision; 0 product(s) added, 2 page(s) v3 live=false 2026-09-05T15:45:33.653Z agent-worker agent publish; 4 product(s), 2 page(s) v2 live=false 2026-09-05T15:16:52.025Z agent-worker images: 4 products, 2 hero v1 live=false 2026-09-05T02:11:53.383Z agent-worker agent publish; 4 product(s), 2 page(s) orbit-books: v4 live=true 2026-09-05T16:10:45.311Z agent-worker agent publish; 5 product(s), 2 page(s) v3 live=false 2026-09-05T15:47:25.434Z agent-worker agent publish; 5 product(s), 1 page(s) v2 live=false 2026-09-05T15:17:13.044Z agent-worker images: 5 products, 2 hero v1 live=false 2026-09-05T03:00:32.341Z agent-worker agent publish; 5 product(s), 2 page(s) ## Zod rejection (spec-service must answer 422 to an invalid document, nothing stored) HTTP 422; versions before=4 after=4; detail: ✖ Too small: expected array to have >=1 items → at pages ✖ a page with slug "home" is required (it renders at /) ## cross-tenant cart isolation (a cart on ethiopia's sales channel, presented to orbit-books via the same cookie) cart cart_01M1S5F9B12M0R8MDM2NX4TEY5 (channel sc_01M1QN9XB69Y9RRXTW342NXKQS): ethiopia /cart HTTP 200; orbit-books /cart HTTP 404; orbit-books /checkout HTTP 404 (expected 200 / 404 / 404) ## secret sweep by VALUE across the whole git history (counts, never values) ANTHROPIC_API_KEY (len 108): 0 occurrence(s) in history RECRAFT_API_KEY (len 64): 0 occurrence(s) in history POSTGRES_PASSWORD (len 48): 0 occurrence(s) in history MEDUSA_PUBLISHABLE_KEY (len 67): 0 occurrence(s) in history JWT_SECRET (len 64): 0 occurrence(s) in history COOKIE_SECRET (len 64): 0 occurrence(s) in history MEDUSA_ADMIN_PASSWORD (len 20): 0 occurrence(s) in history CONSOLE_BASIC_AUTH_PASSWORD (len 16): 0 occurrence(s) in history tracked .env files: 0 ## listeners (only the renderer may be non-loopback) State Recv-Q Send-Q Local Address:Port Peer Address:PortProcess LISTEN 0 4096 127.0.0.1:15432 0.0.0.0:* LISTEN 0 4096 127.0.0.1:16379 0.0.0.0:* LISTEN 0 511 127.0.0.1:4101 0.0.0.0:* LISTEN 0 511 127.0.0.1:4100 0.0.0.0:* LISTEN 0 511 100.111.71.48:4102 0.0.0.0:* ## units + linger amboras-commerce: enabled=enabled active=active amboras-spec-service: enabled=enabled active=active amboras-renderer: enabled=enabled active=active amboras-agent-worker: enabled=enabled active=active timers: amboras-backup.timer amboras-evidence.timer linger: yes ## public exposure console https://amboras.phillyshell.cloud/ -> HTTP 401 (401 = basic auth) medusa admin :4100 from another tailnet host -> HTTP '000' (000 = connection refused, expected)