Skip to content

feat(ui): add a local Storybook catalog of the product - #391

Open
vishr wants to merge 1 commit into
mainfrom
feat/storybook-catalog
Open

vishr wants to merge 1 commit into
mainfrom
feat/storybook-catalog

Conversation

@vishr

@vishr vishr commented Oct 28, 2026

Copy link
Copy Markdown
Member

Summary

  • Storybook 10 catalog of the shipping UI in ui/host: Pages (chat, dashboards, dashboard, settings, sign-in), Flows (Ask a question, Ask chat for a dashboard), Components, Layout and Embedded analysis views. 54 stories in total.
  • Stories render the real route tree, shell, SSE client, receipt and the built sandboxed MCP app. They use typed fictional commerce telemetry and a per-story fetch mock that keeps state (threads, transcripts, saved dashboards). Unexpected requests fail the story.
  • just design serves the catalog on port 6706, for local review only; it is never published. just design-check runs every story, play, axe check (a11y.test: "error") and layout check in Chromium for light and dark at 1280×800 and 1024×768 (216 tests, about 1.5 min).
  • CI runs just design-check in the browser smoke job after Chromium is installed. just check stays browser-free.
  • Production builds fail if any story, fixture or .storybook module is imported. Knip excludes those inputs.
  • A toolbar global, Stream pace → Recording, plays the flows at realistic speed for recording landing clips.
  • Unit tests move to vitest.unit.config.ts; vitest.config.ts now owns the catalog.
  • Vitest is bumped to 5.0.5 for GHSA-p458-7748-mcp3.
  • Product change: truncated rail labels get a title with the full text. The embedded assets are rebuilt.

Existing accessibility issues in the shipping markup are kept as narrow, documented exceptions in ui/host/src/catalog/accessibility.ts. They are tracked in a follow-up issue.

Verification

  • bun run lint: pass
  • bun run test: 1464 passed
  • just design-check: 216 passed, 4 scheme/width cells
  • just ui-deadcode: pass
  • just ui-check: embedded assets match
  • bun run design-build: pass
  • Checked by eye at 1280×800 in both schemes: both flows, and the dashboard after opening it from the flow (multi-column grid, sidebar lists the new chat and the saved dashboard).

Storybook 10 renders the shipping pages, components, embedded analysis
views and two journeys (asking a question, asking chat for a dashboard)
against typed fictional telemetry and a per-story fetch mock, so the UI can
be reviewed and recorded without a backend. It is local review only and is
never published.

`just design` serves it; `just design-check` runs every story, play,
accessibility check and layout check in Chromium for light and dark at
1280x800 and 1024x768. CI runs the catalog in the browser smoke job so
`just check` stays browser-free. Production builds fail if a story or
fixture is imported.

A toolbar "Stream pace" global plays flows at recording speed. Known
accessibility issues in the shipping markup are recorded as narrow,
documented exceptions until they are fixed. Truncated rail labels now carry
a title with the full text. Vitest moves to 5.0.5 for GHSA-p458-7748-mcp3.
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