Repository navigation
fix: report list routes return all rows up to a uniform cap - #465
Merged
Merged
Conversation
…p, refuse bad bounds Report list routes in all five ports now return every row up to a generator-configurable cap (default 10000) instead of a silent 50-row page. Above the cap, or with an explicit limit above it, the route answers 400 report_too_large with maxRows. limit<=0, negative offset and non-integer bounds are refused with the existing 400 envelope (C# used to ignore them). Pinned by new api-contract report scenarios.
…ANGELOG, api-contract.md and reporting.md already updated by the change and match code (cap 10,000, reportMaxRows option names, report_too_large and pagination.invalid_value envelopes, 30-scenario count). Fixed one formatting nit: missing blank line between Fixed entries in CHANGELOG [Unreleased]. docs/superpowers/plans/2026-10-04-fr-044-plan-3 still describes the old 50-row default, but it is a dated plan record, so left as is.
dmealing
force-pushed
the
fm/mo-reporting-next
branch
from
October 26, 2026 06:34
f5a2c7b to
f0eb56d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What Changed
limitis omitted, up to a uniform cap of 10,000 (reportMaxRowsgenerator option). Java, Kotlin and Python previously stopped at 50 rows with no error; TypeScript and C# had no cap. Rows above the cap, or an explicitlimitabove it, now answer400 { "error": "report_too_large", "maxRows": N }, before any body is written.limitbelow 1, negativeoffset, non-integer) answers400 pagination.invalid_valuein every port. C# previously ignoredlimit<=0on reports.runtime-tsparseReportPage/ReportTooLargeError,REPORT_MAX_ROWS) and the per-port route generators (TypeScriptroutesFile/routesFileHono, C#RoutesGenerator, JavaSpringControllerGenerator, KotlinKotlinSpringControllerGenerator, Pythonrouter_generator) implement the cap. Entity and projection lists keep their paging.report/scenarioscap-all-rows,cap-refusedandbad-page-boundwith aReadingLogreport fixture; updatesCHANGELOG.md[Unreleased] and the reporting and api-contract docs.Validation
Risk Assessment
✅ Low: The report-cap code matches what the first run validated, all five ports apply the same cap and the same refusals, the three ejected TypeScript copies match the reference byte for byte, and the CHANGELOG conflict resolution keeps both sides with no conflict markers left.
Testing
Narrow validation only. Baseline ts-fast/ts-unit gate passed. runtime-ts report-cap mount test (44 cases, in-process Fastify inject against real libsql) and typecheck pass. No scenario driven against a standing server, so none marked live. Scenarios 1-4 are untested live; scenario 5 is a gate run, not a live product scenario. Full repository regression suite not rerun this turn.
Pipeline
Updates from git push no-mistakes
✅ **Intent** - passed
✅ No issues found.
🔧 **Rebase** - 1 issue found → auto-fixed ✅
CHANGELOG.md- merge conflict rebasing onto origin/main🔧 Fix applied.
✅ Re-checked - no issues remain.
✅ **Review** - passed
✅ No issues found.
scripts/ci-local.sh --only ts-fast --only ts-unit --strict-toolchainsscripts/ci-local.sh --only ts-fast --only ts-unit --strict-toolchains (baseline, passed)cd server/typescript/packages/runtime-ts && bun test test/drizzle-fastify/mount-read-only.test.ts (44 pass, 0 fail)cd server/typescript/packages/runtime-ts && bun run typecheck (clean)grep for conflict markers in CHANGELOG.md (none)✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.