Conversation
code-crusher
commented
Apr 2, 2026
- release/v5.7.1 (release/v5.7.1 #73)
- release/v5.7.2 (release/v5.7.2 #74)
- update readme (update readme #75)
- feat: add file_write tool implementation
- feat: add LSP tool for code definition navigation
- feat(mcp): add OAuth authentication support for MCP servers
- fix: allow changing 3p models for existing tasks and fix model display names
- refactor(settings): modernize settings panel UI with new card-based design
- style(ui): reduce VSCodeButton size by 5% across all variants
- docs: update CHANGELOG.md for v5.7.3
- Add native file_write tool with safe write patterns - Add fileWriteTool with validation and backup support - Update tool definitions and exports - Add i18n translations for file_write tool
- Add lspTool.ts with LSP tool implementation for go-to-definition functionality - Add native tool prompt for LSP in native-tools/lsp.ts - Update presentAssistantMessage to handle LSP tool responses - Add LSP tool type and handler to tools.ts and ExtensionMessage.ts - Update ChatRow.tsx to display LSP tool results - Add i18n translations for LSP tool in chat.json
This commit introduces comprehensive OAuth 2.0 authentication support for MCP (Model Context Protocol) servers, enabling secure authentication flows for URL-based MCP connections. Core Features: - Add new 'mcp_authenticate' tool for initiating OAuth flows - Implement OAuth provider with token storage, refresh, and validation - Add OAuth callback handler for completing authentication flows - Support for both SSE and Streamable HTTP server types Changes to Core Systems: - packages/types/src/tool.ts: Add 'mcp_authenticate' to tool names enum - src/shared/tools.ts: Register mcp_authenticate tool definition - src/shared/mcp.ts: Add McpAuthError, McpOAuthConfig, and McpOAuthTokens types - src/shared/ExtensionMessage.ts: Add auth-related message types MCP Infrastructure Updates: - src/services/mcp/McpHub.ts: Major refactor to support OAuth-enabled connections - Add NeedsAuthMcpConnection state for servers requiring authentication - Implement OAuth token injection into request headers - Add automatic token refresh before expiration - Add OAuth configuration schema validation - src/services/mcp/oauth-provider.ts: New OAuth provider service - Token storage and retrieval with encryption - Token validation and refresh logic - PKCE flow implementation for secure authentication - src/services/mcp/oauth-callback.ts: New OAuth callback handler - HTTP server for handling OAuth callbacks - Token exchange and storage on successful auth Tool Implementations: - src/core/tools/mcpAuthenticateTool.ts: New tool for MCP authentication - Initiates OAuth flow for specified MCP server - Returns authorization URL for user to complete - src/core/tools/useMcpToolTool.ts: Enhanced to handle auth errors - Detect McpAuthError responses - Prompt user to authenticate when tokens expire - src/core/prompts/tools/mcp-authenticate.ts: New prompt definition - src/core/prompts/tools/index.ts: Register mcp-authenticate prompt Message Processing: - src/core/assistant-message/AssistantMessageParser.ts: Handle mcp_authenticate tool blocks - src/core/assistant-message/kilocode/native-tool-call.ts: Add native tool call support - src/core/assistant-message/presentAssistantMessage.ts: Present auth requests to user - src/api/providers/kilocode/nativeToolCallHelpers.ts: Helper for native auth tool calls Task Management: - src/core/task/Task.ts: Integrate mcp_authenticate into task execution flow UI/UX Changes: - webview-ui/src/components/chat/McpExecution.tsx: Enhanced to show auth states - Display authentication required indicators - Show OAuth flow progress - webview-ui/src/components/chat/ChatRow.tsx: Handle mcp_authenticate message type - webview-ui/src/components/chat/ChatView.tsx: Pass auth handlers to components - webview-ui/src/components/kilocode/common/KiloCodeAuth.tsx: Reusable auth UI components - webview-ui/src/i18n/locales/en/mcp.json: Add auth-related i18n strings - webview-ui/src/index.css: Add styles for auth states and OAuth flow UI Activation & Routing: - src/activate/handleUri.ts: Handle OAuth callback URIs - Parse callback parameters - Route to appropriate OAuth completion handler Stats: 19 files changed, 1221 insertions(+), 178 deletions(-)
…y names - Add thirdPartySelectedModel parameter to Task.updateModel() to properly track 3p model selections - Pass thirdPartySelectedModel through webviewMessageHandler for task-local model updates - Clear thirdPartySelectedModel when switching from 3p to Axon models in ModelSelector - Add provider prefixes (matterai3p:, ollama:, opencode:, fireworks:) to model IDs for consistent identification - Fix TypeScript error with optional chaining for mainId in prettyModelName
…esign Comprehensive UI/UX overhaul of the settings panel to improve visual consistency and user experience across all settings sections. Changes: - Introduced new SettingsCard and SettingsRow components in ui/SettingsCard.tsx for a unified, card-based layout across all settings sections - Replaced Section/SectionHeader pattern with SettingsCard/SettingsRow pattern in all 22 settings components for consistent styling - Updated SettingsView.tsx: - Redesigned profile section with smaller avatar (8x8) and improved spacing - Added search bar placeholder for future search functionality - Updated tab styling with refined active state using VSCode theme colors - Changed active tab background to use vscode-list-inactiveSelectionBackground - Improved tab height and spacing (h-8, mb-0.5) - Added transition-colors for smoother tab interactions - Refactored all settings sections: - About: Consolidated version info and support links into card layout - AutoApproveSettings: Streamlined toggle layout with SettingsRow - AutoApproveToggle: Simplified component structure - BrowserSettings: Reorganized into card-based sections - CheckpointSettings: Updated to use new card pattern - CodeReviewSettings: Migrated to SettingsCard/SettingsRow - CommitMessagePromptSettings: Updated layout - ContextManagementSettings: Refactored with new components - DisplaySettings: Modernized card layout - ExperimentalFeature: Simplified structure - ExperimentalSettings: Updated to use new pattern - FastApplySettings: Reorganized with SettingsRow - ImageGenerationSettings: Migrated to card-based design - LanguageSettings: Updated layout structure - NotificationSettings: Refactored with new components - PromptsSettings: Modernized card layout - SlashCommandsSettings: Updated to use SettingsCard - TerminalCommandGeneratorSettings: Refactored layout - TerminalSettings: Comprehensive reorganization with card pattern - ThirdPartyProviders: Updated to use new components - UISettings: Simplified with SettingsCard/SettingsRow Visual Improvements: - Consistent card backgrounds with bg-opacity-40 - Unified border styling using vscode-widget-border - Standardized spacing and padding across all settings - Improved toggle switches with better accessibility - More compact and scannable layout Technical: - Removed dependencies on Section and SectionHeader components - All settings now use the new ui/SettingsCard module - Maintained all existing functionality and i18n support - Preserved VSCode theme integration - Fixed ESLint warnings for unused imports and parameters Breaking: None - all changes are visual refactoring only
- Add global CSS overrides for all vscode-button appearances (primary, secondary, icon) - Reduce button padding from default to 4px 9px for compact sizing - Scale font-size to 95% of vscode-font-size for consistent 5% reduction - Set min-height (22px) and max-height (28px) constraints on button controls - Apply line-height of 1.35 for better text vertical alignment - Use ::part(control) selector to target internal button shadow DOM elements - Maintain existing primary button color overrides while applying size changes
|
/matter summary |
There was a problem hiding this comment.
🧪 PR Review is completed: Found a runtime TypeError in the new file_write tool where a non-existent string method is called.
Skipped files
CHANGELOG.md: Skipped file patternwebview-ui/src/i18n/locales/en/chat.json: Skipped file patternwebview-ui/src/i18n/locales/en/mcp.json: Skipped file pattern
src/core/tools/fileWriteTool.ts
Outdated
| await cline.say( | ||
| "error", | ||
| `Axon Code tried to use file_write${ | ||
| filePath ? ` for '${filePath.toPosix()}'` : "" |
There was a problem hiding this comment.
🔴 Bug
Issue: filePath is a string, and toPosix() is not a built-in string method in JavaScript/TypeScript. This will throw a TypeError at runtime when the error message is constructed.
Fix: Remove .toPosix() or use a utility function to convert the path format if needed. Since it's just for an error message, using filePath directly is fine.
| filePath ? ` for '${filePath.toPosix()}'` : "" | |
| filePath ? ` for '${filePath}'` : "" | |
ContextSummary By MatterAI
🔄 What ChangedEnhanced the error reporting in 🔍 Impact of the ChangeImproves debugging efficiency by providing specific context (the filename) in error logs, allowing developers to identify which file failed during multi-file write operations. 📁 Total Files ChangedClick to Expand
🧪 Test Added/RecommendedRecommended
🔒 Security VulnerabilitiesN/A ImplementationThe change uses a ternary operator within a template literal to check for the existence of Screenshots
How to Test
Get in TouchN/A ⏳ Estimated code review effortLOW (~5 minutes) Tip Quality Recommendations
♫ Tanka Poem
Sequence DiagramsequenceDiagram
participant S as System
participant F as fileWriteTool
participant C as cline
S->>F: execute(params)
Note over F: Validate line_count
alt line_count missing or truncated
F->>C: say("error", messageWithFilePath)
end
|
|
✅ Reviewed the changes: The PR successfully resolves the previous TypeError by removing the invalid |
|
/matter help |
|
Tip MatterAI CommandsHere's how you can interact with MatterAI in your pull requests 📋 Available CommandsCode Review Commands
Documentation Commands
Collaboration Commands
Help Commands
🔍 How MatterAI Works
|