Release Notes

Changelog.

What's new, what's coming, and where your requests are in the plan.

May 10, 2026v1.2.0

Snowflake migration + CSAT detail drawer

ShippedData layer migration: Gusto NPS, Flex NPS, and all 4 CSAT data sources now served from Snowflake direct. Faster page loads, on-demand refresh via ?refresh=1, no more Hightouch sync lag.
ShippedCSAT detail drawer: click any response row on /csat/gusto or /csat/flex to see the full respondent profile, satisfaction rating, survey responses, and engagement metrics. Mirrors the NPS drawer pattern.
ShippedShared DateRangePicker: typeable inputs, Notion-style range UX (click start, then end), unified across all 5 dashboards. Replaces the broken per-page picker that caused mid-interaction reloads.
ShippedSnowflake fetcher centralization: shared helpers (coerceDate, type coercion, cache keys, date filters) consolidated into lib/data/snowflake.ts. Future data sources inherit fixes automatically.
ShippedNotion cleanup: legacy fetcher files removed from the codebase. Credit Builder remains on Notion intentionally (being replaced by a new study).
PlannedCSAT detail drawer — full spec: cross-product survey history per user (NPS + CSAT PA + CSAT P90 timeline), satisfaction trajectory mini-chart, NPS↔CSAT linking by user ID, "days since first advance" stamps on each response.
PlannedTier 1+2 frontend wave: engagement cohort filter pills (Power / Regular / Dormant) on CSAT pages. Total $ / avg advance size / cost-of-capital % surfaced using new native Snowflake fields.
PlannedQuestion Explorer rework: JSON config + pie charts for choice questions + Marketing Quotes tab + needs-review badge.
PlannedManual refresh button on every dashboard page (UI for the existing ?refresh=1 cache bypass).
RoadmapProduction hardening: Snowflake env vars synced via Infisical, open-next.config.ts fix, VPN / password-protect the subdomain.
RoadmapRound 3 polish: semantic search / RAG to replace /ask keyword pre-filter, SSE streaming for /ask thinking stages, real Typeform question titles replacing the humanizeKey fallback, sentiment overhaul (collapsible 3-max + ask-your-own + theme counts), compound time filtering.
May 4, 2026v1.1.1

/ask polish + CSAT cross-cuts redesign

Shipped/ask: 5 CSAT cohorts wired in (Credit Builder + new/tenured Gusto + new/tenured Flex) for cross-source semantic search
Shipped/ask: plain-language responses with no internal cohort tags surfaced
Shipped/ask: thinking-partner mode — interview-style ask-me-questions flow
Shipped/ask: 32s → 14.7s warm response time via keyword pre-filter
Shipped/ask: hydration error fix on data source toggle chips (React 19 SSR mismatch); standard pattern documented for future localStorage-backed state
ShippedCSAT visual parity: big "% Satisfied" hero on all CSAT pages
ShippedCSAT visual parity: Recharts foundation across all CSAT bar widgets matching NPS polish
ShippedCSAT visual parity: animations on filter toggles, gradient fills, refined tooltips
ShippedCSAT visual parity: sparkline on Credit Builder Total Responses tile
ShippedCSAT cross-cuts: Usage Behavior with chart-type tabs (full-width, mirrors NPS)
ShippedCSAT cross-cuts: Geography state-by-state list
ShippedCSAT cross-cuts: Disbursement card (Instant vs Standard, null counts as Standard)
ShippedCSAT cross-cuts: Engagement Cohort (Power / Regular / Dormant) populated via computed advancesPerMonth
ShippedFlex CSAT: Partner Profile, Per-pay-period Tier, Lifetime NOAA in NPS-style layout
April 29, 2026v1.1

CSAT dashboards — Gusto + Flex

ShippedNew CSAT dashboards for Gusto and Flex
ShippedCombined 1st-advance + Post-90 day survey data per product
ShippedSentiment Analysis card with AI-generated themes from open feedback
ShippedComments feed with Likert label and survey source per response
ShippedQuestion Explorer auto-discovers all populated survey questions
Shipped4 cross-cuts on Flex: Speed, Engagement Cohort, Tier, NOAA bucket
ShippedPartnership Health card showing perception change per Flex partner
ShippedBorrowing Frequency card on Flex Post-90 day responses
ShippedPII protection: email/phone columns excluded from question display
ShippedSticky filters and date pickers on scroll across all dashboards
Shipped24-hour server cache for instant page loads after cache warm
PlannedStreaming Sentiment Analysis (responses surface progressively)
PlannedTheme counts on Sentiment cards (e.g., “Fees for instant transfers (58)”)
Planned“Ask your own questions” LLM input on Sentiment cards
Planned3-tab page layout (Overview / User Breakdown / Research)
PlannedPie charts for choice-style survey questions
PlannedReal Typeform titles on questions instead of humanized keys
PlannedCross-survey User Sidebar showing every survey a user has taken
PlannedCSAT-specific sidebar filters: tier, engagement cohort, active/inactive
PlannedWire all 4 CSAT cohorts into /ask AI search
PlannedRe-sync Hightouch with smart-quote canonicalization fix
April 21, 2026v1.0.1

