- Add getErrorMessage utility for consistent error message formatting
- Enhance addAgent to return Result type for better error handling
- Add disallowEmptySelection to form dropdowns
- Reset loading state on errors in AgentModal
- Rename getAgentAvatar to getAgentDefaultAvatar for clarity
- Add EmojiAvatarWithPicker component for emoji selection
- Update AgentLabel to support both default and emoji avatars
- Add AvatarSetting component for avatar configuration
- Modify agent configuration schema to support emoji avatars
Add modelFilter parameter to SelectApiModelPopup to exclude embedding, rerank and text-to-image models from selection. This ensures only appropriate models are shown based on agent type requirements.
- Refactor useUpdateAgent to return both updateAgent and updateModel functions
- Update all components using useUpdateAgent to use the new hook structure
- Improve model selection by reusing SelectAgentModelButton component
- Add pagination support to useApiModels hook
Add a confirmation step before deleting a session, including a tooltip showing the keyboard shortcut. Uses a timer to automatically cancel the confirmation after 3 seconds.
- Add support for anthropicApiHost configuration in providers
- Improve model filtering for Anthropic-compatible providers
- Add isAnthropicModel function to validate Anthropic models
- Update ClaudeCode service to support compatible providers
- Enhance logging and error handling in API routes
- Fix model transformation and validation logic
- Add `anthropicApiHost` field to Provider type - Update provider config
and migration to set Anthropic endpoints - Add UI for configuring
Anthropic API Host in provider settings - Update SDK client logic to use
Anthropic API Host when available - Add i18n strings for Anthropic API
Host configuration
Move the lucide icon color rule into the media query block for consistency.
Add AlertTriangleIcon to caution text in AgentModal for better visual warning.
* feat: improve content protection during file operations
- Add validation for knowledge base configuration before saving
- Enhance error handling for note content reading
- Implement content backup and restoration during file rename
- Add content verification after rename operations
- Improve user feedback with specific error messages
* fix: format check
---------
Co-authored-by: 自由的世界人 <3196812536@qq.com>
fix(websearch): handle blocked domains conditionally in web search configurations
- Updated the handling of blocked domains in both Google Vertex and Anthropic web search configurations to only include them if they are present, improving robustness and preventing unnecessary parameters from being passed.
- Commented out all references to the 'cherryin' provider in configuration files.
- Updated the version in the persisted reducer from 157 to 158.
- Added migration logic to remove 'cherryin' from the state during version 158 migration.
* Fix slash menu Shift+Enter newline
* fix: enable Shift+Enter newline in rich editor with slash commands
Fixed an issue where users couldn't create new lines using Shift+Enter when
slash command menu (/foo) was active. The problem was caused by globa
keyboard event handlers intercepting all Enter key variants.
Changes:
- Allow Shift+Enter to pass through QuickPanel event handling
- Add Shift+Enter detection in CommandListPopover to return false
- Implement fallback Shift+Enter handling in command suggestion render
- Remove unused import in AppUpdater.ts
- Convert Chinese comments to English in QuickPanel
- Add test coverage for command suggestion functionality
---------
Co-authored-by: Zhaokun Zhang <zhaokunzhang@Zhaokuns-Air.lan>
* feat: improve content protection during file operations
- Add validation for knowledge base configuration before saving
- Enhance error handling for note content reading
- Implement content backup and restoration during file rename
- Add content verification after rename operations
- Improve user feedback with specific error messages
* fix: format check
---------
Co-authored-by: 自由的世界人 <3196812536@qq.com>
- Updated references from 'agents' to 'assistants' across various components and hooks.
- Changed i18n keys to reflect the new terminology for better clarity.
- Removed the deprecated agents slice and integrated its functionality into the assistants slice.
- Adjusted UI components to align with the new naming conventions for assistant presets.
fix(websearch): handle blocked domains conditionally in web search configurations
- Updated the handling of blocked domains in both Google Vertex and Anthropic web search configurations to only include them if they are present, improving robustness and preventing unnecessary parameters from being passed.
- Commented out all references to the 'cherryin' provider in configuration files.
- Updated the version in the persisted reducer from 157 to 158.
- Added migration logic to remove 'cherryin' from the state during version 158 migration.
* Fix slash menu Shift+Enter newline
* fix: enable Shift+Enter newline in rich editor with slash commands
Fixed an issue where users couldn't create new lines using Shift+Enter when
slash command menu (/foo) was active. The problem was caused by globa
keyboard event handlers intercepting all Enter key variants.
Changes:
- Allow Shift+Enter to pass through QuickPanel event handling
- Add Shift+Enter detection in CommandListPopover to return false
- Implement fallback Shift+Enter handling in command suggestion render
- Remove unused import in AppUpdater.ts
- Convert Chinese comments to English in QuickPanel
- Add test coverage for command suggestion functionality
---------
Co-authored-by: Zhaokun Zhang <zhaokunzhang@Zhaokuns-Air.lan>
- Change hover background color and add shadow in AgentItem
- Use cn utility for className in SessionItem
- Update height and background color for active state in SessionItem
- Introduce SelectAgentModelButton component for agent model selection
- Add SelectApiModelPopup for displaying and selecting API models
- Implement apiModelAdapter to convert API models to adapted format
- Add model filtering by agent type in agentSession utils
- Update model select components to use new API model selection
Update component and type names from 'advance' to 'advanced' for consistency and correct spelling. This includes renaming the file and all related references in the codebase.
- Updated logging statements across various modules to provide more structured and detailed information.
- Changed log levels from info to debug for less critical messages to reduce log clutter.
- Enhanced error logging to include relevant context such as agentId, sessionId, and model details.
- Standardized log messages to follow a consistent format, improving readability and maintainability.
Ensure proper handling of undefined values for agent name and description by making state types optional. Also update the updateName function to handle optional name input.
- Updated CodeToolsPage to include checks for supported endpoint types for various CLI tools.
- Added 'cherryin' to GEMINI_SUPPORTED_PROVIDERS and updated CLAUDE_SUPPORTED_PROVIDERS to include it.
- Improved logic for determining model compatibility with selected CLI tools, enhancing overall functionality.
- Introduced a helper function to escape strings for AppleScript to ensure proper command execution.
- Updated terminal command definitions to utilize the new escape function, improving compatibility with special characters.
- Adjusted command parameters to use double quotes for directory paths, enhancing consistency and reliability.
* refactor(reasoning): simplify reasoning time tracking by removing unused variables and logic
- Removed hasStartedThinking and reasoningBlockId variables as they are no longer needed.
- Updated onThinkingComplete callback to eliminate final_thinking_millsec parameter, streamlining the function.
* refactor(thinking): streamline thinking millisecond tracking and update event handling
- Removed unused thinking_millsec parameter from onThinkingComplete and adjusted related logic.
- Updated AiSdkToChunkAdapter to simplify reasoning-end event handling by removing unnecessary properties.
- Modified integration tests to reflect changes in thinking event structure.
* fix: 添加 seedThink 标签以支持新的模型识别
* Enable reasoning for SEED-OSS models
- Add SEED-OSS model ID check to reasoning exclusion logic
- Include SEED-OSS models in reasoning model detection
* fix: 更新 reasoning-end 事件处理以使用最终推理内容
Use agent's model information instead of session's to maintain consistency across the application. The model ID format changed from "sessionId:modelId" to "provider:modelId" and the model object is now constructed using the actual model details from the agent.
- Added isNewApiProvider function to streamline checks for 'new-api' and 'cherryin' providers.
- Updated ApiClientFactory, providerConfig, and various components to utilize isNewApiProvider for improved readability and maintainability.
- Refactored conditional checks across multiple files to replace direct string comparisons with the new utility function.
- Adjusted padding in TabsBar and Navbar components to enhance spacing.
- Updated ItemRenderer and Sortable components to accept itemStyle prop for custom styling.
- Changed NotesSidebar scroll behavior from 'smooth' to 'instant'.
- Modified MCP server card width to 100% for better responsiveness.
- Set wrapperStyle and itemStyle to 100% width in McpServersList for consistent item display.
* feat(minapps): support temporary minapps
* feat(settings): use openSmartMinApp with app logo to open docs sites
* refactor(icons): replace styled img with tailwind
* feat(tab): tighten types
* feat(tab): use minapps cache and log missing entries
* test(icons): update MinAppIcon snapshot to reflect class and attrs
* fix(assistant): enforce id requirement when updating assistant
Ensure assistant id is always provided when updating assistant properties by making it a required field in the update payload. This prevents potential bugs where updates might be applied to wrong assistants.
* refactor(useAssistant): simplify updateAssistant callback by removing redundant id
Update InputbarTools to use simplified callback signature
- Implement double-click to edit session names directly in the list
- Add loading state during save operation
- Update useInPlaceEdit hook to support async operations and saving state
- Adjust styling to accommodate new edit input field
- Adjusted the width of the CardContainer to dynamically calculate based on viewport width.
- Changed the layout of the McpServersList from grid to list, with a vertical orientation and updated styling for list items.
- Introduced new HTML files for the privacy policy in English and Chinese.
- Implemented a PrivacyPopup component to display the privacy policy within the application.
- The popup dynamically loads the appropriate language based on user settings and includes options to accept or decline the policy.
- Introduced a new IPC channel for quitting the application.
- Updated ipc.ts to handle the App_Quit channel, allowing the app to quit when invoked.
- Added corresponding quit method in the preload API for client-side access.
- Fixed a minor URL check in WindowService to ensure proper navigation handling.
- Added detailed JSDoc comments for clarity on tool input types, including ReadToolInput, TaskToolInput, BashToolInput, and others.
- Introduced new input types such as ListMcpResourcesToolInput and ReadMcpResourceToolInput to expand functionality.
- Improved existing types to ensure better documentation and usability for developers.
- Introduced new tools: EditTool, MultiEditTool, BashOutputTool, NotebookEditTool, and ExitPlanModeTool.
- Updated MessageTool to support new tool types.
- Enhanced ReadTool to handle output as an array of text outputs.
- Improved type definitions to accommodate new tools and their inputs/outputs.
- Add text color classes to modal title and list items for better visibility
- Apply background and border styling to modal content
- Use modal hook pattern for consistency
- Translated and reorganized Russian language JSON for tooling and permissions.
- Removed deprecated MCP and tool settings components.
- Introduced new AgentToolingSettings component to manage tooling permissions and MCP servers.
- Updated AgentSettings index to reflect new tooling settings structure.
- Enhanced agent configuration schema to include permission modes with default values.
The antd Select component was replaced with a custom Select component from @heroui/react to improve consistency with the design system. This change also simplifies the model selection logic by removing the need for manual option mapping.
- Move tool selection from essential settings to dedicated "Pre-approved tools" tab
- Update terminology from "Allowed tools" to "Pre-approved tools" for clarity
- Add new AgentToolSettings component with enhanced card-based layout
- Include warning alert about pre-approved tools bypassing review
- Update all language files with new terminology and translation keys
- Add i18n sync guidance to CLAUDE.md development commands
- Add MCP server configuration UI for agent settings
- Update agent and session forms to include MCP server selection
- Fix MCP API service logging and tools handling
- Add Chinese localization for MCP settings
- Update type definitions to support MCP server arrays
This enables agents to use MCP (Model Control Protocol) servers
as additional tools and capabilities in their execution context.
- Add filter support to useApiModel hook for provider-specific models
- Improve ApiModelLabel with customizable classNames for styling
- Update ChatNavbar to use filtered models for agents