Ready / LGTM — PR #239

Fix T-1824: Milestone Query Project ID Resolution

Reviewed range: e33519eb1016e0  ·  Branch: T-1824/bugfix-milestone-queries-accept-nonexistent-project-id  ·  Worktree: /Users/arjen/projects/personal/transit-worktrees/T-1824

Verdict

READY / LGTM

No actionable correctness, regression, or scope findings.

Review threads

0 review threads returned by the PR GraphQL review-thread query; therefore zero unresolved threads.

Sentinel

The existing review at b1016e0 contains the required <!-- claude-local-review --> sentinel.

Scope and commit identity

Cross-surface projectId verification

ContractMCP query_milestonesQueryMilestonesIntent
Well-formed, existing projectIdresolveProjectFilter calls ProjectService.findProject(id:) and filters with the returned live project ID.The validated resolver makes the same service call and uses the returned live project ID.
Well-formed, missing projectIdReturns the established tool error hint No project with ID ….Returns PROJECT_NOT_FOUND with the identical hint.
Project-store failureReturns the existing Failed to fetch project: … tool error.Maps the same hint to INTERNAL_ERROR.
displayId and full-list pathsBoth resolve the project filter before selecting either query path, so neither can turn a missing project into a false successful [].
Existing filter rulesMalformed UUID rejection and valid projectId-over-name precedence remain intact and are asserted in the new cross-surface suite.

Sentinel and zero-value checks

Validation

CheckResult
git diff --check e33519e b1016e0Passed — no whitespace errors.
make test-quick in the exact T-1824 worktreePassed.
make lint in the exact T-1824 worktreePassed.
Working tree / review identityPassed — clean worktree, exact requested base/head, and PR #239 identity confirmed.

Decision

Ready / LGTM. The patch correctly distinguishes UUID syntax from project existence, preserves the established cross-surface error mapping, and covers both query branch shapes without weakening malformed-input or zero-ID protections.

No source edits, commit, push, review comment, status change, or merge was performed. This canonical artifact replaces the generic PR #239 artifact only.