Skip to content

Add bounded MCP language catalog pagination - #5000

Merged
Widthdom merged 4 commits into
mainfrom
fix-issue4896
Jul 30, 2026
Merged

Add bounded MCP language catalog pagination#5000
Widthdom merged 4 commits into
mainfrom
fix-issue4896

Conversation

@Widthdom

Copy link
Copy Markdown
Owner

Summary

  • Reuse the canonical CLI/MCP language capability catalog for exact language, extension, alias, and capability filters.
  • Add stable catalog-generation-bound cursor pagination with separate catalog, matched-catalog, indexed-workspace, returned, and remaining counts.
  • Enforce maxBytes against the complete UTF-8 JSON-RPC response envelope and report whether byte budget or item limit caused continuation.
  • Reject malformed, query-mismatched, and stale cursors with typed diagnostics while preserving schema-valid duplicate capability filters idempotently.

Validation

  • dotnet restore CodeIndex.sln
  • dotnet build CodeIndex.sln -c Release --no-restore -p:UseSharedCompilation=false — succeeded with 0 warnings and 0 errors on the final merged HEAD.
  • Final merged HEAD language-focused Release suite (Issue4895, Issue4896, McpToolContractTests, RunLanguages, and ToolsCall_Languages) — 70 passed on net8.0 and 70 passed on net9.0.
  • Full Release suite before merging the latest origin/main — net8.0: 10,962 passed / 7 skipped / 0 failed on the clean rerun; net9.0: 10,487 passed / 420 skipped / 0 failed. The final merge overlap is covered by the final 70-test suite above.
  • dotnet format CodeIndex.sln --verify-no-changes --no-restore --verbosity minimal
  • dotnet run --project tools/CodeIndex.Changelog -- check — 72 fragments validated.
  • git diff origin/main..HEAD --check
  • Local CodeIndex refresh and status --check --json — index matches the final workspace with 0 warnings and 0 errors.

Adversarial review

  • Completed the workflow maximum of two Codex adversarial review rounds.
  • Round 1 identified duplicate capability filters being rejected; fixed by idempotent normalization and regression coverage.
  • Round 2 identified incomplete CLI capability vocabulary in MCP; fixed by sharing all ten CLI capability values across validation and schema with regression coverage.

Documentation and changelog

  • Updated USER_GUIDE.md, DEVELOPER_GUIDE.md, and TESTING_GUIDE.md in their English and Japanese sections.
  • Added changelog.d/unreleased/4896.added.md.

Fixes #4896

Follow-ups

  • None.

@Widthdom
Widthdom marked this pull request as ready for review July 30, 2026 17:31
@Widthdom
Widthdom merged commit 3a42f35 into main Jul 30, 2026
12 checks passed
@Widthdom
Widthdom deleted the fix-issue4896 branch July 30, 2026 17:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Make the MCP language catalog filterable, pageable, and byte-bounded

1 participant