timmy
|
517c8dbac3
|
Harden image ingress: pinned runtime, header-bomb rejection, concurrency ceiling, bounded rate limiter, canonical data-URL/polyglot contract, 503-on-unavailable, body-read timeout
Quality gates / quality (pull_request) Failing after 2m39s
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 |
|
timmy
|
47294a98aa
|
Merge pull request 'Make staging runtime configuration compatible with strict CSP' (#59) from timmy/58-strict-csp-runtime-config into main
Quality gates / quality (push) Successful in 1m56s
|
2026-08-21 15:04:43 +00:00 |
|
timmy
|
877b8a01f3
|
fix: make staging compatible with strict CSP
Quality gates / quality (pull_request) Successful in 1m37s
|
2026-08-21 15:01:05 +00:00 |
|
timmy
|
067afaed4c
|
Merge pull request 'Hardened atomic private-staging deployment tooling' (#56) from timmy/55-staging-deployment-tooling into main
Quality gates / quality (push) Successful in 1m41s
|
2026-08-21 14:54:11 +00:00 |
|
timmy
|
f8f01c4b2e
|
feat: add hardened atomic staging deployment
Quality gates / quality (pull_request) Successful in 1m28s
|
2026-08-21 14:49:28 +00:00 |
|
timmy
|
fc763fb758
|
Merge pull request 'Private subpage staging foundation' (#54) from timmy/53-private-subpage-staging into main
Quality gates / quality (push) Successful in 2m7s
|
2026-08-21 14:16:15 +00:00 |
|
timmy
|
7e11154302
|
feat: add private subpage staging slice
Quality gates / quality (pull_request) Successful in 1m43s
|
2026-08-21 14:12:17 +00:00 |
|
timmy
|
11d1b364ab
|
fix: gate bootstrap syntax in release build
Quality gates / quality (push) Successful in 1m45s
|
2026-08-21 12:56:48 +00:00 |
|
timmy
|
982fab273c
|
feat: package pinned self-host vision bootstrap
Quality gates / quality (pull_request) Successful in 1m30s
|
2026-08-21 08:15:32 +00:00 |
|
timmy
|
ca31e6d38b
|
Merge pull request 'Hotfix: recognize past-tense vomiting in deterministic chat safety' (#51) from timmy/48-vomiting-phrase-hotfix into main
Quality gates / quality (push) Successful in 1m26s
|
2026-08-20 17:17:33 +00:00 |
|
timmy
|
0f3104ebde
|
fix: recognize past-tense vomiting in chat safety
Quality gates / quality (pull_request) Successful in 1m21s
|
2026-08-20 17:14:20 +00:00 |
|
timmy
|
cc1fc6ee36
|
Merge pull request 'Hotfix: enforce deterministic urgent-symptom override at the server boundary' (#50) from timmy/48-server-safety-override into main
Quality gates / quality (push) Successful in 1m24s
|
2026-08-20 16:48:02 +00:00 |
|
timmy
|
05b4bafd96
|
fix: enforce urgent chat override server-side
Quality gates / quality (pull_request) Successful in 1m25s
|
2026-08-20 16:41:35 +00:00 |
|
timmy
|
09f9528434
|
Merge pull request 'Sleek Timmy mobile shell and secure Hermes Agent chat' (#49) from timmy/47-sleek-hermes-agent into main
Quality gates / quality (push) Successful in 1m32s
|
2026-08-20 16:25:47 +00:00 |
|
timmy
|
a50afa6722
|
feat: simplify Timmy and add secure Hermes chat
Quality gates / quality (pull_request) Successful in 1m24s
|
2026-08-20 16:21:00 +00:00 |
|
timmy
|
3c51308a9e
|
docs: fix product boundary and release authority
Quality gates / quality (pull_request) Successful in 1m14s
|
2026-08-20 08:32:16 +00:00 |
|
timmy
|
8ab1e85bd1
|
Merge pull request #45: enforce reproducible quality gates
Quality gates / quality (push) Successful in 1m18s
|
2026-08-19 12:06:38 +00:00 |
|
timmy
|
47eec47a31
|
ci: install pinned image test dependency
Quality gates / quality (pull_request) Successful in 1m12s
|
2026-08-19 08:14:43 +00:00 |
|
timmy
|
29ba8594b8
|
ci: enforce reproducible quality gates
Quality gates / quality (pull_request) Failing after 1m56s
|
2026-08-19 08:09:38 +00:00 |
|
timmy
|
535834c060
|
feat: require verified feature demo video in every release
|
2026-08-19 03:36:04 +00:00 |
|
timmy
|
ce84ea577c
|
test: isolate photo acceptance from service workers
|
2026-08-19 03:02:33 +00:00 |
|
timmy
|
3899eac34f
|
fix: start isolated server for release acceptance gates
|
2026-08-19 03:01:28 +00:00 |
|
timmy
|
074f52fddc
|
build: add gated reproducible review releases
|
2026-08-19 03:00:54 +00:00 |
|
timmy
|
0ecf1d1205
|
docs: add Gitea roadmap and epic map
|
2026-08-19 02:00:40 +00:00 |
|
timmy
|
58906f11d0
|
feat: ship photo-first Timmy prototype and sovereign vision spike
|
2026-08-19 01:54:29 +00:00 |
|