* fix: speed up Claude Code config check by reading JSON directly
Instead of running `claude mcp list` (15+ seconds due to health checks),
read the config directly from ~/.claude.json (instant).
Changes:
- Add ReadClaudeCodeConfig() to parse Claude's JSON config file
- Walk up directory tree to find config at parent directories
- Handle duplicate path entries (forward/backslash variants)
- Add beta/stable version mismatch detection with clear messages
- Add IsBetaPackageSource() to detect PyPI beta versions and prerelease ranges
- Change button label from "Register" to "Configure" for consistency
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: speed up Claude Code config check by reading JSON directly
Instead of running `claude mcp list` (15+ seconds due to health checks),
read the config directly from ~/.claude.json (instant).
Changes:
- Add ReadClaudeCodeConfig() to parse Claude's JSON config file
- Walk up directory tree to find config at parent directories
- Handle duplicate path entries (forward/backslash variants)
- Add beta/stable version mismatch detection with clear messages
- Add IsBetaPackageSource() to detect PyPI beta versions and prerelease ranges
- Change button label from "Register" to "Configure" for consistency
- Refresh client status when switching to Connect tab or toggling beta mode
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add VersionMismatch status for Claude Code config detection
- Add McpStatus.VersionMismatch enum value for version mismatch cases
- Show "Version Mismatch" with yellow warning indicator instead of "Error"
- Use VersionMismatch for beta/stable package source mismatches
- Keep Error status for transport mismatches and general errors
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add version mismatch warning banner in Server section
- Add version-mismatch-warning banner to McpConnectionSection.uxml
- Add UpdateVersionMismatchWarning method to show/hide the banner
- Fire OnClientConfigMismatch event when VersionMismatch status detected
- Wire up event in main window to update the warning banner
- Store mismatch details in configStatus for both Error and VersionMismatch
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: simplify version mismatch messages for non-technical users
Before: "Beta/stable mismatch: registered with beta 'mcpforunityserver>=0.0.0a0' but plugin is stable 'mcpforunityserver==9.4.0'."
After: "Configured for beta server, but 'Use Beta Server' is disabled in Advanced settings."
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address PR review feedback
- Treat missing ~/.claude.json as "not configured" instead of error
(distinguishes "no Claude Code installed" from actual read failures)
- Handle --from=VALUE format in ExtractPackageSourceFromConfig
(in addition to existing --from VALUE format)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add beta/stable version mismatch detection to all JSON-based clients
- Move GetExpectedPackageSourceForValidation() and IsBetaPackageSource()
to base class so all configurators can use them
- Update JsonFileMcpConfigurator.CheckStatus() to use beta-aware comparison
- Show VersionMismatch status with clear messaging for Claude Desktop,
Cursor, Windsurf, VS Code, and other JSON-based clients
- Auto-rewrite still attempts to fix mismatches automatically
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: add beta-aware validation to CodexMcpConfigurator
CodexMcpConfigurator was still using the non-beta-aware package source
comparison. Now uses GetExpectedPackageSourceForValidation() and shows
VersionMismatch status with clear messaging like other configurators.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>