Files
suaveplan/openspec/archive/2026-05-23-enterprise-react-audio-stream-hooks-components/tasks.md
2026-05-27 23:29:53 +01:00

2.2 KiB
Raw Blame History

Tasks — enterprise-react-audio-stream-hooks-components (chunk C)

0. Pre-flight (non-negotiable)

  • 0.1 Confirm clean working tree (git status reports nothing) and no in-flight worktrees with uncommitted work (git worktree list then git status in each)
  • 0.2 Account for every .claude/worktrees/* entry; prune stale ones via bun scripts/worktree-prune.ts --remove.
  • 0.3 Confirm MANIFEST.md matches find packages -maxdepth 3 -name package.json | wc -l.

1. Provider

  • 1.1 src/provider/stream-provider.tsx — StrictMode-safe singleton, injectable sessionFactory
  • 1.2 src/provider/stream-context.ts, stream-provider.test.tsx, .md, index.ts

2. Hooks (6 dirs)

  • 2.1 src/hooks/use-stream-session/
  • 2.2 src/hooks/use-stream-room/
  • 2.3 src/hooks/use-stream-peers/
  • 2.4 src/hooks/use-stream-mixer/ — DAW solo semantics
  • 2.5 src/hooks/use-stream-levels/
  • 2.6 src/hooks/use-stream-recording/
  • 2.7 src/hooks/use-stream-permissions/

3. Components (4 dirs)

  • 3.1 src/components/stream-room/ + .stories.tsx
  • 3.2 src/components/stream-mixer/ + .stories.tsx
  • 3.3 src/components/stream-recorder/ + .stories.tsx
  • 3.4 src/components/stream-permissions-banner/ + .stories.tsx

4. Subpath exports

  • 4.1 package.json exports: ./provider, ./hooks, ./hooks/<name> × 6, ./components, ./components/<name> × 4

5. Tests + docs

  • 5.1 Per-hook .test.tsx against a fake StreamSession injected via provider
  • 5.2 Per-component .test.tsx covering aria + pointer + keyboard
  • 5.3 Every it(...) carries { timeout: 5000 } (30000 async)
  • 5.4 Sibling .md per implementation (≥200 words)
  • 5.5 README: ## Hooks + ## Components sections enumerating every export

6. Pre-archive verification

  • 6.1 bunx turbo lint typecheck test --filter=@suaveplan/react-audio-stream — green on chunk-C files
  • 6.2 bunx turbo test:coverage --filter=@suaveplan/react-audio-stream — 100/100/100/100 on touched modules

7. Hand-off (no archive yet)

  • 7.1 Commit on feat/react-audio-stream-hooks-components. No spec fold / no archive.