fix(openapi): enforce stable unique operationIds - #337
Conversation
|
Warning Review limit reached
Next review available in: 58 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@opencode-agent @cwl-noema-review Please independently review exact current head |
Objective
Advance issue #315 with a bounded machine-readable API contract invariant: every HTTP operation in the repository-owned buyer OpenAPI must declare one explicit, unique
operationIdso standalone and naruon-compatible generated clients cannot acquire ambiguous method identities.Fresh exact state — 2026-08-10
f4b08dc83f972f7ea98027b0a1d9209e33496873;main:55d7ae8647208e301f282350f076eeddaba61d11;31387420565: success;31387420476: success;31387420373: success;RCA and test-first reconstruction
Predecessor #332 exact head
8ae7cbcf109633c866dd3330638ecdf0d4d8cceecontained the correct checker and tests, but its stale ancestry lackedscripts/verify_maven_test_reports.py. Maven itself passed; CI then failed at the protected-main report-verification step. Updating PR base metadata did not rewrite branch ancestry.A clean test-only branch was therefore created directly from protected main and first proved the checker module was absent. The already-reviewed stdlib implementation was then copied without importing predecessor build/security history.
Fresh blob comparison confirms the clean branch preserves the exact predecessor semantics:
scripts/openapi_operation_id_contract.py:700ed07d10fcd67f5a3dfdc8f4dc8547f87bc4e3;scripts/test_openapi_operation_id_contract.py:0b2fe4179374062652271c5a1899b59660a0b96d.#332 is closed as superseded.
Contract
The checker:
operationId;parametersas an operation;Scope / non-completion boundary
This is one acceptance item under issue #315. It does not claim complete route/DTO/error/schema parity, API version negotiation, breaking-change detection, generated clients, release provenance, or standalone+naruon compatibility. PR #305 remains the canonical documentation writer and PR #316 remains a separate bounded license/example/delete-route integrity slice.
Merge gate
Keep this exact head unchanged. Auto-merge may complete only after live repository protection still sees every applicable required check passing, zero valid unresolved findings, and the counted approving review from a qualifying independent reviewer with write access. Automated evidence is not approval.