timmy-talking-turd/tests
Timmy 517c8dbac3
Some checks failed
Quality gates / quality (pull_request) Failing after 2m39s
Harden image ingress: pinned runtime, header-bomb rejection, concurrency ceiling, bounded rate limiter, canonical data-URL/polyglot contract, 503-on-unavailable, body-read timeout
Closes the PR 63 hostile-review blockers:
1. Immutable pinned Python/Pillow runtime (TIMMY_PYTHON absolute, --verify-pin),
   deployment/runtime re-encode smoke gate in build_release + deploy_staging.
2. Header-only width/height/total-pixel/bomb rejection before full decode; proves
   6000x6000 and 12000x12000 stay resource bounded (RSS + address-space caps).
3. Fail-fast decoder concurrency ceiling; tests count actual spawned children.
4. Rate-limiter key cardinality hard-bounded under 20k+ unexpired identities,
   trusted-loopback-proxy identity, no spoofable forwarded headers, fixed-window
   boundary burst smoothed by two-window sliding count.
5. build_release explicitly syntax/gates every new JS module + Python re-encoder +
   production-runtime smoke; CI runs reencode-image test and the runtime pin smoke.
6. Robust polyglot contract via canonical container parsing; rejects uppercase/mixed
   script, appended HTML, ZIP local/EOCD and archive tails, data after canonical
   JPEG/PNG/WebP end; no naive compressed-byte scans (false-positive controls pass).
7. Canonical base64 data-URL grammar with byte-exact round trip; rejects missing/excess
   padding, whitespace/CRLF, malformed and noncanonical encodings; exact MIME policy.
8. Missing Pillow / runtime-unavailable maps to sanitized 503 + manual fallback.
9. Inbound body-read timeout and stop-on-oversize; preserves sanitized 413, base path,
   provider suppression, and temp cleanup; socket torn down on rejection.

Audited prior partial edits: reused the sound source modules, re-wired new tests into
the unit/syntax gates, fixed a non-canonical readJson that destroyed the socket before
delivering 413/408, and hardened test flakiness (port reuse, EPIPE, startup races).
2026-08-22 23:22:42 +00:00
..
fixtures Harden image ingress: pinned runtime, header-bomb rejection, concurrency ceiling, bounded rate limiter, canonical data-URL/polyglot contract, 503-on-unavailable, body-read timeout 2026-08-22 23:22:42 +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
body-timeout.test.js Harden image ingress: pinned runtime, header-bomb rejection, concurrency ceiling, bounded rate limiter, canonical data-URL/polyglot contract, 503-on-unavailable, body-read timeout 2026-08-22 23:22:42 +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-concurrency.test.js Harden image ingress: pinned runtime, header-bomb rejection, concurrency ceiling, bounded rate limiter, canonical data-URL/polyglot contract, 503-on-unavailable, body-read timeout 2026-08-22 23:22:42 +00:00
image-dataurl.test.js Harden image ingress: pinned runtime, header-bomb rejection, concurrency ceiling, bounded rate limiter, canonical data-URL/polyglot contract, 503-on-unavailable, body-read timeout 2026-08-22 23:22:42 +00:00
image-ingress.test.js Harden image ingress: pinned runtime, header-bomb rejection, concurrency ceiling, bounded rate limiter, canonical data-URL/polyglot contract, 503-on-unavailable, body-read timeout 2026-08-22 23:22:42 +00:00
image-polyglot.test.js Harden image ingress: pinned runtime, header-bomb rejection, concurrency ceiling, bounded rate limiter, canonical data-URL/polyglot contract, 503-on-unavailable, body-read timeout 2026-08-22 23:22:42 +00:00
image-unavailable.test.js Harden image ingress: pinned runtime, header-bomb rejection, concurrency ceiling, bounded rate limiter, canonical data-URL/polyglot contract, 503-on-unavailable, body-read timeout 2026-08-22 23:22:42 +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-identity.test.js Harden image ingress: pinned runtime, header-bomb rejection, concurrency ceiling, bounded rate limiter, canonical data-URL/polyglot contract, 503-on-unavailable, body-read timeout 2026-08-22 23:22:42 +00:00
rate-limiter.test.js Harden image ingress: pinned runtime, header-bomb rejection, concurrency ceiling, bounded rate limiter, canonical data-URL/polyglot contract, 503-on-unavailable, body-read timeout 2026-08-22 23:22:42 +00:00
reencode-image.test.py Harden image ingress: pinned runtime, header-bomb rejection, concurrency ceiling, bounded rate limiter, canonical data-URL/polyglot contract, 503-on-unavailable, body-read timeout 2026-08-22 23:22:42 +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 Harden image ingress: pinned runtime, header-bomb rejection, concurrency ceiling, bounded rate limiter, canonical data-URL/polyglot contract, 503-on-unavailable, body-read timeout 2026-08-22 23:22:42 +00:00
staging-health.test.js Harden image ingress: pinned runtime, header-bomb rejection, concurrency ceiling, bounded rate limiter, canonical data-URL/polyglot contract, 503-on-unavailable, body-read timeout 2026-08-22 23:22:42 +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