timmy-talking-turd/tests
Timmy b8532f587d
All checks were successful
Quality gates / quality (pull_request) Successful in 1m42s
feat: version ledger migrations and hardened JSON portability
Implements #35.

- importLedger migrates prior schema versions (v0 bare-array legacy
  exports and the v1 envelope) and fails safely on future versions,
  malformed JSON, wrong-product envelopes, and oversized files with a
  new 2 MiB MAX_IMPORT_BYTES guard applied before parsing.
- exportLedger normalizes entries through sanitizeEntry so confirmed
  values and bounded provenance round-trip while smuggled secrets and
  unknown fields never enter the portable file.
- Entries may carry a whitelisted provenance origin ('user' or
  'ai-suggestion'); mergeVisualSuggestion records 'ai-suggestion' only
  when a suggestion is actually applied, keeping nonvisual fields
  user-owned.
- App import now merges into the existing ledger instead of replacing
  it, so a failed or partial import can never silently drop
  user-owned records.
- Service-worker shell cache bumped to v6 (per base-path namespace)
  so installed PWAs receive the migration code; old v5 caches are
  purged on activation.
- New tests/ledger-portability.acceptance.mjs browser gate covers
  export round trip, merge import, safe-failure surfacing, root vs
  /timmy-staging storage isolation, and Delete Everything for both
  namespaces; wired into package.json test:portability and CI quality.yml.

Deterministic medical safety unchanged: urgent-flag detection, red-flag
copy, and chat escalation paths are untouched; all fixtures synthetic.
2026-08-22 20:32:57 +00:00
..
fixtures feat: simplify Timmy and add secure Hermes chat 2026-08-20 16:21:00 +00:00
agent-gateway.acceptance.test.js fix: enforce urgent chat override server-side 2026-08-20 16:41:35 +00:00
analysis.test.js feat: version ledger migrations and hardened JSON portability 2026-08-22 20:32:57 +00:00
ci-workflow.test.js feat: add hardened atomic staging deployment 2026-08-21 14:49:28 +00:00
domain.test.js feat: version ledger migrations and hardened JSON portability 2026-08-22 20:32:57 +00:00
hermes-agent-service.test.js fix: recognize past-tense vomiting in chat safety 2026-08-20 17:14:20 +00:00
ledger-portability.acceptance.mjs feat: version ledger migrations and hardened JSON portability 2026-08-22 20:32:57 +00:00
photo-first.acceptance.mjs ci: enforce reproducible quality gates 2026-08-19 08:09:38 +00:00
product-decisions.test.js feat: simplify Timmy and add secure Hermes chat 2026-08-20 16:21:00 +00:00
release-demo.test.js fix: gate bootstrap syntax in release build 2026-08-21 12:56:48 +00:00
selfhost-bootstrap.test.js feat: package pinned self-host vision bootstrap 2026-08-21 08:15:32 +00:00
service-worker-runtime.test.js feat: version ledger migrations and hardened JSON portability 2026-08-22 20:32:57 +00:00
sleek-chat.acceptance.mjs fix: make staging compatible with strict CSP 2026-08-21 15:01:05 +00:00
staging-config.test.js feat: add hardened atomic staging deployment 2026-08-21 14:49:28 +00:00
staging-deploy.test.py feat: add hardened atomic staging deployment 2026-08-21 14:49:28 +00:00
staging-health.test.js fix: make staging compatible with strict CSP 2026-08-21 15:01:05 +00:00
staging.acceptance.mjs feat: add hardened atomic staging deployment 2026-08-21 14:49:28 +00:00
training-ingest.test.js feat: ship photo-first Timmy prototype and sovereign vision spike 2026-08-19 01:54:29 +00:00
ui.acceptance.mjs fix: enforce urgent chat override server-side 2026-08-20 16:41:35 +00:00
vision-config.test.js feat: add hardened atomic staging deployment 2026-08-21 14:49:28 +00:00
vision-service.test.js feat: ship photo-first Timmy prototype and sovereign vision spike 2026-08-19 01:54:29 +00:00