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

  • stabilize compact dashboard controls (#169) (7762ec8)

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

  • make docs reachable from account nav (#144) (3a6422f)

1.12.4 (2026-03-26)

Fixes

1.12.3 (2026-03-26)

Fixes

  • make project overview easier to scan (#154) (6f8b416)

1.12.2 (2026-03-26)

Fixes

  • make session deletion more deliberate (#153) (30efdc1)

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

  • streamline sessions and signals pages (#140) (8a8f0af)

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)

Performance

  • 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

  • compact dense session review layouts (#127) (27fdad2)

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

  • compact dense session review layouts (#119) (360a201)

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)

Performance

  • 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)

Performance Improvements

  • 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)

Performance Improvements

  • slim landing page hydration costs (029846d)
  • widget: simplify embed snippet and defer boot to idle (5ca68a4)