DemoPrep Status Report

April 28, 2026
Active Development — Beta Launch

Test / Production Environment Separation

Introduced a dedicated test HF Space (separate from the live production app) so changes can be validated end-to-end before reaching users. A visible banner appears in the test environment so there's no confusion about which instance you're in. The test pipeline now requires an explicit target URL — there's no default that could silently point at the wrong environment. This lets us iterate fast without risking an active demo.

End-to-End Quality Test Suite

Built a Playwright-based test harness that runs against the live test app and grades each run with an LLM. The suite covers six test cases across Financial Services, Retail, Technology, and a freeform Custom vertical. Each run gets a quality score (0–100) across data, model, liveboard, and story dimensions. Scores are running 67–77/100 on passing runs — this becomes the ongoing quality bar we measure against as we make changes.

The suite also handles real-world test logistics: automatic re-login when sessions expire mid-run, space rebuild detection after a push, stuck-stage timeouts, and pipeline error detection so failures bail early instead of waiting the full timeout window.

Critical Pipeline Bug Fixed — Every Liveboard Was Crashing

Caught and fixed a NameError in the MCP liveboard creation function — a variable referenced as outliers throughout the function but defined as data_outliers in the parameter signature. This caused every single liveboard creation attempt to crash on the first reference. The bug was invisible without a full end-to-end test, which is exactly what the new quality suite caught.

Data Quality Improvements

The DATES table now always spans two full years regardless of dataset size — previously it was truncated on smaller presets, which broke time-based KPIs. Default fact table size bumped from 1,000 to 10,000 rows, giving liveboards enough data to show meaningful trends, comparisons, and KPI movement out of the box. Realistic ranges added for inventory and supply chain columns (days on hand, lead time, safety stock).

Numeric Type Fix

Snowflake's internal type names (FIXED for INT, REAL for FLOAT) weren't recognized, causing every row insert to fail with a type mismatch error on many runs. All three conversion layers now handle the full set of Snowflake numeric types.

LegitData API Call Reduction

Entity generation was making 50+ AI API calls per run (10 per dimension table × 5 tables). Replaced with a seed-and-cycle approach: one API call generates up to 50 entities, then cycles them to fill the target. Eliminates timeout failures on larger presets and cuts data generation time significantly.

ThoughtSpot Auth Hardening

Removed all fallback paths that allowed the pipeline to continue with a wrong or missing ThoughtSpot URL. The TS Environment dropdown is now the required input — if it's not set, the pipeline fails immediately with a clear error instead of silently using stale credentials or a wrong environment. This prevents a class of subtle failures where objects were being created in the wrong TS instance.

Test Environment Banner

The test HF Space now shows a visible banner so there's no confusion between the test and production instances — no more accidentally running a demo against the wrong environment.

Admin UX

User list in the Admin tab is now sorted by most recent login, converted to EST. Makes it easy to see who's been active recently without scanning an unordered list.

* CUSTOM * Vertical

The custom vertical path has been renamed from the old star-character version for consistency and positioned at the bottom of the vertical dropdown — easier to find, cleaner to read.

Persona & Vertical Matrix

Built out a full 3-level dropdown (vertical → line → function) that drives the demo story — KPIs, visualizations, and target persona all flow from the selection. A matrix editor tab in the app lets us view and edit coverage directly. The matrix was seeded with TS resources and AI-filled gaps; we're actively looking for field input to make each vertical's story more accurate.

Pipeline Logging Overhaul

Every stage of the pipeline now writes structured logs to Supabase: DDL generation, Snowflake deployment, ThoughtSpot model creation, liveboard enhancement, sharing, tagging, and Sage indexing. Failures capture the exact step and error message. An Admin log viewer lets us filter by user and review any run. Before this, most of the pipeline ran silently — when something failed, there was no visibility into where or why.

Improved Onboarding

A Run History tab now gives a full log of every pipeline run — company, use case, vertical, status, and duration — making it easy to review activity and troubleshoot failures. Automated Slack onboarding is implemented and ready: new users will receive credentials and setup instructions automatically. Goes live once the Slack app clears the approval process.

Previously Delivered — Through April 16

Industry Matrix — 3-Level Cascade Navigation

Completely rebuilt the demo selection system. Replaced the flat two-field form with a 3-level cascade: Industry → Line of Business → Function, with 15 lines of business across all verticals. The matrix drives curated KPIs, story questions, persona, and talking points for each combination, with a smart fallback chain. A Custom path handles demos outside the defined matrix.

Demo Story Quality

Rebuilt question generation around a story-first approach — curated narrative questions, KPI definitions, persona context, and business problem are injected into the AI prompt as primary guidance instead of letting the AI guess from available columns.

UI & Navigation

App tab and Chat tab separated. Custom vertical path added. Spotter Viz generates dual stories (matrix-grounded + AI-generated). AI Feedback and Deploy Log consolidated. Pipeline progress indicator now correctly advances to Complete. Remember Me on login.

Logging, Observability & Infrastructure

Comprehensive logging across all pipeline stages with configurable log levels (off / regular / verbose) settable in Admin. Admin run history tab shows every pipeline run, user, status, failure stage, and duration. Per-session state isolation for all loggers — concurrent users no longer share state.

Spotter Viz Story

Fixed story generation flow. Output is clean numbered prompts only, with full model URL included so Spotter doesn't ask which data source to use.

Working On Next