51 lines
2.2 KiB
Markdown
51 lines
2.2 KiB
Markdown
# 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.
|