timmy-talking-turd/tests
Timmy dd86d6675d
Some checks failed
Quality gates / quality (pull_request) Failing after 1m28s
fix: close hostile-review blockers in ledger portability
- provenance origin set is own-safe exact membership (Set.has); inherited
  toString/constructor/__proto__ names can never become origins
- import/export symmetry restored with an explicit bounded policy:
  MAX_IMPORT_BYTES raised 2 MiB -> 16 MiB UTF-8 bytes, above any export
  this app can produce (photos capped at 4 MiB binary), so valid exports
  always re-import without silent data loss while hostile files stay bounded
- byte limit is byte-exact now: utf8ByteLength() measures real UTF-8 bytes
  (multibyte boundaries tested), and the browser rejects oversized files
  by File.size BEFORE File.text() reads user data
- collision-safe deterministic mergeLedgers(): existing user-owned rows
  win, incoming rows only ever added for new ids, intra-file duplicates
  collapse deterministically, every collision reported explicitly in the
  import toast (no duplicate/overwrite/shadow of user records)
- base-path Delete Everything is namespace-scoped: root still cleans/
  migrates the legacy store to prevent resurrection, /timmy-staging no
  longer erases another namespace's global legacy ledger (browser
  regression covers deletion with root legacy data present)
- strict current-schema values: Bristol 1-7 / urgency 0-4 / discomfort
  0-4 must be true integers (out-of-range falls back instead of silent
  clamping), photos restricted to JPEG/PNG/WebP base64 raster data URLs
  (SVG/GIF/non-base64 dropped), invalid dates never throw or persist
  Invalid Date values

Verification: npm test 91/91, test:ui/test:photo/test:sleek/test:portability
PASS, staging-deploy 20/20 OK, check:syntax clean, npm audit 0 high,
check_diff clean, adversarial probe battery (exact-byte boundary at cap,
prototype pollution via JSON, lone surrogates, data-URL strictness) green.
2026-08-22 21:53:08 +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 fix: close hostile-review blockers in ledger portability 2026-08-22 21:53:08 +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 fix: close hostile-review blockers in ledger portability 2026-08-22 21:53:08 +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