feat: guarantee manual fallback and in-session draft recovery (#12)
Quality gates / quality (pull_request) Successful in 1m54s

Logging must never depend on AI availability, and an unsaved entry must not
disappear when the user navigates away mid-log.

- add src/vision-readiness.js so the photo flow consumes one readiness contract
- when the worker is offline/disabled/unknown, offer no AI action and no
  analysis-consent prompt, and keep manual Bristol entry one action away
- add src/draft.js and make the draft own the photo so a chosen photo and
  entered context survive a recoverable close or navigation, with a visible
  kept-draft summary and an explicit start over
- drafts stay in session memory only: a photo awaiting consent is never
  persisted, and reload starts clean
- service worker now refuses to cache image bodies in addition to analysis
  requests and no-store responses
- tests: 2 new unit files, 3 service-worker privacy assertions (1 hold-out),
  1 browser acceptance file, release-demo and CI/package assertions
- release demo now visibly replays the vision-offline pass and the retained
  draft with synthetic data and an in-script assertion
This commit is contained in:
timmy committed 2026-10-07 08:12:43 +00:00
1 parent 5dac04b1e6
commit dce668e72b
20 files changed
+374 -22

No files matched your search

+1
View File
@@ -52,6 +52,7 @@ jobs:
npm run test:photo
npm run test:mobile-capture
npm run test:sleek
npm run test:manual-fallback
- name: Dependency audit
run: npm audit --audit-level=high
- name: Syntax checks