# Whispr Mic Marketplace Implementation Plan

Superseded for Matrix work: Whispr is now intended to be a full in-Matrix product extension under
`extensions/whispr/`, not a separate app installed alongside Matrix. Keep this plan only as history
for the mic affordance and marketplace slice.

## Goal
Add the Flow-side foundation for the ZoneGaze ecosystem: Marketplace entry, Whispr extension metadata, a persisted unified-mode toggle, and mic affordances on prose text composers that route users to Marketplace when Whispr is not installed.

## Scope
- Keep Whispr product internals inside `extensions/whispr/` and host it through Matrix plugin
  activation.
- Add Marketplace v1 with one free extension: ZoneGaze Whispr.
- Persist a "use as one app" preference locally so Flow can embed Whispr screens when a future bridge is available.
- Add mic buttons to shared natural-language composers in Flow.
- Avoid fake transcription. If no Whispr bridge is available, direct users to Marketplace.

## Tests First
- Verify text insertion at cursor and selected ranges.
- Verify Whispr Marketplace metadata.
- Verify TopBar exposes Marketplace.
- Verify task prompt and Cline chat composers expose Whispr dictation actions.

## Implementation Steps
1. Add Whispr marketplace/domain utilities under `flow/web/src/whispr/`.
2. Add Marketplace dialog and Whispr dictation button components under `flow/web/src/components/whispr/`.
3. Wire Marketplace into `TopBar` and `App`.
4. Wire mic insertion into `TaskPromptComposer` and `ClineChatComposer`.
5. Run focused unit tests, then broader web validation.
6. Merge validated task branch back into `development`, push, and restart the local app from `development`.
