Split rear-camera and gallery paths with clear mobile controls.
Recover from closed/denied picker, corrupt image, and retake without losing manual fallback.
Keep analysis disabled until explicit consent; no image request occurs during recovery.
Update the release demo to visibly exercise camera cancellation, gallery fallback, synthetic data, touch indicators, and non-diagnostic privacy copy.
Evidence
npm test — 67/67 passed
npm run test:ui — passed
npm run test:photo — passed
npm run test:mobile-capture — passed at 390x844 and 393x852
npm run test:sleek — passed
npm run check:syntax — passed
npm audit --audit-level=high — 0 vulnerabilities
Real demo path recorded successfully to VP8 WebM, 404x720
Privacy/safety: synthetic fixture only; no upload before explicit consent; no diagnostic or symptom inference changes; no production service changes.
Closes #11
## Outcome
- Split rear-camera and gallery paths with clear mobile controls.
- Recover from closed/denied picker, corrupt image, and retake without losing manual fallback.
- Keep analysis disabled until explicit consent; no image request occurs during recovery.
- Update the release demo to visibly exercise camera cancellation, gallery fallback, synthetic data, touch indicators, and non-diagnostic privacy copy.
## Evidence
- `npm test` — 67/67 passed
- `npm run test:ui` — passed
- `npm run test:photo` — passed
- `npm run test:mobile-capture` — passed at 390x844 and 393x852
- `npm run test:sleek` — passed
- `npm run check:syntax` — passed
- `npm audit --audit-level=high` — 0 vulnerabilities
- Real demo path recorded successfully to VP8 WebM, 404x720
Privacy/safety: synthetic fixture only; no upload before explicit consent; no diagnostic or symptom inference changes; no production service changes.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes #11
Outcome
Evidence
npm test— 67/67 passednpm run test:ui— passednpm run test:photo— passednpm run test:mobile-capture— passed at 390x844 and 393x852npm run test:sleek— passednpm run check:syntax— passednpm audit --audit-level=high— 0 vulnerabilitiesPrivacy/safety: synthetic fixture only; no upload before explicit consent; no diagnostic or symptom inference changes; no production service changes.