Repository navigation
fix(query): validate required arguments before positional type checks - #189
TimeToBuildBob wants to merge 2 commits into
Conversation
Git-Session-Id: 99c22c1d-2c81-44ce-b296-b51905eb0004
Git-Session-Id: 99c22c1d-2c81-44ce-b296-b51905eb0004
[Medium impact] The PR appears safe to merge. SummaryThe PR checks required arguments before inspecting positional values.
No actionable issues were found. Tests were inspected but not run during this review. Reviews (1) · Last reviewed commit: "fix(query): validate required arguments ..." · Reviewed by Greptile |
|
CI-green and mergeable — waiting only on a maintainer click. This PR is ready to merge, but the bot has pull-only access to this repo and can't self-merge — surfacing it here so it isn't lost. The monitoring loop will stop re-flagging it now that this note is posted. |
🤖 AI code reviewAdds Safe to merge — no P0/P1 findingsConfidence 5/5 ✅ No findings. The diff looks correct to me on this pass. Files changed (3) — the diff as I read it
Reviewed Maintainer commands
|
AQL calls with missing required arguments currently reach positional type inspection before Python validates the call, raising
IndexErrorand producing HTTP 500. Bind the supplied arguments to the already-inspected function signature before inspecting values. Missing arguments then follow the existingTypeError→QueryInterpretExceptionpath.Fixes #188.
Validation:
c7821899; all ten new regression/control cases pass after the one-line repair. Controls preserve valid calls, omitted/explicit defaults, extra-argument errors and wrong-type errors.make typecheckpassed (37 source files); pinned Ruff check/format and hook checks passed. Nomake test-fasttarget exists here.filter_keyvals([], "title")andquery_bucket()returned HTTP 500 before / 400 after. Valid/default controls stayed 200; extra-argument and wrong-type controls stayed 400. Replay used aw-server master994ea988and its supported Flask 2.2/Werkzeug 2.3 dependency range, with no listener started.The initial hosted run failed before tests because Ubuntu 26.04 has no setup-python 3.8 binary. Carry the same Ubuntu 22.04 pin already validated in #187; the native Windows/macOS matrix and Python floor stay intact. All Linux/Windows/macOS Python 3.8 checks now pass at
7feb4ca: Linux/macOS 372 passed and 5 skipped; Windows 369 passed and 8 skipped. All typechecks, lint and CodeQL passed. Greptile 5/5 covers the unchanged product commitcb43196; the later commit changes only the runner pin.No parser change, blanket IndexError catch, new syntax, released-package claim, or change to optional-argument type policy.