What's Changed
- chore(docs): regenerate telemetry api-docs (unblocks Deploy → Vercel) by @blove in #377
- docs(chat): explain the dual ensureChatRootStyles path (unblocks demo redeploy) by @blove in #379
- chore: rename aimock-harness → e2e-harness; chat aimock-e2e → angular/e2e by @blove in #378
- feat(c-a2ui): LLM-driven aviation booking form (PR 4 of 4) by @blove in #380
- feat(gtm): Spec 2 — positioning & risks (hero + /contact + risk-cleanup sweeps) by @blove in #381
- feat(examples-chat): welcome suggestions — 3 chips + overflow dropdown by @blove in #383
- fix(cockpit): render docs markdown blocks by @blove in #384
- fix(licensing): remove token tamper flake by @blove in #385
- [codex] Restore production smoke spec by @blove in #386
- Add telemetry data quality guardrails by @blove in #387
- feat(gtm): Spec 4 — cockpit activation recipes (try-this-prompt suggestions) by @blove in #388
- [codex] Align cockpit e2e workflow targets by @blove in #389
- [codex] Refresh generated chat API docs by @blove in #390
- ci: tighten workflow foundation by @blove in #392
- fix(ci): stabilize production primitive smoke by @blove in #391
- ci: skip dependency setup for irrelevant checks by @blove in #393
- ci: scope pull request jobs by changed paths by @blove in #394
- Add live telemetry quality checks by @blove in #395
- fix(ci): give planning smoke enough time by @blove in #397
- feat(c-per-cap): standalone backends — nx serve + dev env cleanup by @blove in #396
- fix(ci): extend a2ui production smoke timeout by @blove in #398
- feat(chat-sidenav): polish — icon rail collapsed, footer slots, primary/secondary CTA pills by @blove in #399
- Schedule live telemetry quality checks by @blove in #400
- fix(ci): install deps for examples deploy by @blove in #401
- ci: derive pull request scope from project metadata by @blove in #402
- fix(ci): align cockpit chat e2e wiring by @blove in #403
- Smoke canonical demo runtime telemetry by @blove in #405
- fix(a2ui): version label v0.9 → v1 to match canonical protocol by @blove in #404
- fix(e2e): avoid live model wording assertions by @blove in #407
- fix(test): mark legacy cockpit e2e specs manual by @blove in #406
- fix(ci): stabilize production smoke verifier by @blove in #408
- feat(website): /blog infrastructure + streaming-chat pillar post (Spec 5) by @blove in #410
- Chat-surface polish: featured chip, scroll fade, actions padding by @blove in #409
- feat(c-a2ui): select-flight confirmation surface by @blove in #411
- Sidenav button treatment: monochrome alignment with chat-input by @blove in #412
- feat(cockpit-registry): tier A — migrate 6 caps to per-cap backends by @blove in #413
- Fix website lint on main by @blove in #415
- Polish pass 2: sidenav radius + More prompts match featured chip by @blove in #414
- Polish pass 3: drop left-accent bar, restyle Archived as nav item by @blove in #416
- feat(marketing): scaffold marketing/ umbrella + cowork migration + voice synthesis by @blove in #418
- feat(cockpit-registry): migrate c-generative-ui to per-cap backend by @blove in #417
- [codex] Move chat protocol e2e under example by @blove in #419
- feat(c-interrupts): real interrupt() wiring via book_flight tool by @blove in #382
- [codex] Align chat smoke checklist with root env by @blove in #420
- [codex] Remove chat protocol e2e target by @blove in #423
- Polish pass 4: message overlap, fonts, header line, dropdown width by @blove in #422
- feat(cockpit-registry): migrate c-interrupts to per-cap backend by @blove in #421
- feat(cockpit-registry): migrate c-a2ui to per-cap backend (last cap migration) by @blove in #424
- Use readonly PostHog key in CI by @blove in #426
- Explicitly opt CI installs out of telemetry by @blove in #427
- fix(c-generative-ui): first-turn populates dashboard + plan_tools commits to actions by @blove in #428
- Filter CI install context from package telemetry by @blove in #429
- Remove install context from package telemetry by @blove in #431
- [codex] Integrate chat debug into sidenav footer by @blove in #430
- feat(deploy): route shared-dev manifest through per-cap dirs for all caps (umbrella cleanup PR 1/2) by @blove in #432
- feat(marketing/channels): X adapter (OAuth 2.0, threads, media) + shared infra by @blove in #425
- [codex] align chat e2e with smoke checklist by @blove in #433
- fix(ci-scope): trigger cockpit_e2e for per-cap python + deploy script + add render python project.jsons by @blove in #434
- feat(marketing/channels): Dev.to adapter by @blove in #435
- refactor(c-generative-ui): agentic loop with canonical surface-delivery (v2) by @blove in #436
- chore(cockpit-streaming): delete now-dead duplicate c-* graph source (umbrella cleanup PR 2/2) by @blove in #437
- docs: correct website docs drift by @blove in #439
- fix(c-generative-ui): three polish followups (flat args, loop cap, chip text) by @blove in #440
- docs: correct Agent LangGraph docs drift by @blove in #441
- Demo top toolbar polish: chat-select swaps, monochrome buttons, token cleanup by @blove in #438
- [codex] Minimize production smoke canary by @blove in #442
- test(c-interrupts): aimock phase 2 — confirm + cancel booking flows by @blove in #443
- Toolbar tighten: drop labels + New conversation, right-align fields, fix dropdown z-index by @blove in #444
- feat(cockpit-chat): welcome chips backed by recorded aimock prompts (c-tool-calls, c-subagents, c-interrupts) by @blove in #445
- fix(chat): scope tool-call rendering per-message + style genui demo views by @blove in #446
- demo: A2UI label, sidebar auto-open, flex modes + e2e fixes by @blove in #448
- chore(cockpit): unify render + deep-agents cap prefixes (r-* / da-*) by @blove in #449
- [codex] Migrate deployment domain to ThreadPlane by @blove in #447
- test(examples-chat): fix no_fixture_match for contact-form welcome chip by @blove in #451
- feat(cockpit-registry): add ag-ui product type + register ag-ui-streaming demo by @blove in #450
- [codex] Audit ThreadPlane domain migration and lead forms by @blove in #452
- [codex] Fix marketing page SEO metadata by @blove in #453
- feat(c-a2ui): Modify search prefills form with prior submit context by @blove in #454
- Demo: full-width top toolbar + forward chatWelcomeSuggestions to sidebar/popup by @blove in #455
- Sidebar mode: enable pushContent so the panel pushes content left by @blove in #456
- docs: examples/chat/python dead-code audit (Task #3) by @blove in #457
- Update ThreadPlane positioning tagline by @blove in #458
- fix cockpit content asset tracing by @blove in #459
- Fix shared deployment smoke assistant ids by @blove in #460
- fix(chat): suppress duplicate typing-indicator while bubble streams; add c-a2ui welcome chips by @blove in #461
- chat-sidebar header + [showModelPicker] API + narrow welcome overflow fix by @blove in #463
- fix(chat): synthesize human-readable label for A2UI action user bubbles by @blove in #464
- fix(chat-welcome): apply suggestions gap one level down for wrapped chips by @blove in #465
- fix(cockpit-chat): render messages in c-messages + c-input primitive demos by @blove in #466
- fix(c-a2ui): seed booking form origin/dest from prompt to ensure happy path by @blove in #467
- fix(chat-checkpoint-marker): close hover-bridge gap so Rewind/Fork stay reachable by @blove in #468
- docs(adapters): integrate thread-loading design into existing guides by @blove in #470
- ci(cockpit-e2e): matrix-per-cap + submitAndWaitForResponse helper (Task #14) by @blove in #469
- feat(chat)!: remove per-message checkpoint marker; flatten chat-message rendering by @blove in #471
- feat: aimock scaffold generator + helper consolidation (Task #15) by @blove in #472
- test(c-messages): add aimock e2e (Task #4 pilot slice 1) by @blove in #473
- feat(chat + c-a2ui): LLM-generated labels — thread titles + drop KNOWN_LABELS by @blove in #474
- Mobile sidenav scrim + drawer elevation + z-index tokens by @blove in #477
- test(cockpit-chat): aimock e2e for input/threads/timeline/theming (Task #4 batch) by @blove in #476
- docs(cockpit-chat): c-debug skip doc + record scripts for c-generative-ui/c-a2ui by @blove in #478
- test(cockpit-chat): aimock e2e for c-generative-ui + c-a2ui (Task #4 final chat slice) by @blove in #479
- feat(website): homepage refresh — positioning, hero, Why this exists, footer by @blove in #475
- test(cockpit-langgraph): aimock e2e for 7 remaining langgraph caps (Task #4) by @blove in #482
- docs(cockpit-render): aimock e2e not applicable + per-cap port alignment by @blove in #483
- test(cockpit-deep-agents): aimock e2e for all 6 caps (Task #4 final product line) by @blove in #484
- fix(chat): rename chat-sidenav-scrim output close → dismiss by @blove in #485
- feat(c-threads): real SDK-backed threads + inline title generation by @blove in #481
- feat(langgraph): hoist threads adapter + Client helper out of demos by @blove in #488
- Responsive: drawer breakpoint, header/footer padding symmetry, panel top alignment by @blove in #480
- test(c-subagents): delete legacy orphan e2e spec by @blove in #489
Full Changelog: v0.0.35...v0.0.46