Mechanical .max() bounds across 9 router schemas per the convention in
#51: IDs at 64, names at 200, search/filter strings at 500, arrays at
100-5000 depending on domain. Webhook secret bounded at min(16)/max(256).
Reports route now validates startDate/endDate via zod with year bounds
and rejects end<start. SSE timeline route enforces a per-user connection
cap of 8 (returns 429 with Retry-After). tRPC route rejects bodies over
2 MiB via Content-Length check before auth/DB work.
Covers 12 call-sites listed in #51. ESLint rule and zod conventions doc
remain as follow-up.
Hartmut
merged commit 17471af7f8 into main2026-04-18 13:53:28 +02:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes #51 (except the ESLint rule + conventions doc follow-ups).
Summary
.max()bounds across 9 router schemas (IDs 64, names 200, search 500, arrays 100–5000 by domain).secrettomin(16).max(256)andurltomax(2048).formattopdf/xlsx.Test plan
pnpm test:unit(1945 API + 321 engine + 195 application tests pass)pnpm --filter @capakraken/web exec tsc --noEmitpnpm --filter @capakraken/api exec tsc --noEmitpnpm lint(0 errors)🤖 Generated with Claude Code