Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: structured-world/gitlab-mcp
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v6.10.0
Choose a base ref
...
head repository: structured-world/gitlab-mcp
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v6.11.0
Choose a head ref
  • 2 commits
  • 9 files changed
  • 2 contributors

Commits on Jan 20, 2026

  1. feat(schema): add auto-detection schema mode from clientInfo (#52)

    * test(schema-utils): add tests for discriminated schema mode
    
    Verify that GITLAB_SCHEMA_MODE=discriminated preserves oneOf structure
    instead of flattening to flat schema. Tests cover:
    - Preserving oneOf when mode is discriminated
    - Filtering denied actions while preserving oneOf structure
    
    * feat(schema): add auto-detection schema mode from clientInfo
    
    Implement GITLAB_SCHEMA_MODE=auto for automatic schema format detection:
    
    Phase 1 (already existed):
    - GITLAB_SCHEMA_MODE=flat|discriminated in config
    - Conditional flattening in schema-utils transformToolSchema
    
    Phase 2 (new):
    - Add 'auto' as third option for GITLAB_SCHEMA_MODE
    - detectSchemaMode() function to map client names to schema modes:
      - Claude clients (claude-code, claude-desktop, cursor) -> flat
      - MCP Inspector -> discriminated
      - Unknown clients -> flat (safe default)
    - server.oninitialized callback captures clientInfo
    - setDetectedSchemaMode/clearDetectedSchemaMode for session management
    - getSchemaMode() returns detected mode when in auto mode
    
    Closes #49
    
    * fix(schema): improve client detection and document multi-session limitation
    
    - Use exact match or prefix for client name detection (claude, claude-*)
      instead of substring matching to avoid false positives
    - Add documentation notes in config.ts, schema-utils.ts, and server.ts
      clarifying that auto mode is only reliable for stdio (single client)
    - Add edge case tests for client name detection false positives
    
    * test(schema): improve coverage for schema-utils edge cases
    
    Add tests for:
    - Action filtering with enum instead of const
    - Flattening schemas with enum action values
    - Description merging (take longer description)
    - Required for annotation with enum actions
    - Flat schema filtering edge cases
    
    Coverage: 91% -> 100% lines
    
    * fix(schema): consistent inspector pattern matching
    
    - Add inspector-* prefix matching for consistency with claude/cursor
    - Remove redundant exact match (covered by startsWith)
    
    * chore(scripts): translate Russian comments to English
    
    * fix(schema): consistent dash-prefix pattern for mcp-inspector
    
    - Use exact match + dash-prefix for mcp-inspector (not bare startsWith)
    - Update mock in tests to match actual implementation
    polaz authored Jan 20, 2026
    Configuration menu
    Copy the full SHA
    9ec6368 View commit details
    Browse the repository at this point in the history
  2. chore(release): 6.11.0 [skip ci]

    ## [6.11.0](v6.10.0...v6.11.0) (2026-01-20)
    
    ### Features
    
    * **schema:** add auto-detection schema mode from clientInfo ([#52](#52)) ([9ec6368](9ec6368)), closes [#49](#49)
    semantic-release-bot committed Jan 20, 2026
    Configuration menu
    Copy the full SHA
    cd401a1 View commit details
    Browse the repository at this point in the history
Loading