/ask — honesty, depth, time-awareness, source control, and feedback

Shipped/ask quality: removed baked-in Sentry stats from the system prompt, added anti-fabrication rule, explicit sources array replaces regex detection
Shipped/ask quality: NPS detractor verbatims now flow into AI context (previously only aggregates)
Shipped/ask quality: markdown rendering via react-markdown (previously plain text)
Shipped/ask quality: date anchor + period-over-period comparison rule + time-window honesty rule prevent fake answers for missing data
ShippedSentry depth: project taxonomy in system prompt (Gusto = glaas-embed, Flex = clair-flex + partner tags)
ShippedSentry depth: replays reframed as dual-purpose (error + discovery sessions) with dual-fetch strategy
ShippedSentry depth: removed upstream count_errors:>0 filter that was starving error replays from context
ShippedSentry depth: fixed per_page vs limit Sentry API param bug that was capping replays at ~10
ShippedSentry depth: replay permalinks render as "View session" buttons that open a modal launching card
ShippedSentry depth: timezone conversion to ET (was UTC-then-PT via hardcoded zone)
ShippedSentry depth: replay_type, count_errors, and other Sentry fields now pass through to context
ShippedTime-window: natural-language parsing for "yesterday," "this/last week," "this/last month," "February 2026," specific dates like "April 20"
ShippedTime-window: ET-aware via date-fns-tz with DST handling
ShippedTime-window: /api/sentry accepts statsPeriod, start, end params with per-window cache
ShippedTime-window: default fallback widened from 24h → 7d
ShippedSource control: CSAT (Credit Builder survey) plumbed into AI context with per-response verbatim tagging
ShippedSource control: data source selector chips (NPS / CSAT / Sentry toggleable, teal filled/outlined)
ShippedSource control: localStorage persistence, last-active chip locks to prevent disabling all sources
ShippedSource control: coming-soon chips (greyed, dashed) for Zendesk, Forethought, Research Studies, User Interviews
ShippedSource control: system prompt informs AI which sources are enabled (honest "Sentry disabled" / "Sentry down" responses)
ShippedFeedback: animated thinking indicator with pulsing teal dot and rotating stage messages, filtered by enabled sources
April 18, 2026v1.0

Clairvoyant Labs launches

ShippedLanding page with section cards
ShippedGusto NPS dashboard — live data from Notion
ShippedFlex NPS dashboard — 8 partners, payroll + non-payroll
ShippedAsk AI — natural language queries across NPS + Sentry data
ShippedCredit Builder research page
ShippedThis changelog
Coming this weekv1.1

NPS enhancements + CSAT foundation

BuildingPulse view (daily/weekly trending) vs Context view (monthly monitoring)Team feedback
BuildingClick-to-filter on all NPS charts and KPI cardsTeam feedback
BuildingDaily drill-down on NPS trend chart with release markersTeam feedback
PlannedCombined NPS + CSAT "User Sentiment" page
PlannedCSAT survey type registry (Notion-based)
On the roadmapv2.0

Full research intelligence platform

RoadmapZendesk + Forethought support ticket integration
RoadmapUser interviews — Notion + Maze
RoadmapUnified user profile across all sources
RoadmapMBR deck generatorTeam feedback
RoadmapMeeting-specific pre-configured viewsTeam feedback
RoadmapResearch explorer — theme-based deep dives
RoadmapWeekly detractor digest to inboxTeam feedback
RoadmapUpgrade /ask thinking indicator from client-side rotating stages to real server-sent events, so the UI reflects actual backend progress rather than synthetic stages
RoadmapSentry user journey mapping enhancements — tie replays, errors, and screen transitions into coherent per-user timelines for research-grade journey analysis
RoadmapSemantic search for /ask — vector embedding + similarity search so questions about "cost" surface comments mentioning "fees," "expensive," or "pricey" without requiring exact-word matches
RoadmapCSAT detail drawer — per-user detail drawer on CSAT comments matching the NPS pattern (full user profile + advance metrics)
RoadmapCross-referenced response history — clicking a user surfaces every survey they've taken (NPS user shows CSAT history; CSAT user shows NPS history) with per-response days-since-first-advance
RoadmapQuestion Explorer rework — pie charts for non-Likert questions, "Marketing quotes" tab on Verbatim responses, NPS-by-state-style bar treatment, JSON-config-driven layout
RoadmapPartner filter sticky header on Flex CSAT — multi-select partner pills in the sticky header at the top of /csat/flex pages
RoadmapSnowflake migration — direct read from Snowflake replacing Notion as the data layer; delivers native Total $, Avg size, Cost % (currently deferred), and Engagement Cohort (currently computed)
RoadmapCompound time filtering on /ask — questions like "users whose first advance was in January but who took a CSAT after April 15"
RoadmapReplay-first Sentry retrieval — make replays the primary artifact for /ask Sentry results, not errors
RoadmapFlow-aware Sentry context — teach the AI which screens belong to onboarding / advance / repayment flows so it can answer "what's breaking in onboarding?"
RoadmapAdmin question/layout config — JSON config in repo letting Mark control which questions appear on which pages, with custom titles and chart types; lightweight version first, admin UI possibly later