timmy-talking-turd/tests
timmy ccb227921e
Some checks failed
Quality gates / quality (pull_request) Failing after 1m38s
feat: harden image ingress with magic-byte validation, safe re-encode, limits, and rate control
- src/image-ingress.js: sniff magic bytes independent of declared MIME,
  reject polyglots (embedded ZIP/script payloads), enforce 4 MB body cap
  and 4096 px dimension cap before decode, re-encode via fixed-argv
  Pillow subprocess with 15s timeout, strip EXIF/GPS/XMP/tEXt metadata,
  fail closed with sanitized short errors and manual fallback.
- scripts/reencode_image.py: defensive decoder; decompression-bomb
  guarded; prints one JSON verdict line, never image bytes.
- src/rate-limiter.js + server.mjs /api/analyze: bounded fixed-window
  per-client limiter, 429 with retry-after, no payload retention.
- tests/image-ingress.test.js: hostile synthetic fixtures only
  (spoofed MIME, GIF/ZIP polyglots, truncated/garbage/empty images,
  12000x12000 bomb, 6000x6000 oversized, EXIF+GPS, SVG-with-script);
  asserts provider is never reached on rejection and error messages
  contain no bytes/base64/stacks.

Closes #16
2026-08-22 21:43:36 +00:00
..
fixtures feat: harden image ingress with magic-byte validation, safe re-encode, limits, and rate control 2026-08-22 21:43:36 +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: ship photo-first Timmy prototype and sovereign vision spike 2026-08-19 01:54:29 +00:00
ci-workflow.test.js feat: add hardened atomic staging deployment 2026-08-21 14:49:28 +00:00
domain.test.js fix: recognize past-tense vomiting in chat safety 2026-08-20 17:14:20 +00:00
hermes-agent-service.test.js fix: recognize past-tense vomiting in chat safety 2026-08-20 17:14:20 +00:00
image-ingress.test.js feat: harden image ingress with magic-byte validation, safe re-encode, limits, and rate control 2026-08-22 21:43:36 +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
rate-limiter.test.js feat: harden image ingress with magic-byte validation, safe re-encode, limits, and rate control 2026-08-22 21:43:36 +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: add private subpage staging slice 2026-08-21 14:12:17 +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: harden image ingress with magic-byte validation, safe re-encode, limits, and rate control 2026-08-22 21:43:36 +00:00