Skip to content

The full-scenario demo: one spec, e2e test or video capture - #75

Merged
pmanko merged 4 commits into
mainfrom
feat/full-scenario-demo
Aug 26, 2026
Merged

The full-scenario demo: one spec, e2e test or video capture#75
pmanko merged 4 commits into
mainfrom
feat/full-scenario-demo

Conversation

@pmanko

@pmanko pmanko commented Aug 25, 2026

Copy link
Copy Markdown
Member

The spec behind the new openclinai.org video, built so the demo can never drift from a working product:

  • catalyst-ui/e2e/full-scenario-demo.spec.ts — a plain-language OpenELIS question becomes checked SQL, is refined in conversation, both results are saved as Datasets, a table and a grouped-bar Widget are built over them, a Dashboard collects both, Publish writes the native Superset bundle, the spec runs the pinned importer (the seam is covered end to end), and the finished dashboard renders in Superset. --project=deterministic asserts; --project=demo-video records; only dwell() differs.
  • e2e/support/superset-import.ts — runs the pinned importer against the live stack with the env invariants that cost real debugging (same compose project, SUPERSET_PORT stamped into the receipt URL, one checkout for gateway + importer).
  • scripts/superset-demo-fixture.mjs — idempotent Superset prep (HIV analytics connection the shipped init omits, SQL Lab tab hygiene, permalink minting) for SQL Lab work; the demo itself no longer needs it.
  • fix(ui): the guidance composer leaves the workbench surface — the unstyled pin bar is removed per owner review (see Session guidance has no shippable surface #74 for the disposition); guidance stays an API capability, and the spec pins through the gateway the way validation runs do.
  • docs/full-scenario-demo.md — how to run both modes, and the sharp edges.

Issue log from building it (33 findings): staged beside the cut in the harness repo's artifacts/demo-videos/per-dataset/.

pmanko added 4 commits August 26, 2026 00:34
…pture

A plain-language laboratory question becomes checked SQL, is refined in
conversation, both results are saved as governed Datasets, a table and a
grouped-bar Widget are built over them, a Dashboard collects both,
Publish to Superset writes the native bundle, the pinned importer brings
it in (the spec runs it, so the Bundle ready -> Imported flip is covered
end to end), and the finished dashboard renders in Superset.

One spec, two Playwright projects: deterministic asserts with no pacing;
demo-video is the same steps with dwells, recorded at 1280x720 for the
published cut. The demo never diverges from the test, so the recording
stays evidence that the product works.

scripts/superset-demo-fixture.mjs remains for SQL Lab work (HIV
connection + permalink); the demo itself no longer needs Superset UI
driving beyond viewing the imported dashboard.
Eight findings from running it against the live stack, each recorded in
the demo issue log:

- the dataset tile's button is TurnNotebook's 'Save to datasets', not the
  panel component's aria-label, and the review dialog only closes through
  its own Close button — the workspace's control sits behind the backdrop
- the tucked composer is only restored by the floating 'back to [n] · ask'
  pill; the toggle is CSS-hidden and the top-right jump control only
  scrolls
- on this catalog the writer projects COUNT(*) without the alias its own
  structured output promises, and the advisory validation rejects it —
  so the demo now pins standing guidance ('Alias aggregate columns
  explicitly…') before refining, which is both the fix and a governance
  beat worth showing
- the Dashboards library never refetches import receipts on navigation;
  a reload is what flips Bundle ready to Imported
The pin bar sat unstyled at the top of the thread — truncated placeholder,
orphaned button, and nothing on the page saying what it was for. The owner's
read on seeing it: ugly, malformed, no use case visible. Session guidance
stays an API-level capability (the harness pins through the gateway and
asserts it lands; the demo spec now pins the same way), and the composer can
return when it has a designed home.

The demo plan also says much less: one-word step cards, captions only where
the footage cannot speak for itself.
@pmanko
pmanko force-pushed the feat/full-scenario-demo branch from 550520f to 37cd666 Compare August 26, 2026 07:38
@pmanko
pmanko merged commit 85be9ba into main Aug 26, 2026
5 checks passed
@pmanko
pmanko deleted the feat/full-scenario-demo branch August 26, 2026 07:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant