Spaces:
Running
Running
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8" /> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | |
| <title>DemoPrep Status Report</title> | |
| <style> | |
| * { box-sizing: border-box; margin: 0; padding: 0; } | |
| body { | |
| font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; | |
| background: #0f1117; | |
| color: #e2e8f0; | |
| line-height: 1.7; | |
| padding: 48px 24px; | |
| } | |
| .container { | |
| max-width: 820px; | |
| margin: 0 auto; | |
| } | |
| .header { | |
| border-bottom: 1px solid #2d3748; | |
| padding-bottom: 28px; | |
| margin-bottom: 36px; | |
| } | |
| .header h1 { | |
| font-size: 28px; | |
| font-weight: 700; | |
| color: #ffffff; | |
| margin-bottom: 6px; | |
| } | |
| .header .date { | |
| font-size: 14px; | |
| color: #718096; | |
| margin-bottom: 20px; | |
| } | |
| .links { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 12px; | |
| margin-top: 16px; | |
| } | |
| .links a { | |
| display: inline-block; | |
| background: #1a202c; | |
| border: 1px solid #2d3748; | |
| border-radius: 6px; | |
| padding: 8px 16px; | |
| font-size: 13px; | |
| color: #63b3ed; | |
| text-decoration: none; | |
| transition: border-color 0.15s; | |
| } | |
| .links a:hover { | |
| border-color: #63b3ed; | |
| } | |
| .links a .label { | |
| color: #718096; | |
| margin-right: 6px; | |
| } | |
| .status-badge { | |
| display: inline-block; | |
| background: #1c4532; | |
| color: #68d391; | |
| border: 1px solid #276749; | |
| border-radius: 20px; | |
| padding: 3px 12px; | |
| font-size: 12px; | |
| font-weight: 600; | |
| margin-bottom: 16px; | |
| } | |
| h2 { | |
| font-size: 11px; | |
| font-weight: 700; | |
| letter-spacing: 0.1em; | |
| text-transform: uppercase; | |
| color: #718096; | |
| margin: 40px 0 20px; | |
| } | |
| .section { | |
| background: #1a202c; | |
| border: 1px solid #2d3748; | |
| border-radius: 8px; | |
| padding: 24px; | |
| margin-bottom: 16px; | |
| } | |
| .section h3 { | |
| font-size: 15px; | |
| font-weight: 600; | |
| color: #ffffff; | |
| margin-bottom: 10px; | |
| } | |
| .section p { | |
| font-size: 14px; | |
| color: #a0aec0; | |
| } | |
| .section p + p { | |
| margin-top: 10px; | |
| } | |
| .next-list { | |
| list-style: none; | |
| padding: 0; | |
| } | |
| .next-list li { | |
| font-size: 14px; | |
| color: #a0aec0; | |
| padding: 10px 0; | |
| border-bottom: 1px solid #2d3748; | |
| padding-left: 20px; | |
| position: relative; | |
| } | |
| .next-list li:last-child { | |
| border-bottom: none; | |
| } | |
| .next-list li::before { | |
| content: "β"; | |
| position: absolute; | |
| left: 0; | |
| color: #4a5568; | |
| } | |
| .archive-section { | |
| background: #111827; | |
| border: 1px solid #1f2937; | |
| border-radius: 8px; | |
| padding: 24px; | |
| margin-bottom: 16px; | |
| } | |
| .archive-section h3 { | |
| font-size: 15px; | |
| font-weight: 600; | |
| color: #6b7280; | |
| margin-bottom: 10px; | |
| } | |
| .archive-section p { | |
| font-size: 14px; | |
| color: #6b7280; | |
| } | |
| .archive-toggle { | |
| font-size: 12px; | |
| color: #4a5568; | |
| cursor: pointer; | |
| text-decoration: underline; | |
| margin-bottom: 16px; | |
| display: block; | |
| } | |
| .footer { | |
| margin-top: 48px; | |
| padding-top: 24px; | |
| border-top: 1px solid #2d3748; | |
| font-size: 13px; | |
| color: #4a5568; | |
| text-align: center; | |
| } | |
| .footer a { | |
| color: #63b3ed; | |
| text-decoration: none; | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <div class="container"> | |
| <div class="header"> | |
| <h1>DemoPrep Status Report</h1> | |
| <div class="date">May 20, 2026</div> | |
| <div class="links"> | |
| <a href="https://thoughtspot-dp-demoprep.hf.space" target="_blank"> | |
| <span class="label">App</span>thoughtspot-dp-demoprep.hf.space | |
| </a> | |
| <a href="https://huggingface.co/spaces/boone-ts/demoprep_doc" target="_blank"> | |
| <span class="label">Enablement</span>Quick Start Guide | |
| </a> | |
| </div> | |
| </div> | |
| <div class="status-badge">Active Development β Beta Launch</div> | |
| <div class="section"> | |
| <h3>Settings Redesign</h3> | |
| <p>Pipeline controls are now live on the main screen. TS Environment and AI Model are always visible; a collapsible Settings panel gives you Liveboard Name, Data Size (Small / Medium / Standard / Large), Geo Scope, and more. Values take effect immediately β no more save-and-reload cycle.</p> | |
| </div> | |
| <div class="section"> | |
| <h3>AI-Generated Viz Titles</h3> | |
| <p>Liveboard visualizations now get human-readable titles from an AI pass before the liveboard is published. Raw column-name titles like "AspUsd by ProductCategory" become "Avg Selling Price by Category." One LLM call renames all vizzes in context before TML import.</p> | |
| </div> | |
| <div class="section"> | |
| <h3>KPI Layout Fix</h3> | |
| <p>Fixed a bug where dimensional breakdowns ("Revenue by Region") were being incorrectly promoted into the KPI group. The KPI section now contains only true single-metric KPIs.</p> | |
| </div> | |
| <div class="section"> | |
| <h3>Chart Variety</h3> | |
| <p>Multi-dimension breakdowns now render as stacked columns instead of defaulting to line charts. Categorical chart type detection improved so the right chart type is applied consistently.</p> | |
| </div> | |
| <div class="section"> | |
| <h3>Tag Assignment Fixed</h3> | |
| <p>Tags now successfully assign to liveboards on every run. The API call was returning 404 β fixed by correcting the object type mapping for the v2 endpoint.</p> | |
| </div> | |
| <div class="section"> | |
| <h3>Quality Test Suite β 8/8 at B Average</h3> | |
| <p>Expanded liveboard TML limit from 4,000 to 15,000 characters so the grader sees all 10 visualizations, not just the first 2β3. Fixed schema extraction and DATES table row count (now always 730 rows / 2 years). Added two-level timeout to prevent MCP hangs from stalling the whole suite. Suite is now passing 8/8 runs with a B average quality score.</p> | |
| </div> | |
| <div class="section"> | |
| <h3>Release Workflow</h3> | |
| <p>Established a clean main / develop / hotfix branching strategy. Tagged v1.0.0 on main. Sprint work now flows through develop β hf-test; production releases go through main β hf.</p> | |
| </div> | |
| <div class="section"> | |
| <h3>Claude Opus 4.6</h3> | |
| <p>Added as an available model option in the UI.</p> | |
| </div> | |
| <h2>Previously Delivered β Through April 28</h2> | |
| <div class="archive-section"> | |
| <h3>Test / Production Environment Separation</h3> | |
| <p>Introduced a dedicated test HF Space 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.</p> | |
| </div> | |
| <div class="archive-section"> | |
| <h3>End-to-End Quality Test Suite</h3> | |
| <p>Built a Playwright-based test harness that runs against the live test app and grades each run with an LLM. Each run gets a quality score (0β100) across data, model, liveboard, and story dimensions. Handles real-world test logistics: auto re-login, space rebuild detection, stuck-stage timeouts, and early bail on pipeline errors.</p> | |
| </div> | |
| <div class="archive-section"> | |
| <h3>Critical Pipeline Bug Fixed</h3> | |
| <p>Caught and fixed a NameError in the MCP liveboard creation function β a variable referenced throughout but defined under a different name in the parameter signature. Every liveboard creation attempt was crashing silently; the quality suite caught it.</p> | |
| </div> | |
| <div class="archive-section"> | |
| <h3>Data Quality & Numeric Type Fixes</h3> | |
| <p>DATES table now always spans two full years. Default fact table size bumped from 1,000 to 10,000 rows. Snowflake internal type names (FIXED, REAL) now handled correctly across all conversion layers.</p> | |
| </div> | |
| <div class="archive-section"> | |
| <h3>LegitData API Call Reduction</h3> | |
| <p>Replaced 50+ per-run AI API calls for entity generation with a seed-and-cycle approach β one call, then cycle to fill the target. Eliminated timeout failures on larger presets.</p> | |
| </div> | |
| <div class="archive-section"> | |
| <h3>Pipeline Logging, Auth Hardening & Admin UX</h3> | |
| <p>Every pipeline stage now writes structured logs to Supabase. ThoughtSpot URL is now a required input β no more silent fallbacks to wrong environments. Admin user list sorted by most recent login in EST.</p> | |
| </div> | |
| <h2>Previously Delivered β Through April 16</h2> | |
| <div class="archive-section"> | |
| <h3>Industry Matrix β 3-Level Cascade Navigation</h3> | |
| <p>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.</p> | |
| </div> | |
| <div class="archive-section"> | |
| <h3>Demo Story Quality</h3> | |
| <p>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.</p> | |
| </div> | |
| <div class="archive-section"> | |
| <h3>UI & Navigation</h3> | |
| <p>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.</p> | |
| </div> | |
| <div class="archive-section"> | |
| <h3>Logging, Observability & Infrastructure</h3> | |
| <p>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.</p> | |
| </div> | |
| <div class="archive-section"> | |
| <h3>Spotter Viz Story</h3> | |
| <p>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.</p> | |
| </div> | |
| <h2>Working On Next</h2> | |
| <div class="section"> | |
| <ul class="next-list"> | |
| <li>Data Realism β Quality suite is passing 8/8 at a B average. Remaining polish: industry-specific KPI depth for automotive and airline verticals, and tightening generated metric relationships before wide rollout.</li> | |
| <li>Enablement β HTML user guide and demo videos</li> | |
| <li>Async Pipeline β Data population and ThoughtSpot model creation still sequential; parallel execution would cut pipeline time significantly</li> | |
| <li>LLM Cost Tracking β Log token usage and estimated cost per run to Supabase; surface in Admin tab</li> | |
| </ul> | |
| </div> | |
| <div class="footer"> | |
| DemoPrep Β· <a href="https://thoughtspot-dp-demoprep.hf.space">App</a> Β· <a href="https://huggingface.co/spaces/boone-ts/demoprep_doc">Enablement Guide</a> | |
| </div> | |
| </div> | |
| </body> | |
| </html> | |