Repository navigation
fix(mcpx): stop judging catalogue-n/a authsplit sides (#2695) - #5138
Conversation
authsplit.json carried 74 verdicts on row-sides the catalogue marks n/a after #2619 honoured each row's not-implemented-by-choice note (#1950 decision), so LoadAuthSplit fatally rejected the split and TestMatrix/TestAuthSplit failed on main. Remove the n/a-side verdicts (split now covers the 8 bound sides, all permissive), re-derive the pinned counts in authsplit_test.go (61/82/69/13 -> 7/8/8/0; #1972 validation target moves to #1975), and regenerate the conformance matrix (stable on re-run).
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 41 minutes. View limit details
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. CodeRabbit Verify
|
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
agent-note:v1 |
Root cause
Semantic merge conflict between PR #2673 and PR #2619 (merged 12 minutes apart, 2026-10-30):
authsplit.jsonand madeLoadAuthSplitrequire a verdict for every bound authorization row-side, refusing a side whose catalogue applicability carries then/a:prefix ("does not bind mcpx").not-implemented-by-choicenote (the mcpx: OAuth authorization for remote servers and for /mcp (61 conformance rows) #1950 decision), which re-derived most authorization sides asn/a: optional feature mcpx does not implement— including every validation side.authsplit.jsonwas never reconciled, so 74 of its 82 entries (61 permissive + 13 validation, measured at current main) judged sides the catalogue had judged n/a, andTestMatrix/TestAuthSplithave failed on main since.Fix (per the correction recorded on #2695, 2026-10-30)
The catalogue is right and the split was stale — reverting #2619's applicability would re-open the #1950 decision (client OAuth deferred;
/mcpresource server planned at #1975) and make mcpx claim authorization obligations it has not accepted. So:authsplit.json: removed all 74 verdicts on catalogue-n/asides; the split now judges only the 8 bound sides (7 rows, all permissive). Theabouttext records why.LoadAuthSplit's "does not bind mcpx" guard is unchanged, so the two sources cannot drift apart again silently.authsplit_test.go: pinned counts re-derived 61/82/69/13 → 7 rows / 8 sides / 8 permissive / 0 validation (per-check counts all 0), with a comment recording that mcpx: the permissive auth interface authorizes everyone — real validation for the conformance rows that require refusal #1972's validation target now lives with the mcpx: optional bearer token for /v1 and /mcp #1975 work.conformance-matrix.md: regenerated (MCPX_UPDATE_MATRIX=1); a second regeneration is a no-op.Verification (laptop, worktree at origin/main 7d3dbd0 + this change)
go test ./internal/conformance/ -run TestMatrix -count=1— PASS (was FAIL on clean main)go test ./internal/conformance/ -run TestAuthSplit -count=1— PASSgo test ./internal/conformance/:TestMessagesClientandTestUtilitiesServerfail identically on clean main — pre-existing, unrelated to this change (the mcpx: internal/settings (scriptenv) and internal/conformance (TestAuthSplit, TestMatrix) failing on clean main #2716 roll-up area), not addressed hereFixes #2695. Queue task 8650 (lane code-p).
Open in [code]smith · Need help on this PR? Tag
@codesmith-botwith what you need.