Changelog
1.19.0 (2026-03-28)
Features
- simplify session review workspace (35b6b4a)
1.18.0 (2026-03-28)
Features
- redesign landing page narrative (3fe6b37)
Fixes
- sync landing cli examples with docs (11743be)
1.17.0 (2026-03-27)
Features
Fixes
- render evidence timeline as plain text stream (#172) (980510e)
- tighten marketing page spacing and typography (#179) (27fe0ef)
- tighten overview page layout (#174) (020bad1)
1.16.0 (2026-03-27)
Features
Fixes
- cancel auto-generated response before triggering greeting (#166) (98826de)
- remove pill-shaped action buttons (#178) (d252ff7)
1.15.2 (2026-03-27)
Fixes
1.15.1 (2026-03-26)
Fixes
1.15.0 (2026-03-26)
Features
1.14.1 (2026-03-26)
Fixes
- STS greeting follows study system prompt instead of generic fallback (96a62d1)
1.14.0 (2026-03-26)
Features
- widget promo system — study-driven attractor cards (afbff17)
1.13.0 (2026-03-26)
Features
- context-aware widget — landing demo + dashboard feedback (60c0616)
1.12.6 (2026-03-26)
Fixes
- move signal review actions into detail view (#161) (7b66894)
1.12.5 (2026-03-26)
Fixes
1.12.4 (2026-03-26)
Fixes
1.12.3 (2026-03-26)
Fixes
1.12.2 (2026-03-26)
Fixes
1.12.1 (2026-03-26)
Fixes
- polish signals filters and selection controls (#148) (fa81d4b)
1.12.0 (2026-03-26)
Features
- improve signal filtering and move session metadata below playback (#145) (8b237e5)
1.11.3 (2026-03-26)
Fixes
1.11.2 (2026-03-26)
Fixes
1.11.1 (2026-03-26)
Fixes
1.11.0 (2026-03-26)
Features
1.10.2 (2026-03-25)
Fixes
- restore router-based signal detail navigation (#133) (4b72832)
1.10.1 (2026-03-25)
Fixes
- preserve study-directed resume hints after soft navigation (#137) (aeb32b1)
1.10.0 (2026-03-25)
Features
- add beta disclaimer below landing header (f7973a7)
- add DCR management endpoints and complete Phase 1 lifecycle (0d8fce9)
- add loader-based auth gating for ssr (aacdaa6)
- add npm run ci (typecheck + lint + test + build:all) (b9b80d9)
- add OAuth dynamic client registration (Phase 1 foundation) (c0237dd)
- add PatchRelay hooks, remove merge_group trigger (7fd95a3)
- add resumed assistant continuity context (2329759)
- add route metadata coverage for start routes (ce40673)
- add signal review workflow with review_status state machine (#85) (0618111)
- add usertold extract CLI for offline extraction (#83) (71c1630)
- add worker-side dynamic app ssr (ecadc8f)
- agents: add StudyPlanningAgent via Cloudflare Agents SDK (ec6e9d7)
- agents: implement multi-turn tool loop and create_study tool (dc1447a)
- analytics: add context tool handlers for agentic extraction (df8b0c2)
- analytics: add extractAndStoreSignalsFromStorage helper + ExtractionAgent (b928e08)
- analytics: add Responses API client wrapper (03a2d85)
- analytics: add SessionProcessingAgent with alarm-based step orchestration (9cbd925)
- analytics: persist accessibility snapshots for signal extraction (af43c49)
- analytics: two-stage agentic signal extraction for usability studies (2bf67ff)
- analytics: upgrade extraction to GPT-5.2 via Responses API (f9214a2)
- analytics: wire queue handler to SessionProcessingAgent (81475ff)
- auth: add /connect post-onboarding agent setup page (9aef879)
- auth: add resilient linear org prefill with displayName fallback (277d53d)
- auth: add Sign in with Linear with auto workspace connection (45b69ec)
- auth: harden DCR controls and add registration kill-switch (7f9b6d6)
- auth: implement refresh_token grant with token rotation (efc5427)
- auth: rebrand CLI OAuth callback pages with design tokens (9275cfa), closes #3
- auth: redesign onboarding as two-step card flow with full a11y (7534af6)
- auth: use GitHub login as org handle suggestion on GitHub sign-in (3bf98e0), closes #1
- auto-push ready tasks to providers (3ef5cbe)
- billing: add stage Polar product IDs, deduplicate pack definitions (dade101)
- capture coherent document transition telemetry (ed8287d)
- changelog: add in-app changelog page (95de022)
- CIT extraction prompt + expanded signal types (#79) (501f49e)
- cli: add --version / -v flag (199222d)
- cli: add project signal-health, study review-script, and signal bulk ops (e0e7fdd)
- cli: add shell completions, --dry-run, and exit code docs (62a1279)
- cli: agent-friendly polish — introspect, JSON errors, compact help (1ab276f)
- complete USE-5 resume recovery flow (f4595c6)
- dashboard: clarify onboarding UX and SetupChecklist hierarchy (a419f04)
- docs: agent-native markdown serving with single-source registry (ccc2496)
- docs: Vary/Link headers for content negotiation + canonical URLs (165197b)
- enforce PKCE S256 and scope constraints for dynamic clients (Phase 2) (7d1f81d)
- finish USE-10 widget recovery coverage (08be4b3)
- harden MCP endpoint and support JSON-RPC batch requests (0bc50d3)
- improve linear task handoff (ec7c8c5)
- linear: add Linear OAuth and task push integration (0de3c3e)
- linear: encrypt tokens at rest, auto-register webhook on OAuth, settings UI (9f1e506)
- loops: implement Tier 1 foundations — signals, vectors, and provider sync (d4bf5ea)
- loops: implement Tier 2 — signal consolidation and MCP search tools (db6c2c5)
- mcp: add project CRUD tools and soft-delete (37d327a)
- mcp: add sessions.get_processing_status tool (50e09ee)
- mcp: add signals.get, tasks.get_evidence, tasks.merge tools (9be1589)
- mcp: add studies.get, studies.delete, screeners.get tools (c1818ff)
- migrate auth shell routes to tanstack start (5af4a4a)
- migrate home and agent pages to tanstack start (a820919)
- migrate onboarding oauth routes to tanstack start (0691b1a)
- migrate project dashboard settings to tanstack start (73ed4f4)
- migrate project detail routes to tanstack start (2000edf)
- migrate project list routes to tanstack start (5e6fa4b)
- prerender public routes for SSR (1648a23)
- preserve resumed assistant context (6eec775)
- profile: add sign-out button and Linear integration section (747eb5f)
- providers: add Linear push support to auto-push (3169567)
- register screener response routes as typed contracts (5160a57)
- release: automate deterministic deploy commands (f617117)
- release: automate deterministic release commands (USE-60) (f957c59)
- release: Mobile nav at /profile (USE-65) (8495f21)
- release: reconcile deterministic release commands with gha deploys (b208778)
- scaffold tanstack start public content app (f351a63)
- serve public start routes from worker assets (2f4f8b8)
- sessions: clarify interview and processing outcomes (b4ab896)
- sessions: redesign session detail workspace (4a9c1ee)
- signal evidence enrichment (CIT fields) (#81) (36149aa)
- signals: clarify extracted evidence surfaces (6201788)
- studies: add Loop 3 study planning infrastructure (a8c83a5)
- sync: implement inbound webhook sync for GitHub and Linear (d7417a8)
- unify start shell navigation for USE-21 (3e7206e)
- update MCP to protocol version 2025-11-25 (903c039)
- widget: migrate STS transcription from WebSocket to WebRTC (2bbf77a)
- widget: wire homepage widget to self-research study (eb23f01)
Fixes
- accept OpenAI top-level realtime secret response shape (43ce31c)
- add explicit unload checkpoint for conductor (c097dd4)
- add recorder upload retry health for USE-27 (307467f)
- add sitemap route and coverage (USE-9) (ba7c6cf)
- add timed segment wrap-up and countdown UX (01b6c62)
- add UserTold links to Linear issues (#102) (938cd40)
- align ci auth env with playwright suites (452f4bd)
- allow oauth test clients in wrangler test env (a3a70b9)
- analytics: fix page_url hallucination and inject segment instructions inline (d48c681)
- analytics: use reasoning:low for gpt-5-mini calls (23699e3)
- auth: keep login providers available on session fallback (e2055c4)
- auth: polish /connect page — nav, prompt, and layout (eb54364), closes #4
- auth: preserve OAuth context when redirecting needs_onboarding users (9711675)
- auth: prevent double-navigation after onboarding completion (9452f2b)
- auth: prevent onboarding redirect loop and extract redirect helpers (a077df1)
- auth: redirect Linear callback to profile (93707eb)
- auth: stabilize authenticated opens to / with SSR-aware session routing (USE-57) (#46) (bb658d6)
- auth: stabilize start session bootstrap (1f8f984)
- auth: use usertold.ai for Linear OAuth callback (ef958b6)
- ban inline style={{}} in frontend, migrate all 28 violations to CSS modules (2fb54d5)
- ci: add repository field to npm package for OIDC provenance (2aafa36)
- ci: check npm registry before skipping CLI publish (e1a979a)
- ci: match patchrelay release workflow structure (443b26b)
- ci: use github-hosted runner for npm publish (OIDC auth) (13c2784)
- ci: use NPM_TOKEN secret for npm publish (48bfa13)
- clarify chunk-backed CLI media availability for USE-47 (00d6489)
- clarify session-to-settings handoff (#121) (abb7516)
- cli: replace nonexistent signal-health with project status in README agent example (91e4b87)
- cli: use ./ prefix in publish path to avoid npm git shorthand confusion (5aca1e0)
- collapse STS partial assistant transcripts (23c3b40)
- compact dense session review layouts (#119) (360a201)
- compact dense session review layouts (#127) (27fdad2)
- conductor: harden STS greeting and WS upgrade forwarding (668b477)
- conductor: harden TTS errors, fix WS reconnect speak, align STS with Realtime API (0c457ee)
- conductor: restore first talk greeting after initial sync (6bea3dd)
- distinguish terminal interview session states (6bc1051)
- docs: correct provider claims, CLI flags, and MCP URL across all surfaces (2152055)
- docs: drop Jira roadmap mention — focus on GitHub and Linear (53ed2a1)
- docs: serve markdown home page to agents at / (b81b1db)
- expose session artifacts before processing completes (d15f2f4)
- extract: handle epoch-based VTT timestamps (006465b)
- fall back to SSR when public prerender assets miss for USE-45 (4edc161)
- frontend: clarify conductor recovery summary (635f830)
- frontend: design review — tokens, ARIA, remove dead ConnectRoute (a053e02)
- frontend: enforce design token usage across all CSS modules (3042508)
- frontend: update test expectation and remove unused import (8424027)
- harden study detail text selection (4a476c8)
- harden widget refresh recovery semantics (7bbd75f)
- improve STS secret creation fallback and error propagation (0922882)
- increase extraction max_output_tokens from 4096 to 32768 (5201279)
- isolate browser test runtimes and bootstrap worktrees (8a61db3)
- isolate browser test runtimes and bootstrap worktrees (ddbcd01)
- isolate CI test ports per runner (67ce388)
- keep pricing navigation on pricing details (#117) (5d775ed)
- keep signals bulk actions visible (#115) (85e8364)
- keep UI detail routes on existing loader paths (fddbd0b)
- linear: guide project routing after org connect (ea55e41)
- make CLI bundle self-contained for dist-only publish (9b56e83)
- make org discovery explicit for USE-34 (e7bc2b6)
- make org discovery explicit for USE-34 (26ba1e8)
- mark resumed recording boundaries in review (0837504)
- mcp: add screener_id to studies.create and studies.update (c130229)
- mcp: harden sessions processing status lookup (d044306)
- mcp: rename project.signal_health to projects.signal_health (4a05e39)
- minor cleanup — prefix unused MCP param, improve conductor JSON parse error logging (3a5ca7f)
- nav: unify return_to, enforce Link, fix doc slugs and nav gaps (6305522)
- oauth: advertise supported token auth methods (d109a4c)
- preserve fallback handoff telemetry (6780d7a)
- prevent duplicate talk-mode sts greetings (272c229)
- prevent lost recording data when session resumes (#106) (35c4112)
- prevent premature speak interruption and harden widget e2e (4c0edfe)
- profile section nav race between click and IntersectionObserver (a552d77)
- profile: improve mobile nav on /profile (5e5053d)
- read start request context during ssr (7e2e361)
- recording resume after navigation + preferCurrentTab (#90) (eb2a755)
- recover media merge after deleted d1 binding (0043e11)
- recover stale media merge artifacts for USE-49 (4ddc03b)
- reduce noisy conductor test failures (8bb55c1)
- release: merge release PRs on release CI (#68) (1ec4801)
- release: normalize automated PR titles (07b7017)
- release: rerun release-please after release merge (USE-62) (#69) (1a00075)
- release: scope app token to usertold (#66) (cc7e994)
- release: validate existing release tags (#63) (cffe7cc)
- remove after-* hooks, agent creates PR directly (7eaebd6)
- remove fabricated changelog content and links (710b9a5)
- remove IntersectionObserver from profile nav, fix flaky test (387d2db)
- remove max_output_tokens cap from signal extraction (c5129ed)
- render session-relative transcript timestamps (f4b79ad)
- replace inline style with CSS module class for compact select (b8fbb8e)
- resolve typecheck regressions in rate limit and links (f13879c)
- restore chunk backed screen playback for USE-48 (2d6ac0a)
- restore dynamic start ssr request context (692bbba)
- restore SSR routing for signal detail pages (#132) (7f98e25)
- retry CLI task pushes on transient failures (#118) (4e2d8be)
- route start ssr api calls through hono (09089ff)
- route USE-28 CI jobs to dedicated runner pools (a0800f3)
- sdk: remove unauthenticated pagehide beacon; persist screen_media_key after merge (fa9967e)
- sessions: restore cue events in evidence feed (6f5dc4e)
- sessions: restore cue events in the evidence feed (USE-58) (9c37bb8)
- show session evidence by default (#114) (db34fdd)
- signals: wire consolidation into session processing pipeline and add tests (277ad7d)
- signals: wire verification study bias and consolidation cost tracking (7025a91)
- simplify Google sign-in flow (#100) (f39385f)
- skip root session fetch during prerender (d004a9b)
- split USE-28 CI jobs across dedicated self-hosted runner pools (1fc69d2)
- stabilize profile nav test by removing flaky click assertion (0f1ae8e)
- stabilize settings page loading (#120) (64abf56)
- stabilize signal detail inspection (#104) (91599ef)
- stabilize talk-mode sts startup and realtime error handling (fd0fe11)
- stabilize widget conductor secret retries (9789c58)
- stabilize widget playwright harness (293c4c5)
- stop overriding oauth allowlist in ci env (a8022c4)
- support chunk-backed screen downloads for USE-46 (d87f65b)
- surface byok key health and runtime key errors (17cd367)
- surface recoverable processing failures on interrupted sessions (#27) (44f9c81)
- surface session review evidence by default (#116) (442af18)
- sync dashboard api route metadata (00be4c6)
- test: eliminate widget test flakiness — rate-limit bypass + media flags (136155c)
- tests: resolve all 131 test failures (4be1b2b)
- transcription: fix init segment R2 key double-sessionId in regex (f9da517)
- update widget STS GA endpoint and add stage e2e widget mode suite (9750c33)
- upload: CORS missing X-Part-Number header + dead code cleanup (a38cd74)
- use Claude App identity for AI review instead of github-actions[bot] (d502b7f)
- use observable activity for conductor inactivity (8380412)
- use start loader server context in ssr (d71abfb)
- usePlayback Zustand selector drift, router guidesSlugRoute, wrangler config sync (6efd674)
- widget: align transcription transport with GA Realtime (0edd9aa)
- widget: recover resumed sessions that missed conductor init (b7a19f0)
- widget: recover resumed sessions that missed conductor init (a8b5733)
- write oauth client ids raw in ci env (0775bb3)
- parallel git hooks with quiet output, drop verify:* indirection (a247123)
- replace eslint/tsc with oxlint/tsgo for faster CI (0050825)
- slim landing page hydration costs (029846d)
1.9.11 (2026-03-25)
Fixes
- restore SSR routing for signal detail pages (#132) (7f98e25)
1.9.10 (2026-03-24)
Fixes
1.9.9 (2026-03-24)
Fixes
1.9.8 (2026-03-24)
Fixes
- keep pricing navigation on pricing details (#117) (5d775ed)
1.9.7 (2026-03-24)
Fixes
- surface session review evidence by default (#116) (442af18)
1.9.6 (2026-03-24)
Fixes
1.9.5 (2026-03-24)
Fixes
1.9.4 (2026-03-24)
Fixes
1.9.3 (2026-03-24)
Fixes
1.9.2 (2026-03-24)
Fixes
- retry CLI task pushes on transient failures (#118) (4e2d8be)
1.9.1 (2026-03-24)
Fixes
- use Claude App identity for AI review instead of github-actions[bot] (d502b7f)
1.9.0 (2026-03-23)
Features
- add beta disclaimer below landing header (f7973a7)
- add DCR management endpoints and complete Phase 1 lifecycle (0d8fce9)
- add loader-based auth gating for ssr (aacdaa6)
- add npm run ci (typecheck + lint + test + build:all) (b9b80d9)
- add OAuth dynamic client registration (Phase 1 foundation) (c0237dd)
- add PatchRelay hooks, remove merge_group trigger (7fd95a3)
- add resumed assistant continuity context (2329759)
- add route metadata coverage for start routes (ce40673)
- add signal review workflow with review_status state machine (#85) (0618111)
- add trace logging across navigation/loading lifecycle (535349b)
- add usertold extract CLI for offline extraction (#83) (71c1630)
- add worker-side dynamic app ssr (ecadc8f)
- agents: add StudyPlanningAgent via Cloudflare Agents SDK (ec6e9d7)
- agents: implement multi-turn tool loop and create_study tool (dc1447a)
- analytics: add context tool handlers for agentic extraction (df8b0c2)
- analytics: add extractAndStoreSignalsFromStorage helper + ExtractionAgent (b928e08)
- analytics: add Responses API client wrapper (03a2d85)
- analytics: add SessionProcessingAgent with alarm-based step orchestration (9cbd925)
- analytics: persist accessibility snapshots for signal extraction (af43c49)
- analytics: two-stage agentic signal extraction for usability studies (2bf67ff)
- analytics: upgrade extraction to GPT-5.2 via Responses API (f9214a2)
- analytics: wire queue handler to SessionProcessingAgent (81475ff)
- auth: add /connect post-onboarding agent setup page (9aef879)
- auth: add resilient linear org prefill with displayName fallback (277d53d)
- auth: add Sign in with Linear with auto workspace connection (45b69ec)
- auth: harden DCR controls and add registration kill-switch (7f9b6d6)
- auth: implement refresh_token grant with token rotation (efc5427)
- auth: rebrand CLI OAuth callback pages with design tokens (9275cfa), closes #3
- auth: redesign onboarding as two-step card flow with full a11y (7534af6)
- auth: use GitHub login as org handle suggestion on GitHub sign-in (3bf98e0), closes #1
- auto-push ready tasks to providers (3ef5cbe)
- billing: add stage Polar product IDs, deduplicate pack definitions (dade101)
- capture coherent document transition telemetry (ed8287d)
- changelog: add in-app changelog page (95de022)
- CIT extraction prompt + expanded signal types (#79) (501f49e)
- cli: add --version / -v flag (199222d)
- cli: add project signal-health, study review-script, and signal bulk ops (e0e7fdd)
- cli: add shell completions, --dry-run, and exit code docs (62a1279)
- cli: agent-friendly polish — introspect, JSON errors, compact help (1ab276f)
- complete USE-5 resume recovery flow (f4595c6)
- dashboard: clarify onboarding UX and SetupChecklist hierarchy (a419f04)
- docs: agent-native markdown serving with single-source registry (ccc2496)
- docs: Vary/Link headers for content negotiation + canonical URLs (165197b)
- enforce PKCE S256 and scope constraints for dynamic clients (Phase 2) (7d1f81d)
- finalize frontend TanStack-aligned routing and page migration cleanup (f712e43)
- finish USE-10 widget recovery coverage (08be4b3)
- frontend: add route query definitions for tanstack migration (edbeefd)
- frontend: migrate route data loading to tanstack query (3efa951)
- frontend: migrate routing to TanStack router (2c027c9)
- harden MCP endpoint and support JSON-RPC batch requests (0bc50d3)
- improve linear task handoff (ec7c8c5)
- linear: add Linear OAuth and task push integration (0de3c3e)
- linear: encrypt tokens at rest, auto-register webhook on OAuth, settings UI (9f1e506)
- loops: implement Tier 1 foundations — signals, vectors, and provider sync (d4bf5ea)
- loops: implement Tier 2 — signal consolidation and MCP search tools (db6c2c5)
- mcp: add project CRUD tools and soft-delete (37d327a)
- mcp: add sessions.get_processing_status tool (50e09ee)
- mcp: add signals.get, tasks.get_evidence, tasks.merge tools (9be1589)
- mcp: add studies.get, studies.delete, screeners.get tools (c1818ff)
- migrate auth shell routes to tanstack start (5af4a4a)
- migrate home and agent pages to tanstack start (a820919)
- migrate onboarding oauth routes to tanstack start (0691b1a)
- migrate project dashboard settings to tanstack start (73ed4f4)
- migrate project detail routes to tanstack start (2000edf)
- migrate project list routes to tanstack start (5e6fa4b)
- prerender public routes for SSR (1648a23)
- preserve resumed assistant context (6eec775)
- profile: add sign-out button and Linear integration section (747eb5f)
- providers: add Linear push support to auto-push (3169567)
- refactor frontend routing state and related pages (7ed6de7)
- register screener response routes as typed contracts (5160a57)
- release: automate deterministic deploy commands (f617117)
- release: automate deterministic release commands (USE-60) (f957c59)
- release: Mobile nav at /profile (USE-65) (8495f21)
- release: reconcile deterministic release commands with gha deploys (b208778)
- restructure navigation and consolidate docs into single hub (27a269a)
- scaffold tanstack start public content app (f351a63)
- serve public start routes from worker assets (2f4f8b8)
- sessions: clarify interview and processing outcomes (b4ab896)
- sessions: redesign session detail workspace (4a9c1ee)
- signal evidence enrichment (CIT fields) (#81) (36149aa)
- signals: clarify extracted evidence surfaces (6201788)
- studies: add Loop 3 study planning infrastructure (a8c83a5)
- sync: implement inbound webhook sync for GitHub and Linear (d7417a8)
- ui: add created_at and updated_at to frontend User type (365f45c)
- unify start shell navigation for USE-21 (3e7206e)
- update MCP to protocol version 2025-11-25 (903c039)
- widget: migrate STS transcription from WebSocket to WebRTC (2bbf77a)
- widget: wire homepage widget to self-research study (eb23f01)
Fixes
- accept OpenAI top-level realtime secret response shape (43ce31c)
- add explicit unload checkpoint for conductor (c097dd4)
- add global data cache to useAsyncData to eliminate Loading flash (bb27453)
- add recorder upload retry health for USE-27 (307467f)
- add sitemap route and coverage (USE-9) (ba7c6cf)
- add timed segment wrap-up and countdown UX (01b6c62)
- add UserTold links to Linear issues (#102) (938cd40)
- align ci auth env with playwright suites (452f4bd)
- allow oauth test clients in wrangler test env (a3a70b9)
- analytics: fix page_url hallucination and inject segment instructions inline (d48c681)
- analytics: use reasoning:low for gpt-5-mini calls (23699e3)
- auth: keep login providers available on session fallback (e2055c4)
- auth: polish /connect page — nav, prompt, and layout (eb54364), closes #4
- auth: preserve OAuth context when redirecting needs_onboarding users (9711675)
- auth: prevent double-navigation after onboarding completion (9452f2b)
- auth: prevent onboarding redirect loop and extract redirect helpers (a077df1)
- auth: redirect Linear callback to profile (93707eb)
- auth: stabilize authenticated opens to / with SSR-aware session routing (USE-57) (#46) (bb658d6)
- auth: stabilize start session bootstrap (1f8f984)
- auth: use usertold.ai for Linear OAuth callback (ef958b6)
- ban inline style={{}} in frontend, migrate all 28 violations to CSS modules (2fb54d5)
- ci: add repository field to npm package for OIDC provenance (2aafa36)
- ci: check npm registry before skipping CLI publish (e1a979a)
- ci: match patchrelay release workflow structure (443b26b)
- ci: use github-hosted runner for npm publish (OIDC auth) (13c2784)
- ci: use NPM_TOKEN secret for npm publish (48bfa13)
- clarify chunk-backed CLI media availability for USE-47 (00d6489)
- cli: replace nonexistent signal-health with project status in README agent example (91e4b87)
- cli: use ./ prefix in publish path to avoid npm git shorthand confusion (5aca1e0)
- collapse STS partial assistant transcripts (23c3b40)
- conductor: harden STS greeting and WS upgrade forwarding (668b477)
- conductor: harden TTS errors, fix WS reconnect speak, align STS with Realtime API (0c457ee)
- conductor: restore first talk greeting after initial sync (6bea3dd)
- disable session refresh effects while restoring route stability (5121e81)
- distinguish terminal interview session states (6bc1051)
- docs: correct provider claims, CLI flags, and MCP URL across all surfaces (2152055)
- docs: drop Jira roadmap mention — focus on GitHub and Linear (53ed2a1)
- docs: serve markdown home page to agents at / (b81b1db)
- expose session artifacts before processing completes (d15f2f4)
- extract: handle epoch-based VTT timestamps (006465b)
- fall back to SSR when public prerender assets miss for USE-45 (4edc161)
- frontend: clarify conductor recovery summary (635f830)
- frontend: design review — tokens, ARIA, remove dead ConnectRoute (a053e02)
- frontend: enforce design token usage across all CSS modules (3042508)
- frontend: improve query prefetch failure handling and signal filter UX (8d623a9)
- frontend: update test expectation and remove unused import (8424027)
- guard list empty states while first load is in progress (4c7a61c)
- harden study detail text selection (4a476c8)
- harden widget refresh recovery semantics (7bbd75f)
- improve STS secret creation fallback and error propagation (0922882)
- increase extraction max_output_tokens from 4096 to 32768 (5201279)
- isolate browser test runtimes and bootstrap worktrees (8a61db3)
- isolate browser test runtimes and bootstrap worktrees (ddbcd01)
- isolate CI test ports per runner (67ce388)
- keep UI detail routes on existing loader paths (fddbd0b)
- linear: guide project routing after org connect (ea55e41)
- make CLI bundle self-contained for dist-only publish (9b56e83)
- make org discovery explicit for USE-34 (e7bc2b6)
- make org discovery explicit for USE-34 (26ba1e8)
- mark resumed recording boundaries in review (0837504)
- mcp: add screener_id to studies.create and studies.update (c130229)
- mcp: harden sessions processing status lookup (d044306)
- mcp: rename project.signal_health to projects.signal_health (4a05e39)
- minor cleanup — prefix unused MCP param, improve conductor JSON parse error logging (3a5ca7f)
- nav: unify return_to, enforce Link, fix doc slugs and nav gaps (6305522)
- oauth: advertise supported token auth methods (d109a4c)
- preserve fallback handoff telemetry (6780d7a)
- prevent duplicate talk-mode sts greetings (272c229)
- prevent lost recording data when session resumes (#106) (35c4112)
- prevent premature speak interruption and harden widget e2e (4c0edfe)
- profile section nav race between click and IntersectionObserver (a552d77)
- profile: improve mobile nav on /profile (5e5053d)
- re-enable session terminal refresh effects (d050483)
- read start request context during ssr (7e2e361)
- recording resume after navigation + preferCurrentTab (#90) (eb2a755)
- recover media merge after deleted d1 binding (0043e11)
- recover stale media merge artifacts for USE-49 (4ddc03b)
- reduce noisy conductor test failures (8bb55c1)
- release: merge release PRs on release CI (#68) (1ec4801)
- release: normalize automated PR titles (07b7017)
- release: rerun release-please after release merge (USE-62) (#69) (1a00075)
- release: scope app token to usertold (#66) (cc7e994)
- release: validate existing release tags (#63) (cffe7cc)
- remove after-* hooks, agent creates PR directly (7eaebd6)
- remove fabricated changelog content and links (710b9a5)
- remove IntersectionObserver from profile nav, fix flaky test (387d2db)
- remove max_output_tokens cap from signal extraction (c5129ed)
- remove project route rewrite/normalization (080ed34)
- render session-relative transcript timestamps (f4b79ad)
- replace inline style with CSS module class for compact select (b8fbb8e)
- resolve frontend route typing and hook ordering for pages (528b265)
- resolve JSX and import path errors blocking production build (458a175)
- resolve typecheck regressions in rate limit and links (f13879c)
- restore chunk backed screen playback for USE-48 (2d6ac0a)
- restore dynamic start ssr request context (692bbba)
- route start ssr api calls through hono (09089ff)
- route USE-28 CI jobs to dedicated runner pools (a0800f3)
- sdk: remove unauthenticated pagehide beacon; persist screen_media_key after merge (fa9967e)
- sessions: restore cue events in evidence feed (6f5dc4e)
- sessions: restore cue events in the evidence feed (USE-58) (9c37bb8)
- show session loading state before empty placeholder (13c9343)
- signals: wire consolidation into session processing pipeline and add tests (277ad7d)
- signals: wire verification study bias and consolidation cost tracking (7025a91)
- simplify Google sign-in flow (#100) (f39385f)
- skip root session fetch during prerender (d004a9b)
- split USE-28 CI jobs across dedicated self-hosted runner pools (1fc69d2)
- stabilize profile nav test by removing flaky click assertion (0f1ae8e)
- stabilize route selector to avoid React max-update loop (e4bfdfd)
- stabilize signal detail inspection (#104) (91599ef)
- stabilize talk-mode sts startup and realtime error handling (fd0fe11)
- stabilize widget conductor secret retries (9789c58)
- stabilize widget playwright harness (293c4c5)
- stop overriding oauth allowlist in ci env (a8022c4)
- stop study detail canonicalization navigation (fcb5263)
- support chunk-backed screen downloads for USE-46 (d87f65b)
- surface byok key health and runtime key errors (17cd367)
- surface recoverable processing failures on interrupted sessions (#27) (44f9c81)
- sync dashboard api route metadata (00be4c6)
- test: eliminate widget test flakiness — rate-limit bypass + media flags (136155c)
- tests: resolve all 131 test failures (4be1b2b)
- transcription: fix init segment R2 key double-sessionId in regex (f9da517)
- update widget STS GA endpoint and add stage e2e widget mode suite (9750c33)
- upload: CORS missing X-Part-Number header + dead code cleanup (a38cd74)
- use observable activity for conductor inactivity (8380412)
- use start loader server context in ssr (d71abfb)
- usePlayback Zustand selector drift, router guidesSlugRoute, wrangler config sync (6efd674)
- widget: align transcription transport with GA Realtime (0edd9aa)
- widget: recover resumed sessions that missed conductor init (b7a19f0)
- widget: recover resumed sessions that missed conductor init (a8b5733)
- widget: remove zod from bundle, add banned-imports guard (bc78de5)
- write oauth client ids raw in ci env (0775bb3)
- parallel git hooks with quiet output, drop verify:* indirection (a247123)
- replace eslint/tsc with oxlint/tsgo for faster CI (0050825)
- slim landing page hydration costs (029846d)
1.8.4 (2026-03-23)
Bug Fixes
- ci: use NPM_TOKEN secret for npm publish (48bfa13)
1.8.3 (2026-03-23)
Bug Fixes
- ci: add repository field to npm package for OIDC provenance (2aafa36)
1.8.2 (2026-03-23)
Bug Fixes
- ci: check npm registry before skipping CLI publish (e1a979a)
1.8.1 (2026-03-23)
Bug Fixes
- ci: use github-hosted runner for npm publish (OIDC auth) (13c2784)
1.8.0 (2026-03-23)
Features
- cli: add shell completions, --dry-run, and exit code docs (62a1279)
1.7.7 (2026-03-23)
Bug Fixes
- prevent lost recording data when session resumes (#106) (35c4112)
1.7.6 (2026-03-23)
Bug Fixes
1.7.5 (2026-03-22)
Bug Fixes
1.7.4 (2026-03-22)
Bug Fixes
1.7.3 (2026-03-22)
Bug Fixes
- stabilize profile nav test by removing flaky click assertion (0f1ae8e)
1.7.2 (2026-03-22)
Bug Fixes
- remove IntersectionObserver from profile nav, fix flaky test (387d2db)
1.7.1 (2026-03-22)
Bug Fixes
- ban inline style={{}} in frontend, migrate all 28 violations to CSS modules (2fb54d5)
- profile section nav race between click and IntersectionObserver (a552d77)
- replace inline style with CSS module class for compact select (b8fbb8e)
- parallel git hooks with quiet output, drop verify:* indirection (a247123)
- replace eslint/tsc with oxlint/tsgo for faster CI (0050825)
1.7.0 (2026-03-22)
Features
- add npm run ci (typecheck + lint + test + build:all) (b9b80d9)
- add PatchRelay hooks, remove merge_group trigger (7fd95a3)
Bug Fixes
- remove after-* hooks, agent creates PR directly (7eaebd6)
1.6.4 (2026-03-17)
Bug Fixes
- recording resume after navigation + preferCurrentTab (#90) (eb2a755)
1.6.3 (2026-03-17)
Bug Fixes
- remove max_output_tokens cap from signal extraction (c5129ed)
1.6.2 (2026-03-17)
Bug Fixes
- increase extraction max_output_tokens from 4096 to 32768 (5201279)
1.6.1 (2026-03-16)
Bug Fixes
- extract: handle epoch-based VTT timestamps (006465b)
1.6.0 (2026-03-16)
Features
- add signal review workflow with review_status state machine (#85) (0618111)
1.5.0 (2026-03-16)
Features
- add usertold extract CLI for offline extraction (#83) (71c1630)
1.4.0 (2026-03-16)
Features
- signal evidence enrichment (CIT fields) (#81) (36149aa)
1.3.0 (2026-03-16)
Features
- CIT extraction prompt + expanded signal types (#79) (501f49e)
1.2.2 (2026-03-15)
Bug Fixes
- widget: recover resumed sessions that missed conductor init (b7a19f0)
- widget: recover resumed sessions that missed conductor init (a8b5733)
1.2.1 (2026-03-14)
Bug Fixes
- sessions: restore cue events in the evidence feed (USE-58) (9c37bb8)
1.2.0 (2026-03-14)
Features
- release: Mobile nav at /profile (USE-65) (8495f21)
Bug Fixes
- profile: improve mobile nav on /profile (5e5053d)
1.1.0 (2026-03-14)
Features
- release: automate deterministic release commands (USE-60) (f957c59)
Bug Fixes
- release: normalize automated PR titles (07b7017)
1.0.3 (2026-03-14)
Bug Fixes
- auth: stabilize authenticated opens to / with SSR-aware session routing (USE-57) (#46) (bb658d6)
1.0.2 (2026-03-13)
Bug Fixes
- release: rerun release-please after release merge (USE-62) (#69) (1a00075)
1.0.1 (2026-03-13)
Bug Fixes
- release: merge release PRs on release CI (#68) (1ec4801)
- release: scope app token to usertold (#66) (cc7e994)
- release: validate existing release tags (#63) (cffe7cc)
1.0.0 (2026-03-13)
Features
- add /for-agents, /methodology pages, improve landing copy, add session CLI hint (89be698)
- add beta disclaimer below landing header (f7973a7)
- add DCR management endpoints and complete Phase 1 lifecycle (0d8fce9)
- add home dashboard with org-level overview for authenticated users (82e9f6a)
- add loader-based auth gating for ssr (aacdaa6)
- add OAuth dynamic client registration (Phase 1 foundation) (c0237dd)
- add processing status + error handling to session playback sidebar (6c62fec)
- add resumed assistant continuity context (2329759)
- add route metadata coverage for start routes (ce40673)
- add trace logging across navigation/loading lifecycle (535349b)
- add user onboarding and terms handoff flow (35910f4)
- add worker-side dynamic app ssr (ecadc8f)
- agents: add StudyPlanningAgent via Cloudflare Agents SDK (ec6e9d7)
- agents: implement multi-turn tool loop and create_study tool (dc1447a)
- analytics: add context tool handlers for agentic extraction (df8b0c2)
- analytics: add extractAndStoreSignalsFromStorage helper + ExtractionAgent (b928e08)
- analytics: add Responses API client wrapper (03a2d85)
- analytics: add SessionProcessingAgent with alarm-based step orchestration (9cbd925)
- analytics: persist accessibility snapshots for signal extraction (af43c49)
- analytics: two-stage agentic signal extraction for usability studies (2bf67ff)
- analytics: upgrade extraction to GPT-5.2 via Responses API (f9214a2)
- analytics: wire queue handler to SessionProcessingAgent (81475ff)
- auth: add /connect post-onboarding agent setup page (9aef879)
- auth: add cli user-agent and tighten auth flow typing (a6562db)
- auth: add resilient linear org prefill with displayName fallback (277d53d)
- auth: add revoke older sessions API and profile action (15d5ddd)
- auth: add Sign in with Linear with auto workspace connection (45b69ec)
- auth: harden DCR controls and add registration kill-switch (7f9b6d6)
- auth: implement refresh_token grant with token rotation (efc5427)
- auth: rebrand CLI OAuth callback pages with design tokens (9275cfa), closes #3
- auth: redesign onboarding as two-step card flow with full a11y (7534af6)
- auth: use GitHub login as org handle suggestion on GitHub sign-in (3bf98e0), closes #1
- auto-push ready tasks to providers (3ef5cbe)
- billing: add stage Polar product IDs, deduplicate pack definitions (dade101)
- capture coherent document transition telemetry (ed8287d)
- changelog: add in-app changelog page (95de022)
- chunked signal extraction with structured context and study-aware prompts (c982a6a)
- cli: add --version / -v flag (199222d)
- cli: add project signal-health, study review-script, and signal bulk ops (e0e7fdd)
- cli: agent-friendly polish — introspect, JSON errors, compact help (1ab276f)
- complete USE-5 resume recovery flow (f4595c6)
- dashboard: clarify onboarding UX and SetupChecklist hierarchy (a419f04)
- docs: agent-native markdown serving with single-source registry (ccc2496)
- docs: Vary/Link headers for content negotiation + canonical URLs (165197b)
- enforce onboarding checks across auth flow (8927c43)
- enforce onboarding checks by default in auth middleware (bbd8d60)
- enforce PKCE S256 and scope constraints for dynamic clients (Phase 2) (7d1f81d)
- finalize frontend TanStack-aligned routing and page migration cleanup (f712e43)
- finish USE-10 widget recovery coverage (08be4b3)
- frontend: add route query definitions for tanstack migration (edbeefd)
- frontend: migrate route data loading to tanstack query (3efa951)
- frontend: migrate routing to TanStack router (2c027c9)
- harden MCP endpoint and support JSON-RPC batch requests (0bc50d3)
- implement MCP v1 JSON-RPC 2.0 server (c9a183a)
- improve linear task handoff (ec7c8c5)
- linear: add Linear OAuth and task push integration (0de3c3e)
- linear: encrypt tokens at rest, auto-register webhook on OAuth, settings UI (9f1e506)
- lint: add @typescript-eslint/unbound-method rule with type-aware linting (39e833e)
- loops: implement Tier 1 foundations — signals, vectors, and provider sync (d4bf5ea)
- loops: implement Tier 2 — signal consolidation and MCP search tools (db6c2c5)
- MCP Phase 2 — detail resources, query tools, screener CRUD (19 resources, 22 tools) (25c4d28)
- MCP–CLI parity round 2 + fix typecheck/test failures (88069dc)
- mcp: add project CRUD tools and soft-delete (37d327a)
- mcp: add sessions.get_processing_status tool (50e09ee)
- mcp: add signals.get, tasks.get_evidence, tasks.merge tools (9be1589)
- mcp: add studies.get, studies.delete, screeners.get tools (c1818ff)
- migrate auth shell routes to tanstack start (5af4a4a)
- migrate home and agent pages to tanstack start (a820919)
- migrate onboarding oauth routes to tanstack start (0691b1a)
- migrate project dashboard settings to tanstack start (73ed4f4)
- migrate project detail routes to tanstack start (2000edf)
- migrate project list routes to tanstack start (5e6fa4b)
- prerender public routes for SSR (1648a23)
- preserve resumed assistant context (6eec775)
- profile: add sign-out button and Linear integration section (747eb5f)
- providers: add Linear push support to auto-push (3169567)
- refactor frontend routing state and related pages (7ed6de7)
- register screener response routes as typed contracts (5160a57)
- replace GitHub OAuth App with GitHub App integration (987c04a)
- restructure navigation and consolidate docs into single hub (27a269a)
- scaffold tanstack start public content app (f351a63)
- serve public start routes from worker assets (2f4f8b8)
- sessions: clarify interview and processing outcomes (b4ab896)
- sessions: redesign session detail workspace (4a9c1ee)
- signals: clarify extracted evidence surfaces (6201788)
- stateful GitHub App install flow with org/project linking (df43b85)
- studies: add Loop 3 study planning infrastructure (a8c83a5)
- support multiple credit pack sizes (10/30/50/100) (f0d33d7)
- switch billing to prepaid credits + BYOK enforcement (55007ec)
- sync: implement inbound webhook sync for GitHub and Linear (d7417a8)
- ui: add created_at and updated_at to frontend User type (365f45c)
- ui: lifecycle-aware copy and states across all pages (2567c4b)
- ui: stale-while-revalidate loading with navigation abort (cae5416)
- unify start shell navigation for USE-21 (3e7206e)
- update MCP to protocol version 2025-11-25 (903c039)
- widget: migrate STS transcription from WebSocket to WebRTC (2bbf77a)
- widget: wire homepage widget to self-research study (eb23f01)
Bug Fixes
- accept OpenAI top-level realtime secret response shape (43ce31c)
- add explicit unload checkpoint for conductor (c097dd4)
- add global data cache to useAsyncData to eliminate Loading flash (bb27453)
- add recorder upload retry health for USE-27 (307467f)
- add sitemap route and coverage (USE-9) (ba7c6cf)
- add timed segment wrap-up and countdown UX (01b6c62)
- align ci auth env with playwright suites (452f4bd)
- align SDK response schemas with actual server payloads (df984f3)
- allow oauth test clients in wrangler test env (a3a70b9)
- allow SDK CORS from any origin for widget on customer domains (4a6a7ec)
- analytics: fix page_url hallucination and inject segment instructions inline (d48c681)
- analytics: use reasoning:low for gpt-5-mini calls (23699e3)
- auth: align auth flows with session token issuance and onboarding state (78e7a92)
- auth: keep login providers available on session fallback (e2055c4)
- auth: polish /connect page — nav, prompt, and layout (eb54364), closes #4
- auth: preserve approval request status in onboarding/validation responses (4a94d25)
- auth: preserve OAuth context when redirecting needs_onboarding users (9711675)
- auth: prevent double-navigation after onboarding completion (9452f2b)
- auth: prevent onboarding redirect loop and extract redirect helpers (a077df1)
- auth: redirect Linear callback to profile (93707eb)
- auth: stabilize start session bootstrap (1f8f984)
- auth: use usertold.ai for Linear OAuth callback (ef958b6)
- billing DomainError, requestId in responses, OpenAI Realtime GA schema (af3a864)
- bind isBound to container before detaching as function reference (ffa8731)
- clarify chunk-backed CLI media availability for USE-47 (00d6489)
- clean up content page typography and remove dead billing CSS (d75895a)
- clean up organization/project scoped routing tests and frontend effects (cdd021b)
- clean up signal-extractor split — deduplicate formatTimestamp, fix import ordering (3e6490a)
- cli: replace nonexistent signal-health with project status in README agent example (91e4b87)
- cli: use ./ prefix in publish path to avoid npm git shorthand confusion (5aca1e0)
- close artifact capture pipeline integrity gaps (b4aae3b)
- collapse STS partial assistant transcripts (23c3b40)
- conductor: harden STS greeting and WS upgrade forwarding (668b477)
- conductor: harden TTS errors, fix WS reconnect speak, align STS with Realtime API (0c457ee)
- conductor: restore first talk greeting after initial sync (6bea3dd)
- disable session refresh effects while restoring route stability (5121e81)
- distinguish terminal interview session states (6bc1051)
- docs: correct provider claims, CLI flags, and MCP URL across all surfaces (2152055)
- docs: drop Jira roadmap mention — focus on GitHub and Linear (53ed2a1)
- docs: serve markdown home page to agents at / (b81b1db)
- eliminate leaking abstractions after session route split (12c9fbc)
- enforce organization and project scoping for session media and storage (7a3af6d)
- expose session artifacts before processing completes (d15f2f4)
- fall back to SSR when public prerender assets miss for USE-45 (4edc161)
- frontend: clarify conductor recovery summary (635f830)
- frontend: design review — tokens, ARIA, remove dead ConnectRoute (a053e02)
- frontend: enforce design token usage across all CSS modules (3042508)
- frontend: improve query prefetch failure handling and signal filter UX (8d623a9)
- frontend: update test expectation and remove unused import (8424027)
- frontend: use semantic controls for dialog and toast dismiss (bb37cda)
- guard list empty states while first load is in progress (4c7a61c)
- handle stale session cookie gracefully in getSession (a382c44)
- harden study detail text selection (4a476c8)
- harden widget refresh recovery semantics (7bbd75f)
- improve ARIA semantics across interactive frontend controls (866b360)
- improve STS secret creation fallback and error propagation (0922882)
- isolate browser test runtimes and bootstrap worktrees (8a61db3)
- isolate browser test runtimes and bootstrap worktrees (ddbcd01)
- isolate CI test ports per runner (67ce388)
- keep UI detail routes on existing loader paths (fddbd0b)
- linear: guide project routing after org connect (ea55e41)
- lint: add promise/exhaustiveness rules, fix all violations, remove dead code (f8dcbeb)
- make CLI bundle self-contained for dist-only publish (9b56e83)
- make org discovery explicit for USE-34 (e7bc2b6)
- make org discovery explicit for USE-34 (26ba1e8)
- make organizationId required in workflow params, queue messages, and tests (df1555e)
- mark resumed recording boundaries in review (0837504)
- MCP spec compliance — notifications/initialized, resource templates, richer tool outputs (f465069)
- mcp: add screener_id to studies.create and studies.update (c130229)
- mcp: harden sessions processing status lookup (d044306)
- mcp: rename project.signal_health to projects.signal_health (4a05e39)
- minor cleanup — prefix unused MCP param, improve conductor JSON parse error logging (3a5ca7f)
- nav: unify return_to, enforce Link, fix doc slugs and nav gaps (6305522)
- oauth: advertise supported token auth methods (d109a4c)
- parse form-urlencoded oauth token requests and adjust onboarding error tests (356aa98)
- preserve fallback handoff telemetry (6780d7a)
- prevent duplicate talk-mode sts greetings (272c229)
- prevent premature speak interruption and harden widget e2e (4c0edfe)
- propagate structured API errors across widget, SDK, and backend (c072e87)
- re-enable session terminal refresh effects (d050483)
- read start request context during ssr (7e2e361)
- rebrand llms.txt to UserTold.ai and update landing page CLI snippet (f101035)
- recover media merge after deleted d1 binding (0043e11)
- recover stale media merge artifacts for USE-49 (4ddc03b)
- reduce noisy conductor test failures (8bb55c1)
- relocate SignalsPage.module.css into signals/ and fix round-trip import paths (7f0bf9c)
- remove fabricated changelog content and links (710b9a5)
- remove project route rewrite/normalization (080ed34)
- render session-relative transcript timestamps (f4b79ad)
- resolve all ESLint errors and warnings (1b1516a)
- resolve frontend route typing and hook ordering for pages (528b265)
- resolve JSX and import path errors blocking production build (458a175)
- resolve lint errors (useless escapes, unused var, hooks order) (6fc2773)
- resolve typecheck regressions in rate limit and links (f13879c)
- restore chunk backed screen playback for USE-48 (2d6ac0a)
- restore dynamic start ssr request context (692bbba)
- route start ssr api calls through hono (09089ff)
- route USE-28 CI jobs to dedicated runner pools (a0800f3)
- sdk: remove unauthenticated pagehide beacon; persist screen_media_key after merge (fa9967e)
- show session loading state before empty placeholder (13c9343)
- signals: wire consolidation into session processing pipeline and add tests (277ad7d)
- signals: wire verification study bias and consolidation cost tracking (7025a91)
- simplify login page copy and add sessionPlayback route (16c93ad)
- skip root session fetch during prerender (d004a9b)
- split USE-28 CI jobs across dedicated self-hosted runner pools (1fc69d2)
- stabilize route selector to avoid React max-update loop (e4bfdfd)
- stabilize talk-mode sts startup and realtime error handling (fd0fe11)
- stabilize widget conductor secret retries (9789c58)
- stabilize widget playwright harness (293c4c5)
- stop leaking internal R2 keys in audio upload response (821e3d3)
- stop overriding oauth allowlist in ci env (a8022c4)
- stop study detail canonicalization navigation (fcb5263)
- support chunk-backed screen downloads for USE-46 (d87f65b)
- surface byok key health and runtime key errors (17cd367)
- surface recoverable processing failures on interrupted sessions (#27) (44f9c81)
- sync dashboard api route metadata (00be4c6)
- test: eliminate widget test flakiness — rate-limit bypass + media flags (136155c)
- tests: resolve all 131 test failures (4be1b2b)
- transcription: fix init segment R2 key double-sessionId in regex (f9da517)
- ui: normalize form controls and buttons to 16px / 36px height (751fd8f)
- ui: show HeaderNav on marketing/docs pages for authenticated users (761743c)
- update widget STS GA endpoint and add stage e2e widget mode suite (9750c33)
- upload: CORS missing X-Part-Number header + dead code cleanup (a38cd74)
- use observable activity for conductor inactivity (8380412)
- use product_id instead of amount in order.paid webhook (1e23972)
- use start loader server context in ssr (d71abfb)
- usePlayback Zustand selector drift, router guidesSlugRoute, wrangler config sync (6efd674)
- widen MCP schema, add 422/503 to OpenAPI, add registration guard (6293e42)
- widget: align transcription transport with GA Realtime (0edd9aa)
- widget: remove zod from bundle, add banned-imports guard (bc78de5)
- wrap remaining raw OpenAI fetch calls with openAIFetch, fix stateVersion gap and buffer cap (c260a90)
- write oauth client ids raw in ci env (0775bb3)
- slim landing page hydration costs (029846d)
- widget: simplify embed snippet and defer boot to idle (5ca68a4)