# Voice Wake + Capture Checklist

Date: 2026-02-16
Status: completed

## Scope

- Implement a practical Voice Wake / Talk Mode slice.
- Implement Camera / Screen Capture via host tools.

## Completed

- Added `audio.talk_mode` config schema:
  - `enabled` (default `false`)
  - `wake_phrase` (default `hey flynn`)
  - `timeout_ms` (default `120000`)
  - `allow_manual_toggle` (default `true`)
- Wired talk mode gating in `src/daemon/routing.ts`:
  - wake phrase activation with timed listen window
  - manual controls: `/talk on`, `/talk off`, `/talk status`
  - idle mode drops non-wake text when talk mode is enabled
- Added built-in capture tools in `src/tools/builtin/capture.ts`:
  - `screen.capture`
  - `camera.capture`
  - returns base64 image payloads (`image/png` or `image/jpeg`)
- Registered capture tools in builtin index and tool policy runtime/coding sets.
- Updated docs:
  - `README.md`
  - `config/default.yaml`
  - gap/roadmap docs in `docs/plans/`

## Tests

- `src/daemon/routing.test.ts` (wake phrase/talk mode behavior)
- `src/tools/builtin/capture.test.ts` (capture tool command wrapping behavior)
- `src/config/schema.test.ts` (talk mode schema defaults/overrides)

## Verification

- `pnpm test:run src/daemon/routing.test.ts src/tools/builtin/capture.test.ts src/config/schema.test.ts src/tools/policy.test.ts`
- `pnpm typecheck`
