In-product feedback capture: overlay UI, SDK, and API contract for issue and capability reports with optional text, voice, and screenshot.
| Workspace | Purpose |
|---|---|
packages/feedback-ui |
React overlay (FeedbackOverlay) and capture controls |
packages/feedback-sdk-core |
Shared types and validation |
packages/feedback-sdk-web |
Browser client and multipart submit |
apps/reference-react |
Reference host app integrating @cc-feedback/ui |
apps/mock-feedback-api |
Mock POST /v1/feedback for local development |
npm install
npm run -w @cc-feedback/mock-feedback-api dev # Terminal 1
npm run -w @cc-feedback/reference-react dev # Terminal 2Open the reference app, trigger the feedback overlay, and submit an issue or capability report. Closing the overlay must unfreeze host interaction.
| Command | Description |
|---|---|
npm run build |
Build all workspaces |
npm run test |
Run tests |
npm run test:watch |
Run tests in watch mode |
npm run lint |
Lint |
npm run typecheck |
TypeScript check |
Source of truth lives in docs/feedback/:
- README — Doc index and cross-doc invariants
- UI plan — Overlay lifecycle, state model, accessibility, host integration
- API contract —
POST /v1/feedbackmultipart schema, validation, errors - Infrastructure — Anti-spam, retention, moderation, rollout
- Runbook — Local smoke test, failure modes, playbooks, abuse response
Read in order: UI → API → Infra → Runbook.
- Overlay: Open/close freezes and unfreezes host interaction;
client.open()/client.close()are required. - Submit: At least one of
textoraudiois required;metadatais JSON in multipart form-data. - Issue reports require
browserInfoandlogsWindow; capability reports do not.
Private.