From f73576f885d6795024eb6348119a0a8581d6c9cc Mon Sep 17 00:00:00 2001 From: Brian Love Date: Wed, 26 Aug 2026 12:20:22 -0700 Subject: [PATCH] =?UTF-8?q?feat(website):=20finish=20the=20medium=20switch?= =?UTF-8?q?er=20=E2=80=94=20Render,=20Ship,=20and=20live=20tabs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Completes the switcher across all four homepage sections. Render and Ship gain video and code tabs, and every section gains a Live tab that frames the real demo opened on that section's own scenario. Two new clips, recorded against aimock fixtures so a recut reproduces frame-for-frame: - Render — the agent emits a spec and a real contact form mounts as Angular components, `render_a2ui_surface` visible in the tool call. - Ship — a rich markdown answer, then a page reload, and it all comes back. Durability was initially judged unwatchable; it is exactly watchable, and it is the claim that section makes. The live tab uses `?featured=` (merged in #832) so each section opens the demo on its own curated scenario instead of the same empty chat under four headings. `section-media.spec.ts` gains the guard that matters here: it reads the DEMO's actual suggestion list off disk and asserts every `live.featured` id exists there. `?featured=` falls back silently for an unknown id, so a typo would quietly turn a live tab back into the generic demo with nothing else failing. Mutation-tested — a one-character typo fails with `approve -> approve-before-a-destructiv: expected [...] to include`. The active-pane-only guarantee holds at full scale, which was the spec's main technical risk. The built homepage carries 4 tablists, **4** `