Updating Hey-Ozwell Documentation - #312
Conversation
…ce stories The Overview predated most of what shipped; other components get rich auto-generated docs pages via autodocs, which the Hey Ozwell stories never enabled. This brings the voice docs in line with the rest of the library: - HeyOzwell.mdx rewritten as the flagship overview: quick start (drop-in + headless hook), the activation flow as the user experiences it, a full options table, Visit Scribe, a "what runs where" architecture table (AudioWorklet / main thread / Web Worker / network), models-caching-hosting table with the runtime overrides, backend integration seams (onSend / ozwellConfig / Ollama sentinel / proxy note), and a troubleshooting section (mic permission, first-load download, strict-CSP worker-src, doctor-gate tuning, benign ORT warnings). - tags: ['autodocs'] on the six product-facing story files (+ component on Demo and Hands-Free Chat) so each surface gets the standard generated docs page with props tables from the existing JSDoc. The Speaker Verify dev diagnostic intentionally stays autodocs-free. Docs-only; no component code changed. Verified: storybook serves all 7 docs pages, story tests 11/11, prettier/tsc/eslint clean.
… storybook), drop mid-sentence em dashes Pipe tables render as raw text in this Storybook's MDX (remark-gfm is not configured), so the options / architecture / hosting tables are now bulleted lists that render everywhere. Also reworded to remove mid-sentence em dashes.
First video embed in the library's docs: an 80s walkthrough of activation, dictation during model load, on-device transcription, the voice stop phrase, Visit Scribe diarization, and the one-line integration. Plain YouTube link included as a fallback for environments that block the iframe.
There was a problem hiding this comment.
Pull request overview
Expands the Hey Ozwell Storybook documentation from a short overview into integration-focused docs, and aligns the Hey Ozwell Storybook stories with the library’s autodocs pattern so consumers get generated docs pages for the voice surfaces.
Changes:
- Rewrites
HeyOzwell.mdxinto end-to-end integration docs (quick start, flow, options, architecture, hosting/caching, backend wiring, troubleshooting) and embeds a video walkthrough with a link fallback. - Enables Storybook
autodocson the Hey Ozwell product-facing story files. - Adds missing
componentmetadata where needed for autodocs generation.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| src/components/AI/HeyOzwell/WakeWord/WakeWord.stories.tsx | Enables autodocs for the Wake Word story. |
| src/components/AI/HeyOzwell/VoiceSetup.stories.tsx | Enables autodocs for Voice Setup story docs page generation. |
| src/components/AI/HeyOzwell/VoiceManager.stories.tsx | Enables autodocs for Voice Manager story docs page generation. |
| src/components/AI/HeyOzwell/VisitScribe.stories.tsx | Enables autodocs for Visit Scribe story docs page generation. |
| src/components/AI/HeyOzwell/HeyOzwell.stories.tsx | Enables autodocs and provides component for generated docs/props. |
| src/components/AI/HeyOzwell/HeyOzwell.mdx | Replaces the overview with full integration/architecture/troubleshooting documentation and adds a video embed. |
| src/components/AI/HeyOzwell/HandsFreeChat.stories.tsx | Enables autodocs and provides component for generated docs/props. |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 7 changed files in this pull request and generated no new comments.
Suppressed comments (1)
src/components/AI/HeyOzwell/WakeWord/WakeWord.stories.tsx:20
tags: ['autodocs']is enabled, but the story meta doesn’t specify acomponent(and is typed as plainMeta). With autodocs this usually means no generated props table (and can produce warnings), which undermines the goal of enabling standard generated props pages for these stories. Point autodocs at the demo component in this file (or removeautodocsif this story is intentionally hook-only).
const meta: Meta = {
title: 'Product/Feature Modules/AI/Hey Ozwell/Wake Word',
tags: ['autodocs'],
parameters: {
layout: 'centered',
…lare the wake-word component Review findings: - The intro said the assistant's text reply was the only network dependency, which skipped the first-load model download and the opt-in `transcription="server"` path that does send audio off the device. Both are stated up front now, and the "only network stage" line in the architecture list carries the same caveat. - The YouTube embed loaded eagerly whenever the docs page rendered, so every reader paid for a third-party request even without scrolling to it. `loading="lazy"` defers it. - Wake Word was the one autodocs page without `meta.component`, so it generated no props table. It declares `WakeWordDemo` now, matching the other five voice stories.
1505937 to
7a4fbb2
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 7 changed files in this pull request and generated no new comments.
Suppressed comments (1)
src/components/AI/HeyOzwell/HeyOzwell.mdx:165
ozwellChat.tsand other docs read the config vialocalStorage.getItem('ozwellConfig')/localStorage['ozwellConfig']. UsinglocalStorage.ozwellConfighere is inconsistent and can be confusing for readers trying to follow the working code path.
- **`ozwellConfig`**: leave `onSend` off and the built-in client streams from
any OpenAI-compatible endpoint. Configure via `localStorage.ozwellConfig`
or `window.__ozwell` with `{ apiKey, baseURL, model, system, temperature }`.
The sentinel `apiKey: 'ollama'` targets a local Ollama server (no auth
garrity-miepub
left a comment
There was a problem hiding this comment.
Verified the docs against the source. All documented props match useHeyOzwell.ts, the referenced deep-docs exist, and the reworded "on-device by default" framing is more honest and more useful than before. All three Copilot threads addressed with real fixes, CI fully green, branch current with main.
The 80-second video is a great touch. Approving!! 🐙
Docs-only — no component code changed.
(drop-in + headless hook), the activation flow, options reference, Visit
Scribe, a "what runs where" architecture breakdown (AudioWorklet / main
thread / Web Worker / network), model caching + hosting overrides, backend
wiring, and troubleshooting.
docs — with a plain-link fallback for environments that block iframes:
https://www.youtube.com/shorts/hQBGofjXqmg
autodocson the six product-facing voice story files so eachsurface gets the standard generated props page, matching the rest of the
library.
Note from writing these: markdown pipe tables render as raw text in our
Storybook (no
remark-gfmconfigured), so these docs use lists instead.Happy to do a follow-up PR adding
remark-gfm— it would also fix thetables in
Introduction.mdx.