* feat(database): enable strict transaction durability for CherryStudio database
- Updated the Dexie database initialization to include `chromeTransactionDurability: 'strict'`, enhancing data integrity during transactions.
* feat(app): enhance application shutdown process and data flushing
- Added functionality to flush storage data and cookies before quitting the application, ensuring data integrity.
- Introduced a new `handleBeforeQuit` function to centralize cleanup logic for both manual and update-triggered quits.
- Updated logging to provide better insights during the shutdown process.
- Modified ProxyManager to use debug level for unchanged proxy configurations.
- Added `persistor` to the global window object and implemented `handleSaveData` to flush Redux state before quitting.
* format code
* feat(ipc): add App_SaveData channel and implement data saving on window close
- Introduced a new IPC channel `App_SaveData` for saving application data.
- Updated `WindowService` to send a save data message when the main window is closed.
- Enhanced `useAppInit` hook to handle the `App_SaveData` event and trigger data saving logic.
* refactor(env): remove persistor from global window object
- Removed the `persistor` property from the global `window` object in both `env.d.ts` and `index.ts` files, streamlining the application state management.
* ✨ feat: make API server default to closed/disabled
- Add `enabled` field to ApiServerConfig interface with default value false
- Update Redux store to include apiServer.enabled setting (defaults to false)
- Add setApiServerEnabled action to control server state
- Modify main process to only auto-start API server if explicitly enabled
- Update UI to show enable/disable toggle in API server settings
- Add migrations to handle existing configurations
- Server controls now only visible when API server is enabled
The API server will no longer start automatically on application launch
unless explicitly enabled by the user through the settings interface.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* 🔧 chore: improve build and lint commands
- Move typecheck and i18n checks to lint command for better developer experience
- Simplify build:check to focus on linting and testing
- Ensure all quality checks run together during development
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
* fix(AppUpdater): simplify error logging and update version check logic
- Updated error logging to use a more concise format.
- Changed logging messages for update events to be more consistent.
- Modified the update check logic to return null when no update is available.
- Enhanced the app initialization hook to include update availability in the state dispatch.
* fix(useAppInit): simplify update state dispatch logic by removing update availability check
* fix(LocalBackup): streamline local backup directory handling
- Added a new state to manage the resolved local backup directory in LocalBackupSettings.
- Updated the LocalBackupManager component to use the resolved directory instead of the raw input.
- Enhanced the backupToLocal and restoreFromLocal functions to resolve the local backup directory path before use, improving reliability.
* refactor(Backup): remove setLocalBackupDir functionality
- Removed the setLocalBackupDir method and its associated IPC channel handling from the BackupManager and IpcChannel.
- Updated LocalBackupSettings to eliminate direct calls to setLocalBackupDir, instead resolving the local backup directory path directly.
- Cleaned up related code in the BackupService to streamline local backup operations.
* format code
* feat(ipc): add isPathInside functionality to check path relationships
- Introduced a new IPC channel for checking if a path is inside another path, enhancing path validation capabilities.
- Implemented the isPathInside function in the file utility, which accurately determines parent-child path relationships, handling edge cases.
- Updated relevant components to utilize the new isPathInside function for validating app data and backup paths, ensuring better user experience and error handling.
- Added comprehensive tests for isPathInside to cover various scenarios, including edge cases and error handling.
* format code
* feat(MCPService, MCPSettings, MessageTools): enhance long-running server support and UI integration
- Added support for long-running server configurations in MCPService, allowing for timeout adjustments based on server settings.
- Introduced a new `longRunning` property in MCPSettings to manage server behavior and UI elements accordingly.
- Integrated a ProgressBar component in MessageTools to visually represent progress for long-running operations, improving user experience.
* refactor(IpcChannel, MCPService, MessageTools): remove progress IPC channel and integrate progress handling
- Removed the `Mcp_SetProgress` channel from `IpcChannel` and its associated handlers in `ipc.ts` and `preload/index.ts`.
- Integrated progress handling directly in `McpService` to send progress updates to the main window.
- Updated `MessageTools` to display progress using Ant Design's `Progress` component, enhancing the user interface for long-running operations.
- Deleted the `ProgressBar` component as its functionality has been replaced by the new progress handling approach.
* feat(MCPService): add maxTotalTimeout configuration for long-running operations
- Introduced a new `maxTotalTimeout` property in MCPService to define a maximum timeout duration for long-running server operations, enhancing control over server behavior based on the `longRunning` setting.
* refactor(MCPService): remove unused notification handler for cancelled operations
* Removed the CancelledNotificationHandler from MCPService to streamline notification handling and improve code clarity.
* Updated MessageTools component to simplify rendering logic for status indicators, enhancing readability and maintainability.
* refactor(knowledge): simplify dimension settings, support base migration
Embedding dimension
- remove 'auto set dimension', let the user take control
- reuse findModelById
- improve error messages for VoyageEmbeddings
Knowledgebase migration
- enable migration when model or dimension changes
- add knowledgeThunk to reuse code
KnowledgeSettings
- unify UI for AddKnowledgeBasePopup and EditKnowledgeBasePopup
- refactor KnowledgeSettings, split it to smaller components
Tests:
- knowledgeThunk
- InputEmbeddingDimension
- KnowledgeBaseFormModal
- GeneralSettingsPanel
- AdvancedSettingsPanel
- InfoTooltip
Misc.
- add InfoTooltip
- remove MemoriesSettingsModal
* fix: i18n and vitest config
* chore(env): add .env.example file and update .gitignore
- Introduced a new .env.example file with NODE_OPTIONS configuration.
- Updated .gitignore to exclude .env.example from being ignored.
- Added instructions in dev.md for copying .env.example to .env.
* fix(MessageTools): improve error handling and logging in message preview rendering (#8453)
- Enhanced the rendering logic for message previews by adding a try-catch block to handle JSON parsing errors more gracefully.
- Updated the error handling to provide clearer error messages in the preview when exceptions occur.
- Added debug logging to track the rendering process of message content.
* refactor(Theme): update theme management to use setTheme function
- Replaced toggleTheme with setTheme for more explicit theme handling.
- Removed unused SunMoon icon from TabContainer and Sidebar components.
- Updated theme icon rendering logic to directly reflect the current theme state.
- Adjusted ThemeProvider to include setTheme in context for better theme management.
* refactor(ModelList): streamline button layout and improve accessibility
- Removed tooltip wrappers from manage and add model buttons for a cleaner UI.
- Introduced a new Flex container for primary and default buttons, enhancing layout consistency.
- Updated button rendering to improve accessibility and user experience.
* feat(ModelList): add bulk add/remove functionality for models with confirmation dialog
- Implemented onAddAll and onRemoveAll functions to handle bulk actions for models.
- Added confirmation dialog for adding all models to the list, enhancing user experience.
- Updated translations for confirmation messages in multiple languages.
* chore(languages): update languages with a script (#8445)
* chore(languages): update languages with a script
* refactor: update languages and merge it into constants
* refactor: add usf and ush
* refactor(ipc): enhance write permission check and add untildify utility
- Updated the hasWritePermission function to resolve paths using the new untildify utility, improving path handling.
- Modified IPC handler to await the permission check for better asynchronous handling.
- Introduced a new untildify function to convert paths starting with '~' to the user's home directory.
* fix(ModelEdit): enhance model type management and introduce new selection logic (#8420)
* fix(ModelEdit): enhance model type management and introduce new selection logic
- Added support for 'rerank' model type in the ModelEditContent component.
- Refactored type selection logic to utilize new utility functions for finding differences and unions in model types.
- Updated model type handling to include user selection status, improving user experience in type management.
- Adjusted migration logic to initialize newType for existing models, ensuring backward compatibility.
- Introduced isUserSelectedModelType utility to streamline model type checks across the application.
* refactor(isFunctionCallingModel): simplify model type check logic
- Replaced the inline check for 'function_calling' model type with a call to the new utility function isUserSelectedModelType, enhancing code clarity and maintainability.
* feat(collection): add utility functions for array operations
- Introduced `findIntersection`, `findDifference`, and `findUnion` functions to handle array operations with support for custom key selectors and comparison functions.
- Removed previous implementations from `index.ts` to streamline utility exports.
- Added comprehensive tests for new functions covering basic types and object types with various edge cases.
* refactor(collection): rename utility functions for clarity
- Renamed `findIntersection`, `findDifference`, and `findUnion` to `getIntersection`, `getDifference`, and `getUnion` respectively for improved clarity and consistency in naming.
- Updated corresponding tests to reflect the new function names, ensuring all tests pass with the updated utility functions.
* refactor(ModelEditContent): update model type management and improve selection logic
- Replaced utility function calls to `findDifference` and `findUnion` with `getDifference` and `getUnion` for consistency.
- Introduced temporary state management for model types to enhance user selection handling.
- Added a reset functionality for model type selections, improving user experience.
- Updated the rendering logic to conditionally disable certain model types based on user selections.
* fix(ModelEditContent): enhance model type selection logic with conditional disabling
- Introduced logic to conditionally disable 'rerank' and 'embedding' model types based on user selections.
- Updated the state management for model types to ensure correct user selection handling.
- Improved the confirmation modal to reflect the updated selection logic for better user experience.
* fix(ModelEditContent): refine model type selection and update confirmation logic
- Enhanced the logic for model type selection to ensure accurate user selections for 'rerank' and 'embedding'.
- Updated the confirmation modal to reflect changes in selection handling, improving user experience.
- Adjusted state management to correctly handle updates based on selected model types.
* fix(models): update model support logic to include 'qwen3-235b-a22b-instruct'
* refactor(models): rename 'newType' to 'capabilities' and update related logic in ModelEditContent and migration scripts
* feat(ipc): add App_ResolvePath channel and update path handling
- Introduced a new IPC channel `App_ResolvePath` to resolve file paths, enhancing path management.
- Updated the `hasWritePermission` function to log the original directory instead of the resolved one.
- Modified the `LocalBackupSettings` component to utilize the new `resolvePath` method for improved directory validation.
* add ut
* fix comments
* fix clear manually
* delete duplicate var
---------
Co-authored-by: kangfenmao <kangfenmao@qq.com>
Co-authored-by: SuYao <sy20010504@gmail.com>
Co-authored-by: one <wangan.cs@gmail.com>
* chore(env): add .env.example file and update .gitignore
- Introduced a new .env.example file with NODE_OPTIONS configuration.
- Updated .gitignore to exclude .env.example from being ignored.
- Added instructions in dev.md for copying .env.example to .env.
* fix(MessageTools): improve error handling and logging in message preview rendering (#8453)
- Enhanced the rendering logic for message previews by adding a try-catch block to handle JSON parsing errors more gracefully.
- Updated the error handling to provide clearer error messages in the preview when exceptions occur.
- Added debug logging to track the rendering process of message content.
* refactor(Theme): update theme management to use setTheme function
- Replaced toggleTheme with setTheme for more explicit theme handling.
- Removed unused SunMoon icon from TabContainer and Sidebar components.
- Updated theme icon rendering logic to directly reflect the current theme state.
- Adjusted ThemeProvider to include setTheme in context for better theme management.
* refactor(ModelList): streamline button layout and improve accessibility
- Removed tooltip wrappers from manage and add model buttons for a cleaner UI.
- Introduced a new Flex container for primary and default buttons, enhancing layout consistency.
- Updated button rendering to improve accessibility and user experience.
* feat(ModelList): add bulk add/remove functionality for models with confirmation dialog
- Implemented onAddAll and onRemoveAll functions to handle bulk actions for models.
- Added confirmation dialog for adding all models to the list, enhancing user experience.
- Updated translations for confirmation messages in multiple languages.
* chore(languages): update languages with a script (#8445)
* chore(languages): update languages with a script
* refactor: update languages and merge it into constants
* refactor: add usf and ush
* fix(ModelEdit): enhance model type management and introduce new selection logic (#8420)
* fix(ModelEdit): enhance model type management and introduce new selection logic
- Added support for 'rerank' model type in the ModelEditContent component.
- Refactored type selection logic to utilize new utility functions for finding differences and unions in model types.
- Updated model type handling to include user selection status, improving user experience in type management.
- Adjusted migration logic to initialize newType for existing models, ensuring backward compatibility.
- Introduced isUserSelectedModelType utility to streamline model type checks across the application.
* refactor(isFunctionCallingModel): simplify model type check logic
- Replaced the inline check for 'function_calling' model type with a call to the new utility function isUserSelectedModelType, enhancing code clarity and maintainability.
* feat(collection): add utility functions for array operations
- Introduced `findIntersection`, `findDifference`, and `findUnion` functions to handle array operations with support for custom key selectors and comparison functions.
- Removed previous implementations from `index.ts` to streamline utility exports.
- Added comprehensive tests for new functions covering basic types and object types with various edge cases.
* refactor(collection): rename utility functions for clarity
- Renamed `findIntersection`, `findDifference`, and `findUnion` to `getIntersection`, `getDifference`, and `getUnion` respectively for improved clarity and consistency in naming.
- Updated corresponding tests to reflect the new function names, ensuring all tests pass with the updated utility functions.
* refactor(ModelEditContent): update model type management and improve selection logic
- Replaced utility function calls to `findDifference` and `findUnion` with `getDifference` and `getUnion` for consistency.
- Introduced temporary state management for model types to enhance user selection handling.
- Added a reset functionality for model type selections, improving user experience.
- Updated the rendering logic to conditionally disable certain model types based on user selections.
* fix(ModelEditContent): enhance model type selection logic with conditional disabling
- Introduced logic to conditionally disable 'rerank' and 'embedding' model types based on user selections.
- Updated the state management for model types to ensure correct user selection handling.
- Improved the confirmation modal to reflect the updated selection logic for better user experience.
* fix(ModelEditContent): refine model type selection and update confirmation logic
- Enhanced the logic for model type selection to ensure accurate user selections for 'rerank' and 'embedding'.
- Updated the confirmation modal to reflect changes in selection handling, improving user experience.
- Adjusted state management to correctly handle updates based on selected model types.
* fix(models): update model support logic to include 'qwen3-235b-a22b-instruct'
* refactor(models): rename 'newType' to 'capabilities' and update related logic in ModelEditContent and migration scripts
* refactor(ModelEditContent): remove maskClosable prop for improved modal behavior
* fix(ThinkingTagExtraction): add new tag configuration for 'kimi-vl-a3b-thinking' model (#8459)
* feat(ThinkingTagExtraction): add new tag configuration for 'kimi-vl-a3b-thinking' model and update model regex patterns in config
- Introduced a new tag configuration for the 'kimi-vl-a3b-thinking' model in ThinkingTagExtractionMiddleware.
- Updated models.ts to include regex patterns for 'kimi-vl-a3b-thinking', 'llama-guard-4', and 'llama-4' to enhance model compatibility.
* feat(models): add regex pattern for 'gemma3' model to enhance model compatibility
* fix(RawStreamListenerMiddleware): update model check (#8433)
* fix(RawStreamListenerMiddleware): update model check for Anthropic API integration
- Replaced provider type check with model ID check to enhance compatibility with Claude models.
- Improved clarity in the middleware logic for handling raw output from the SDK.
* refactor(RawStreamListenerMiddleware): enhance model identification for Anthropic integration
- Introduced a new utility function `isAnthropicModel` to streamline model checks across the codebase.
- Updated middleware logic to utilize the new function for improved clarity and maintainability.
- Adjusted related tests to ensure compatibility with the updated model identification approach.
* test(ApiService.test): add mock for isAnthropicModel to enhance test coverage for model identification
* refactor(ChatNavbar, Navbar): simplify toggle functions and remove unused fullscreen hook
- Removed unnecessary useCallback functions for toggling assistants and topics, directly using the toggle functions instead.
- Eliminated the unused fullscreen hook import to clean up the code.
- Updated click handlers in the Navbar components for better readability and efficiency.
* chore(version): 1.5.3
* style(MinAppsPage): adjust padding for AppsContainerWrapper based on navbar position
- Increased padding for the AppsContainerWrapper to 50px for better spacing.
- Added conditional padding for when the navbar is positioned at the top, reverting to 20px for improved layout consistency.
* fix(AiProvider): remove unnecessary middleware removal logic for… (#8437)
* refactor(AiProvider): remove unnecessary middleware removal logic for improved clarity
* feat(PPIOAPIClient): add compatibility type check for OpenAIAPIClient
* refactor(ModelEditContent): rename state variable for clarity and update model capabilities handling
- Renamed `tempModelTypes` to `modelCapabilities` for improved clarity in the ModelEditContent component.
- Updated state management and logic to consistently use the new `modelCapabilities` variable throughout the component, enhancing readability and maintainability.
* Feat/vertex-claude-support (#7564)
* feat(migrate): add default settings for assistants during migration
- Introduced a new migration step to assign default settings for assistants that lack configuration.
- Default settings include temperature, context count, and other parameters to ensure consistent behavior across the application.
* chore(store): increment version number to 115 for persisted reducer
* feat(vertex-sdk): integrate Anthropic Vertex SDK and add access token retrieval
- Added support for the new `@anthropic-ai/vertex-sdk` in the project.
- Introduced a new IPC channel `VertexAI_GetAccessToken` to retrieve access tokens.
- Implemented `getAccessToken` method in `VertexAIService` to handle service account authentication.
- Updated the `IpcChannel` enum and related IPC handlers to support the new functionality.
- Enhanced the `VertexAPIClient` to utilize the `AnthropicVertexClient` for model handling.
- Refactored existing code to accommodate the integration of the Vertex SDK and improve modularity.
* feat(vertex-ai): enhance VertexAI settings and API host management
- Added a new method to format the API host URL in both AnthropicVertexClient and VertexAPIClient.
- Updated getBaseURL methods to utilize the new formatting logic.
- Enhanced VertexAISettings component to include an input for API host configuration, with help text for user guidance.
- Updated localization files to include new help text for the API host field in multiple languages.
* fix(vertex-sdk): update baseURL handling and patch dependencies
- Refactored baseURL assignment in AnthropicVertexClient to ensure it defaults to undefined when the URL is empty.
- Updated yarn.lock to reflect changes in dependency resolution and checksum for @anthropic-ai/vertex-sdk patch.
* refactor(VertexAISetting): use provider.id rather than provider
* refactor: improve API host formatting in AnthropicVertexClient
- Updated the `formatApiHost` method to streamline host URL handling.
- Introduced a helper function to determine if the original host should be used based on its format.
- Ensured consistent appending of the `/v1/` path for valid API requests.
* fix: handle empty host in AnthropicVertexClient
- Added a check in the `getBaseURL` method to return the host if it is empty, preventing potential errors.
- Included a console log for the base URL to aid in debugging and verification of the URL formatting.
* feat(AnthropicVertexClient): add logging for authentication errors and mock client in tests
- Introduced logging functionality in AnthropicVertexClient to replace console.error with logger service for better error tracking.
- Added mock implementation for AnthropicVertexClient in tests to enhance testing capabilities.
- Updated package.json to include the @aws-sdk/client-s3 dependency.
* feat(tests): add comprehensive tests for client compatibility types
- Introduced a new test file to validate compatibility types for various API clients including OpenAI, Anthropic, Gemini, Aihubmix, NewAPI, and Vertex.
- Implemented mock services to facilitate testing and ensure isolation of client behavior.
- Added tests for both direct API clients and decorator pattern clients, ensuring correct compatibility type returns.
- Enhanced middleware compatibility logic tests to verify correct identification of compatible clients.
---------
Co-authored-by: one <wangan.cs@gmail.com>
* fix(mcp-tools): enhance tool lookup logic to support partial matches (#8473)
* fix(mcp-tools): enhance tool lookup logic to support partial matches
- Updated the tool lookup logic in `geminiFunctionCallToMcpTool` to include partial matches for both tool IDs and names, improving the flexibility of tool identification.
* refactor(mcp-tools): simplify tool lookup logic for improved clarity
- Refactored the tool lookup logic in `geminiFunctionCallToMcpTool` to streamline the identification process by consolidating checks for tool IDs and names into a single variable. This enhances readability and maintains functionality for partial matches.
* chore(deps): update vite to rolldown-vite (#8460)
* chore(deps): update vite to rolldown-vite and add new dependencies
- Updated vite dependency to rolldown-vite@latest in package.json.
- Added new dependencies including @emnapi/core, @emnapi/runtime, and @napi-rs/wasm-runtime in yarn.lock.
- Introduced patches for atomically and file-stream-rotator packages.
- Added process import in index.ts for improved functionality.
* updrade vitest
* not package graceful-fs
* update yarn.lock
* fix(AppUpdater): improve update handling and logging for test plans
- Enhanced the update logic in AppUpdater to prevent sending an 'update not available' event when a test plan is enabled and the channel is not the latest.
- Refactored the feed URL and channel setting into a private method for better code organization.
- Added logging to provide clearer insights into the update check results and channel settings, particularly when the test plan is active.
---------
Co-authored-by: kangfenmao <kangfenmao@qq.com>
Co-authored-by: SuYao <sy20010504@gmail.com>
Co-authored-by: one <wangan.cs@gmail.com>
* chore(deps): update vite to rolldown-vite and add new dependencies
- Updated vite dependency to rolldown-vite@latest in package.json.
- Added new dependencies including @emnapi/core, @emnapi/runtime, and @napi-rs/wasm-runtime in yarn.lock.
- Introduced patches for atomically and file-stream-rotator packages.
- Added process import in index.ts for improved functionality.
* updrade vitest
* not package graceful-fs
* update yarn.lock
* feat(migrate): add default settings for assistants during migration
- Introduced a new migration step to assign default settings for assistants that lack configuration.
- Default settings include temperature, context count, and other parameters to ensure consistent behavior across the application.
* chore(store): increment version number to 115 for persisted reducer
* feat(vertex-sdk): integrate Anthropic Vertex SDK and add access token retrieval
- Added support for the new `@anthropic-ai/vertex-sdk` in the project.
- Introduced a new IPC channel `VertexAI_GetAccessToken` to retrieve access tokens.
- Implemented `getAccessToken` method in `VertexAIService` to handle service account authentication.
- Updated the `IpcChannel` enum and related IPC handlers to support the new functionality.
- Enhanced the `VertexAPIClient` to utilize the `AnthropicVertexClient` for model handling.
- Refactored existing code to accommodate the integration of the Vertex SDK and improve modularity.
* feat(vertex-ai): enhance VertexAI settings and API host management
- Added a new method to format the API host URL in both AnthropicVertexClient and VertexAPIClient.
- Updated getBaseURL methods to utilize the new formatting logic.
- Enhanced VertexAISettings component to include an input for API host configuration, with help text for user guidance.
- Updated localization files to include new help text for the API host field in multiple languages.
* fix(vertex-sdk): update baseURL handling and patch dependencies
- Refactored baseURL assignment in AnthropicVertexClient to ensure it defaults to undefined when the URL is empty.
- Updated yarn.lock to reflect changes in dependency resolution and checksum for @anthropic-ai/vertex-sdk patch.
* refactor(VertexAISetting): use provider.id rather than provider
* refactor: improve API host formatting in AnthropicVertexClient
- Updated the `formatApiHost` method to streamline host URL handling.
- Introduced a helper function to determine if the original host should be used based on its format.
- Ensured consistent appending of the `/v1/` path for valid API requests.
* fix: handle empty host in AnthropicVertexClient
- Added a check in the `getBaseURL` method to return the host if it is empty, preventing potential errors.
- Included a console log for the base URL to aid in debugging and verification of the URL formatting.
* feat(AnthropicVertexClient): add logging for authentication errors and mock client in tests
- Introduced logging functionality in AnthropicVertexClient to replace console.error with logger service for better error tracking.
- Added mock implementation for AnthropicVertexClient in tests to enhance testing capabilities.
- Updated package.json to include the @aws-sdk/client-s3 dependency.
* feat(tests): add comprehensive tests for client compatibility types
- Introduced a new test file to validate compatibility types for various API clients including OpenAI, Anthropic, Gemini, Aihubmix, NewAPI, and Vertex.
- Implemented mock services to facilitate testing and ensure isolation of client behavior.
- Added tests for both direct API clients and decorator pattern clients, ensuring correct compatibility type returns.
- Enhanced middleware compatibility logic tests to verify correct identification of compatible clients.
---------
Co-authored-by: one <wangan.cs@gmail.com>
* fix(inputSchemas): convert input schemas to JSON schema format for consistency across DifyKnowledgeServer and FileSystemServer
* fix(AnthropicAPIClient): handle empty accumulated JSON input gracefully and improve auto-approval logic for built-in tools
* feat: ui switch
* chore: update migration version to 122 and adjust settings topic position
* refactor: replace PinnedApps component with SidebarPinnedApps and SidebarOpenedMinappTabs for improved structure
* feat(i18n): add launchpad apps and minapps translations for multiple languages
* style: update MinAppIcon and IconContainer dimensions for improved UI consistency
* refactor: remove unused SidebarContainer component from AppsPage
* refactor: adjust Navbar padding and enhance search functionality in AgentsPage
* feat(minapps): implement MinApps page and enhance mini app management features
- Added MinAppsPage for managing mini applications.
- Introduced NewAppButton for adding custom mini apps.
- Created MiniAppSettings for configuring mini app settings.
- Enhanced mini app icon management with MiniAppIconsManager.
- Updated Router to include MinAppsPage and replaced AppsPage with MinAppsPage.
- Added translations for new mini app features in multiple languages.
* wip
* refactor: rename App component to MinApp and streamline LaunchpadPage logic
- Renamed App component to MinApp for clarity.
- Removed unnecessary state management in LaunchpadPage.
- Simplified minapp sorting logic by directly using openedKeepAliveMinapps.
* feat(i18n): update translations for multiple languages and restructure title entries
- Added missing title entries for various sections in English, Japanese, Russian, Chinese (Simplified and Traditional).
- Restructured the launchpad and minapp translations for better organization.
- Enhanced navbar display settings translations across all supported languages.
* feat: add header prop to DraggableVirtualList and implement Add Topic button in TopicsTab
- Introduced a new `header` prop in the DraggableVirtualList component to allow custom header content.
- Added an Add Topic button in the TopicsTab with a corresponding styled component and translation support for multiple languages.
- Updated styles in AssistantsTab and adjusted overflow behavior in Tabs index for better UI experience.
* style: adjust margins and max-width for improved layout in various components
- Updated margin-top in HtmlArtifactsCard for consistent spacing.
- Set max-width in MessageGroup to enhance responsiveness based on navbar position.
- Modified Add Topic button in TopicsTab to emit an event for better functionality.
* fix: correct state property name in migration for navbar position
- Updated the migration logic to set the correct state property from `topicPosition` to `navbarPosition` for proper configuration handling.
* fix: adjust traffic light position and navbar height for improved UI consistency
- Updated traffic light position in WindowService to enhance layout.
- Adjusted navbar height in color.scss for better alignment across components.
- Modified TabContainer to track last settings path and improve navigation handling.
* style: update AddTopicButton styling for improved hover effect in TopicsTab
- Changed AddTopicButton from a button to a div for better styling flexibility.
- Removed dashed border and added background color on hover for enhanced user experience.
- Retained border-radius for consistent design across components.
* feat: add TextBadge component and integrate into Display and Memory settings
- Introduced a new TextBadge component for displaying styled badges.
- Integrated TextBadge into DisplaySettings to highlight the navbar title as "New".
- Replaced inline badge implementation in MemorySettings with the new TextBadge component for consistency and improved maintainability.
* fix: adjust tab and navbar styling for improved UI consistency
- Increased height of title bar overlays for better visual balance.
- Updated tab creation logic to prevent duplicate tabs for specific paths.
- Modified tab icon and close button sizes for a more compact design.
- Enhanced tab spacing and padding for improved layout across components.
* style: update PinnedMinapps component for improved UI consistency
- Increased icon size and adjusted border radius for better visual appeal.
- Modified TopNavContainer padding and margin for enhanced layout.
- Reduced dimensions of TopNavIcon for a more compact design.
* refactor: enhance TabsContainer logic and styling for improved tab management
- Introduced a new `removeSpecialTabs` function to manage special tab removal more effectively.
- Updated tab filtering logic to utilize a dedicated `specialTabs` array for better maintainability.
- Adjusted styling in PinnedMinapps for consistent icon sizing and background color improvements.
* style: adjust layout and padding for improved UI consistency in Chat and Inputbar components
- Updated main height calculation in Chat component to account for additional spacing.
- Modified padding in Inputbar component for better alignment when navbar is positioned at the top.
- Ensured consistent minimum height in Tabs component to match updated navbar height calculations.
* refactor: update app menu item text keys for improved localization
- Changed text keys in the app menu items from specific titles to a more generalized 'title' namespace for better consistency and maintainability.
- Ensured that the visual representation of the menu items remains unchanged while enhancing the localization structure.
* refactor: simplify sidebar toggle logic in ChatNavbar and Navbar components
- Removed unnecessary cooldown logic when toggling the visibility of assistants and topics.
- Updated HomePage to conditionally render the Navbar based on the sidebar state for improved UI responsiveness.
* refactor: streamline Chat component and introduce useChatMaxWidth hook
- Consolidated max width calculation logic into a new `useChatMaxWidth` hook for better reusability.
- Removed unused variables and simplified state management in the Chat component.
- Updated MessageGroup to utilize the new `useChatMaxWidth` hook for consistent layout handling.
* refactor: remove FloatingSidebar component and integrate AssistantsDrawer for improved UI management
- Deleted the FloatingSidebar component to streamline the codebase.
- Introduced AssistantsDrawer for managing assistant interactions, enhancing user experience.
- Updated Navbar and ChatNavbar components to utilize AssistantsDrawer instead of FloatingSidebar for better responsiveness and maintainability.
* refactor: implement TabsService for improved tab management functionality
- Introduced TabsService to centralize tab operations, including closing and setting active tabs.
- Updated TabsContainer and LaunchpadPage components to utilize TabsService for closing tabs, enhancing code maintainability.
- Made minor UI adjustments in PinnedMinapps for consistent icon sizing and layout improvements.
* fix: prevent default event behavior when not in fullscreen mode
- Updated WindowService to conditionally call event.preventDefault() only when the main window is not in fullscreen, improving event handling logic.
* refactor: move initAppDataDir function to a new utils module
- Updated the import path for initAppDataDir in bootstrap.ts to reflect its new location in the utils/init module.
- Removed the initAppDataDir function and related code from file.ts to streamline the file and improve organization.
* refactor: update import structure in ipc.ts
- Removed the import of updateAppDataConfig from file.ts and added it to the new init module for better organization and clarity in the code structure.
* refactor: rename getConfigPath to getConfigDir and update related references
- Renamed the function getConfigPath to getConfigDir for clarity.
- Updated references to the renamed function in getAppDataPathFromConfig and updateAppDataConfig to reflect the new naming convention.
* refactor: update pdfjs import and improve file filtering in electron-builder configuration
- Changed pdfjs import to a direct import from 'pdfjs-dist' for consistency across modules.
- Updated file filtering in electron-builder.yml to exclude all legacy files from pdfjs-dist instead of just specific ones.
* format code
refactor(Logger): enhance logging with environment variable support
- Updated LoggerService to utilize environment variables for filtering logs by level and module in development mode.
- Modified the logging level handling to use constants from the logger configuration.
- Enhanced documentation to include details on using environment variables for log filtering in both English and Chinese documentation files.
- Cleaned up unused type definitions related to logging.
* docs: enhance LoggerService documentation and usage guidelines
- Added details about `initWindowSource` method, emphasizing its return of the LoggerService instance for method chaining.
- Introduced a section on using LoggerService within `worker` threads, highlighting the need to call `initWindowSource` first.
- Updated both English and Chinese documentation files to reflect these changes, ensuring clarity in usage instructions for developers.
* docs: update LoggerService documentation and improve environment checks
- Enhanced documentation for using LoggerService in worker threads, clarifying logging support limitations in main and renderer processes.
- Added environment checks for development and production modes directly in the LoggerService.
- Removed the unused env utility file to streamline the codebase.
* refactor(ShikiStreamService): update highlighter management and improve test assertions
- Modified the highlighter management in ShikiStreamService to clear the reference instead of disposing it directly, as it is now managed by AsyncInitializer.
- Enhanced unit tests to verify the initialization of worker and main highlighters, ensuring that either one is active but not both, and updated assertions related to highlighter disposal.
* refactor: replace console logging with logger service across multiple components
- Updated various files to utilize the logger service instead of console.log for improved logging consistency and error tracking.
- Enhanced logging levels to better categorize messages, including debug and error levels.
- Refactored logging in components such as ApiClientFactory, KnowledgeService, and MemoryProcessor to align with the new logging standards.
* refactor: update logging level in App component from error to info
- Changed the logging level in the App component to provide a more appropriate context for initialization messages, enhancing clarity in the logging output.
* refactor(logging): replace console.log with logger service in middleware and update ESLint comments
- Updated the logging implementation in the createSimpleLoggingMiddleware function to use logger.debug and logger.error instead of console.log and console.error for improved logging consistency.
- Added eslint-disable comments for restricted syntax in preload and useAppInit hooks to suppress warnings.
* chore: update ESLint configuration and LoggerService formatting
- Refactored ESLint configuration to include custom rules for LoggerService, applying them specifically to the src directory while ignoring test and mock files.
- Commented out date formatting options in LoggerService for improved clarity in development logging.
* fix: add eslint-disable comments for restricted syntax in LoggerService
- Added eslint-disable comments to suppress warnings for restricted syntax in LoggerService for both main and renderer services.
- Improved error handling by logging messages when the window source is not initialized in the renderer LoggerService.
* Revert "feat: optimize minapp cache with LRU (#8160)"
This reverts commit f0043b4be5.
* feat: integrate logger service and enhance logging throughout the application
- Added a new LoggerService to standardize logging across the application.
- Replaced console.error and console.warn calls with logger methods for improved consistency and error tracking.
- Introduced a new IPC channel for logging messages to the main process.
- Updated various components and services to utilize the new logging system, enhancing error handling and debugging capabilities.
* refactor: enhance logging and error handling across various components
- Integrated the LoggerService for consistent logging throughout the application.
- Updated multiple components and services to utilize the new logging system, improving error tracking and debugging capabilities.
- Refactored file handling and error management in several services to enhance reliability and clarity.
- Improved the structure and readability of the codebase by removing redundant checks and simplifying logic.
* chore: update TypeScript configuration and enhance test setup
- Added test mock paths to tsconfig.web.json for improved test coverage.
- Configured Vitest to include a setup file for main tests, ensuring consistent test environment.
- Updated IPC logger context for better clarity in logging.
- Enhanced LoggerService to handle undefined values gracefully.
- Mocked LoggerService globally in renderer tests to streamline testing process.
* refactor: standardize logging across ProxyManager and ReduxService
- Replaced instances of Logger with logger for consistent logging implementation.
- Improved logging clarity in ProxyManager's configureProxy method and ReduxService's state handling.
- Enhanced error logging in ReduxService to align with the new logging system.
* refactor: reorganize LoggerService for improved clarity and consistency
- Moved the definition of SYSTEM_INFO, APP_VERSION, and DEFAULT_LEVEL to enhance code organization.
- Simplified the getIsDev function in the renderer LoggerService for better readability.
- Updated logging conditions to ensure messages are logged correctly based on context.
* docs: add usage instructions for LoggerService and clean up logging code
- Included important usage instructions for LoggerService in both English and Chinese.
- Commented out the console transport in LoggerService to streamline logging.
- Improved logging message formatting in MCPService for clarity.
- Removed redundant logging statements in SelectionService to enhance code cleanliness.
* refactor: update LoggerService documentation paths and enhance logging implementation
- Changed the documentation paths for LoggerService usage instructions to `docs/technical/how-to-use-logger-en.md` and `docs/technical/how-to-use-logger-zh.md`.
- Replaced console logging with the loggerService in various components, including `MCPSettings`, `BlockManager`, and multiple callback files, to ensure consistent logging practices across the application.
- Improved the clarity and context of log messages for better debugging and monitoring.
* docs: emphasize logger usage guidelines in documentation
- Added a note in both English and Chinese documentation to discourage the use of `console.xxx` for logging unless necessary, promoting consistent logging practices across the application.
* feat: add data parsing functionality in handleProvidersProtocolUrl
- Introduced a new ParseData function to decode and parse base64 encoded data from the URL parameters.
- Added error handling to log when data is null or invalid, improving robustness of the handleProvidersProtocolUrl function.
* fix: update data parsing in handleProvidersProtocolUrl and ProvidersList
- Modified ParseData function to return a JSON string instead of an object for consistency.
- Simplified data extraction in ProvidersList by directly parsing the addProviderData without base64 decoding, improving readability and performance.
* fix: improve data parsing in handleProvidersProtocolUrl
- Updated ParseData function to log the parsed result for better debugging.
- Enhanced data extraction by replacing URL-safe characters back to their original form before parsing, ensuring accurate data retrieval.
* fix: enhance error logging in ParseData function
- Updated the ParseData function to log errors when parsing fails, improving debugging capabilities and robustness in handling invalid data.
* format code
* feat: enhance proxy management and configuration
- Added support for new proxy modes and improved proxy configuration handling.
- Replaced AxiosProxy with direct axios usage for HTTP requests.
- Introduced fetch-socks and undici for better proxy handling.
- Updated IPC and ConfigManager to accommodate new proxy settings.
- Removed deprecated AxiosProxy service to streamline codebase.
* format code
* feat: improve proxy configuration and monitoring
- Introduced a new mechanism to monitor system proxy changes and update configurations accordingly.
- Enhanced the configureProxy method to prevent concurrent executions and added error logging with electron-log.
- Refactored proxy handling logic to streamline the setting of global and session proxies.
- Removed deprecated methods related to proxy management for cleaner code.
* update yarn.lock
* fix: update proxy configuration logic to handle direct mode
- Modified the app's ready event to check for 'direct' mode before configuring the proxy.
- Ensured that the proxy configuration is only applied when necessary, improving efficiency.
* feat: enhance proxy configuration to support authentication
- Added userId and password fields to the proxy configuration for SOCKS connections.
- Improved handling of proxy credentials to allow for authenticated proxy usage.
* refactor: remove deprecated proxy methods and streamline configuration logic
- Eliminated the setProxy and getProxy methods from ConfigManager to simplify the proxy configuration process.
- Updated ProxyManager to initialize with a default proxy configuration and removed unnecessary checks for 'direct' mode during initialization.
- Enhanced logging for proxy configuration changes to improve traceability.
* format code
* feat: enhance WebDav and ProxyManager for self-signed certificate support
- Added handling for self-signed certificates in ProxyManager to allow secure connections with custom agents.
- Updated WebDav configuration to include an https.Agent with rejectUnauthorized set to false, facilitating connections to servers with self-signed certificates.
* delete global setting for rejectUnauthorized
* refactor: custom mini app loading logic
Replaces try-catch with an explicit file existence check before reading 'custom-minapps.json'. Ensures the file is created with an empty array if it does not exist, improving clarity and error handling.
* refactor: custom mini app loading logic
Simplifies the loading of custom mini apps by removing the explicit file existence check and handling the read failure case directly. If reading the file fails, an empty array is written and returned.
* fix: improve error handling in file reading for custom mini apps
* fix: add channel property to notifications for backup and assistant messages
* Add notification tip and improve assistant notification logic
Added a tooltip in the notification settings UI to clarify that only messages exceeding 30 seconds will trigger a reminder. Updated i18n files for all supported languages with the new tip. Modified notification logic to only send notifications for assistant responses or errors if the message duration exceeds 30 seconds and the user is not on the home page or the window is not focused.
* Remove duplicate InfoCircleOutlined import
Consolidated the import of InfoCircleOutlined from '@ant-design/icons' to avoid redundancy in GeneralSettings.tsx.
* fix: add isFocused mock and simplify createMockStore
Added a mock for isFocused in the window utility and refactored createMockStore to return the configured store directly. This improves test setup clarity and ensures all necessary window utilities are mocked.
feat(WindowService): enhance mini window behavior and resizing logic
- Introduced dynamic resizing for the mini window based on user adjustments.
- Implemented positioning logic to ensure the mini window appears centered on the cursor's screen.
- Added opacity handling to improve user experience during window state changes.
- Refactored mini window creation to utilize predefined size constants for better maintainability.
* Merge memory into main
* Improvement/memory UI (#7655)
* feat: add auto-dimension detection to memory settings
- Add automatic embedding dimension detection for memory configuration
- Add toggle switch to enable/disable auto-detection (enabled by default)
- Detect dimensions by making test API call to embedding provider
- Show dimension input field only when auto-detection is disabled
- Add loading state and error handling during dimension detection
- Maintain consistency with knowledge base dimension handling
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* ✨ feat: implement unified embedding dimensions for memory service
- Add jaison dependency for robust JSON parsing
- Normalize all embeddings to 1536 dimensions for consistency
- Improve embedding dimension logging
- Update memory processor to use jaison for better error handling
- Handle various JSON response formats in fact extraction
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* feat: refactor MemoriesPage layout with new styled components and improved user management features
---------
Co-authored-by: Claude <noreply@anthropic.com>
* Improvement/memory UI (#7656)
Co-authored-by: Claude <noreply@anthropic.com>
* ✨ feat: add memory icon to sidebar for existing users
- Add migration version 118 to enable memory feature visibility
- Adds 'memory' icon to sidebar visible icons if not already present
- Updates store version to trigger migration for existing users
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix(memory): include last user message ID in processor config
* ✨ feat(memory): enhance memory settings UI and add new translations
* Enhance memory management UI: Added settings, statistics, search, actions, and user management sections to the memory page. Updated translations for multiple languages to include new UI elements. Refactored component structure for improved layout and readability.
* feat: add i18n
* ui: Enhance memory modals and UI
* refactor(memory): replace direct message calls with window.message for error and success notifications
* fix: eslint error
* feat(memory): enhance memory restoration logic and queries
- Updated MemoryService to restore deleted memories instead of inserting new ones if a memory with the same hash exists.
- Added new SQL queries to check for deleted memories and restore them.
- Improved logging for memory restoration and embedding generation.
- Refactored related API service methods to handle updated memory processing logic.
* refactor: update memory configuration to use ApiClient structure
- Refactored memory-related services and components to utilize the new ApiClient structure for embedding and reranking models.
- Updated constructors and method signatures across multiple files to accept embedApiClient and rerankApiClient parameters.
- Enhanced memory settings UI to reflect changes in memory configuration management.
- Improved type definitions for KnowledgeBaseParams and MemoryConfig to align with the new structure.
* ui: improve user interface for adding new users in memory page
- Enhanced the button for adding new users by incorporating an icon and adjusting padding for better alignment.
- Updated the user selection options to ensure consistent alignment of avatars and user names.
- Refactored layout to improve overall user experience and visual consistency.
* refactor(memory): streamline MemoryProcessor usage in ApiService
- Removed the singleton instance of MemoryProcessor and instantiated it directly within the ApiService methods.
- Updated relevant methods to utilize the new instance for searching and processing memories, improving clarity and encapsulation of memory handling logic.
* chore: move knowledge dir
* fix: correct import paths in KnowledgeService.ts
* fix(Memory): memory deduplicate
* fix(Memory): memory llm provider
* fix: ci error
* fix(Memory): update fact extraction prompt to focus on personal information
* feat: Refactor memory fom sidebar to settings page
- Removed MemoryStick icon from Sidebar component.
- Updated navigation to point to the new memory settings page.
- Introduced MemoriesSettingsModal for managing memory configurations.
- Created MemorySettings component for comprehensive memory management.
- Added user management features including adding, editing, and deleting users.
- Implemented pagination and search functionality for memory items.
- Updated sidebar settings to remove memory icon and ensure proper migration.
- Adjusted Redux store settings to reflect changes in sidebar icons.
* feat: redesign memory settings page with improved UI and layout
* fix i18n
* fix: update citation titles to include memory hash and increment version number
* fix: remove unnecessary prop from KnowledgeCitation component
* feat: enhance fact extraction prompt with clearer guidelines and examples
* 🔧 feat: disable global memory by default and improve UI
- Set globalMemoryEnabled default to false for better user experience
- Remove manual localStorage handling to rely on redux-persist
- Add Beta badge to memory settings section
- Improve layout and styling of memory settings UI components
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Simplify external tool completion handling
* Fix whitespace in migrate config
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: suyao <sy20010504@gmail.com>
Co-authored-by: eeee0717 <chentao020717Work@outlook.com>
Co-authored-by: kangfenmao <kangfenmao@qq.com>
Co-authored-by: 自由的世界人 <3196812536@qq.com>
* feat(SelectionService): enhance action window handling for macOS fullscreen mode
- Updated processAction and showActionWindow methods to support fullscreen mode on macOS.
- Added isFullScreen parameter to manage action window visibility and positioning.
- Improved action window positioning logic to ensure it remains within screen boundaries.
- Adjusted IPC channel to pass fullscreen state from the renderer to the service.
- Updated SelectionToolbar to track fullscreen state and pass it to the action processing function.
* chore(deps): update selection-hook to version 1.0.6 in package.json and yarn.lock
* fix(SelectionService): improve macOS fullscreen handling and action window focus
- Added app import to manage dock visibility on macOS.
- Enhanced fullscreen handling logic to ensure the dock icon is restored correctly.
- Updated action window focus behavior to prevent unintended hiding when blurred.
- Refactored SelectionActionApp to streamline auto pinning logic and remove redundant useEffect.
- Cleaned up SelectionToolbar by removing unnecessary window size updates when demo is false.
* refactor(SelectionService): remove commented-out code for clarity
* refactor(SelectionService): streamline macOS handling and improve code clarity
- Added BuiltinMCPServersSection and McpResourcesSection components to display available MCP servers and resources.
- Updated navigation logic to redirect users to the MCP settings upon adding a server.
- Enhanced localization by adding new keys for built-in servers in multiple languages.
- Improved the SettingsPage layout by reordering menu items for better accessibility.
* feat: implement tool call progress handling and status updates
- Update MCP tool response handling to include 'pending' and 'cancelled' statuses.
- Introduce new IPC channel for progress updates.
- Enhance UI components to reflect tool call statuses, including pending and cancelled states.
- Add localization for new status messages in multiple languages.
- Refactor message handling logic to accommodate new tool response types.
* fix: adjust alignment of action tool container in MessageTools component
- Change justify-content from flex-end to flex-start to improve layout consistency.
* feat: enhance tool confirmation handling and update related components
- Introduced a new tool confirmation mechanism in userConfirmation.ts, allowing for individual tool confirmations.
- Updated GeminiAPIClient and OpenAIResponseAPIClient to include tool configuration options.
- Refactored MessageTools component to utilize new confirmation functions and improved styling.
- Enhanced mcp-tools.ts to manage tool invocation and confirmation processes more effectively, ensuring real-time status updates.
* refactor(McpToolChunkMiddleware): enhance tool execution handling and confirmation tracking
- Updated createToolHandlingTransform to manage confirmed tool calls and results more effectively.
- Refactored executeToolCalls and executeToolUseResponses to return both tool results and confirmed tool calls.
- Adjusted buildParamsWithToolResults to utilize confirmed tool calls for building new request messages.
- Improved error handling in messageThunk for tool call status updates, ensuring accurate block ID mapping.
* feat(McpToolChunkMiddleware, ToolUseExtractionMiddleware, mcp-tools, userConfirmation): enhance tool execution and confirmation handling
- Updated McpToolChunkMiddleware to execute tool calls and responses asynchronously, improving performance and response handling.
- Enhanced ToolUseExtractionMiddleware to generate unique tool IDs for better tracking.
- Modified parseToolUse function to accept a starting index for tool extraction.
- Improved user confirmation handling with abort signal support to manage tool action confirmations more effectively.
- Updated SYSTEM_PROMPT to clarify the use of multiple tools per message.
* fix(tagExtraction): update test expectations for tag extraction results
- Adjusted expected length of results from 7 to 9 to reflect changes in tag extraction logic.
- Modified content assertions for specific tag contents to ensure accurate validation of extracted tags.
* refactor(GeminiAPIClient, OpenAIResponseAPIClient): remove unused function calling configurations
- Removed the unused FunctionCallingConfigMode from GeminiAPIClient to streamline the code.
- Eliminated the parallel_tool_calls property from OpenAIResponseAPIClient, simplifying the tool call configuration.
* feat(McpToolChunkMiddleware): enhance LLM response handling and tool call confirmation
- Added notification to UI for new LLM response processing before recursive calls in createToolHandlingTransform.
- Improved tool call confirmation logic in executeToolCalls to match tool IDs more accurately, enhancing response validation.
* refactor(McpToolChunkMiddleware, ToolUseExtractionMiddleware, messageThunk): remove unnecessary console logs
- Eliminated redundant console log statements in McpToolChunkMiddleware, ToolUseExtractionMiddleware, and messageThunk to clean up the code and improve performance.
- Focused on enhancing readability and maintainability by reducing clutter in the logging output.
* refactor(McpToolChunkMiddleware): remove redundant logging statements
- Eliminated unnecessary logging in createToolHandlingTransform to streamline the code and enhance readability.
- Focused on reducing clutter in the logging output while maintaining error handling functionality.
* feat: enhance action button functionality with cancel and confirm options
* refactor(AbortHandlerMiddleware, McpToolChunkMiddleware, ToolUseExtractionMiddleware, messageThunk): improve error handling and code clarity
- Updated AbortHandlerMiddleware to skip abort status checks if an error chunk is received, enhancing error handling logic.
- Replaced console.error with Logger.error in McpToolChunkMiddleware for consistent logging practices.
- Refined ToolUseExtractionMiddleware to improve tool use extraction logic and ensure proper handling of tool_use tags.
- Enhanced messageThunk to include initialPlaceholderBlockId in block ID checks, improving error state management.
* refactor(ToolUseExtractionMiddleware): enhance tool use parsing logic with counter
- Introduced a toolCounter to track the number of tool use responses processed.
- Updated parseToolUse function calls to include the toolCounter, improving the extraction logic and ensuring accurate response handling.
* feat(McpService, IpcChannel, MessageTools): implement tool abort functionality
- Added Mcp_AbortTool channel to handle tool abortion requests.
- Implemented abortTool method in McpService to manage active tool calls and provide logging.
- Updated MessageTools component to include an abort button for ongoing tool calls, enhancing user control.
- Modified API calls to support optional callId for better tracking of tool executions.
- Added localization strings for tool abort messages in multiple languages.
---------
Co-authored-by: Vaayne <liu.vaayne@gmail.com>
* feat(ProtocolClient): show main window on protocol URL handling
* refactor(ProtocolClient): remove main window display logic; update handleProviders to show window on macOS
* fix lint
---------
Co-authored-by: rcadmin <rcadmin@rcadmins-MacBook-Pro-4.local>
* feat: implement local backup functionality
- Added new IPC channels for local backup operations including backup, restore, list, delete, and set directory.
- Enhanced BackupManager with methods for handling local backups and integrated auto-sync capabilities.
- Updated settings to include local backup configurations and integrated UI components for managing local backups.
- Localized new features in English, Japanese, Russian, and Chinese.
* refactor: enhance BackupManager and LocalBackupModals for improved file handling
- Updated BackupManager to specify the type of result array for better type safety.
- Refactored showBackupModal in LocalBackupModals to use useCallback and generate a more descriptive default file name based on device type and timestamp.
* refactor: update localBackupDir path in BackupManager for consistency
- Changed localBackupDir to use the temp directory instead of userData for better alignment with backup storage practices.
* refactor: enforce localBackupDir parameter in BackupManager methods
- Updated BackupManager methods to require localBackupDir as a parameter, removing fallback to a default value for improved clarity and consistency in backup operations.
- Removed the localBackupDir property from the class, streamlining the backup management process.
* fix: update localization strings for improved clarity and consistency
- Revised English, Russian, Chinese, and Traditional Chinese localization strings for better user understanding.
- Adjusted phrases related to backup and restore processes to enhance clarity.
- Standardized terminology across different languages for consistency.
* fix: update Chinese localization strings for consistency and clarity
- Revised export menu strings in zh-cn.json to improve formatting and consistency.
- Removed spaces in phrases for a more streamlined appearance.
* feat(settings): add option to disable hardware acceleration
- Introduced a new setting to allow users to disable hardware acceleration.
- Added corresponding IPC channel and configuration management methods.
- Updated UI components to reflect the new setting and prompt for app restart.
- Localized confirmation messages for hardware acceleration changes in multiple languages.
* udpate migrate
* format code
* feat(i18n): add localized error messages for backup directory selection
- Introduced new error messages for selecting a backup directory in multiple languages, including English, Japanese, Russian, Simplified Chinese, and Traditional Chinese.
- Added checks in the LocalBackupSettings component to ensure the selected directory is not the same as the application data or installation paths, and that it has write permissions.
* format
* update migrate
* refactor(LocalBackup): streamline local backup directory validation and enhance settings UI
- Removed translation dependency in LocalBackupModals for error handling.
- Added comprehensive validation for local backup directory in LocalBackupSettings, including checks for app data path, install path, and write permissions.
- Introduced a clear directory button in the settings UI to reset the local backup directory.
- Updated the auto-sync logic to account for local backup settings.
* refactor(LocalBackupManager): remove redundant error messages for invalid local backup directory
- Eliminated repeated error message calls for invalid local backup directory in the LocalBackupManager component.
- Streamlined the validation logic to enhance code clarity and maintainability.
* feat(SelectionService): enable toolbar visibility on all workspaces
* feat: update selection-hook to v1.0.5
* fix: show toolbar over fullscreen apps
* fix(SelectionService): adjust macOS window type handling for fullscreen apps
- Changed the default width from 1080 to 960 and height from 670 to 600 for the main window.
- Adjusted minimum width and height settings to match the new defaults, enhancing compatibility with various screen sizes.
* feat(settings): add option to disable hardware acceleration
- Introduced a new setting to allow users to disable hardware acceleration.
- Added corresponding IPC channel and configuration management methods.
- Updated UI components to reflect the new setting and prompt for app restart.
- Localized confirmation messages for hardware acceleration changes in multiple languages.
* fix(settings): add delay before relaunching app after disabling hardware acceleration
- Introduced a 500ms delay before the application relaunches to ensure settings are applied correctly.
- This change improves user experience by allowing time for the setting to take effect before the app restarts.
* fix lint
* fix(settings): handle errors when disabling hardware acceleration
- Wrapped the hardware acceleration disabling function in a try-catch block to manage potential errors.
- Added user feedback through an error message if the operation fails, improving overall robustness.
* feat(SelectionAssistant): add macOS support and process trust handling
- Updated the selection assistant to support macOS, including new IPC channels for process trust verification.
- Enhanced the SelectionService to check for accessibility permissions on macOS before starting the service.
- Added user interface elements to guide macOS users in granting necessary permissions.
- Updated localization files to reflect macOS support and provide relevant user instructions.
- Refactored selection-related configurations to accommodate both Windows and macOS environments.
* feat(SelectionService): update toolbar window settings for macOS and Windows
- Set the toolbar window to be hidden in Mission Control and accept the first mouse click on macOS.
- Adjusted visibility settings for the toolbar window to ensure it appears correctly on all workspaces, including full-screen mode.
- Refactored the MacProcessTrustHintModal component to improve layout and styling of buttons in the modal footer.
* feat(SelectionToolbar): enhance styling and layout of selection toolbar components
* feat(SelectionService): enhance toolbar window settings and refactor position calculation
* feat(SelectionToolbar): update button padding and add last button padding for improved layout
* chore(dependencies): update selection-hook to version 1.0.2 and refine build file exclusions in electron-builder.yml
* feat(SelectionService): center action window on screen when not following toolbar
* fix(SelectionService): implement workaround to prevent other windows from bringing the app to front on macOS when action window is closed
* fix(SelectionService): refine macOS workaround to prevent other windows from bringing the app to front when action window is closed; update selection-toolbar logo padding in styles
* fix(SelectionService): implement macOS toolbar reload to clear hover status; optimize display retrieval logic
* fix(SelectionService): update macOS toolbar hover status handling by sending mouseMove event instead of reloading the window
* chore: update selection-hook dependency to version 1.0.3 in package.json and yarn.lock
* fix(SelectionService): improve toolbar visibility handling on macOS and ensure focusability of other windows when hiding the toolbar
---------
Co-authored-by: Teo <cheesen.xu@gmail.com>
* refactor(ProviderSettings): streamline API key management and enhance user experience
- Refactored the handleProvidersProtocolUrl function to simplify API key handling and improve navigation logic.
- Updated the useProviders hook to maintain consistency in provider management.
- Enhanced the ApiKeyList component with improved state handling and user feedback for API key validation.
- Updated localization files to reflect changes in API key management and user interactions.
- Improved styling and layout for better visual consistency across provider settings.
* fix(ProviderSettings): enhance confirmation modal title with provider name
- Updated the confirmation modal title in the ProvidersList component to include the provider's display name, improving clarity for users during API key management.
* update info
* udpate line
* update line
* feat(Protocol): add custom protocol handling for Cherry Studio
- Introduced a new protocol handler for 'cherrystudio' in the Electron app, allowing the application to respond to custom URL schemes.
- Updated the electron-builder configuration to register the 'cherrystudio' protocol.
- Enhanced the main application logic to handle incoming protocol URLs effectively, improving user experience when launching the app via custom links.
* feat(ProviderSettings): enhance provider data handling with optional fields
- Updated the handleProviderAddKey function to accept optional 'name' and 'type' fields for providers, improving flexibility in provider management.
- Adjusted the API key handling logic to utilize these new fields, ensuring a more comprehensive provider configuration.
- Enhanced the URL schema documentation to reflect the changes in provider data structure.
* delete apikeylist
* restore apiService
* support utf8
* feat(Protocol): improve URL handling for macOS and Windows
- Added caching for the URL received when the app is already running on macOS, ensuring it is processed correctly.
- Updated the URL processing logic in handleProvidersProtocolUrl to replace characters for proper decoding.
- Simplified base64 decoding in ProviderSettings to enhance readability and maintainability.
* fix start in macOS
* format code
* fix(ProviderSettings): validate provider data before adding
- Added validation to ensure 'id', 'newApiKey', and 'baseUrl' are present before proceeding with provider addition.
- Implemented error handling to notify users of invalid data and redirect them to the provider settings page.
* feat(Protocol): enhance URL processing for versioning
- Updated the URL handling logic in handleProvidersProtocolUrl to support versioning by extracting the 'v' parameter.
- Added logging for version 1 to facilitate future enhancements in handling different protocol versions.
- Improved the processing of the 'data' parameter for better compatibility with the updated URL schema.
* feat(i18n): add provider API key management translations for Japanese, Russian, and Traditional Chinese
- Introduced new translations for API key management features, including confirmation prompts and error messages related to provider API keys.
- Enhanced user experience by providing localized strings for adding, updating, and validating API keys across multiple languages.
---------
Co-authored-by: rcadmin <rcadmin@rcadmins-MacBook-Pro-4.local>
* feat(AppUpdater): integrate User-Agent generation for autoUpdater requests; add systemInfo utility module
* feat(systemInfo): enhance macOS version handling using macos-release package for improved accuracy; update package.json and yarn.lock to include macos-release and opendal dependencies
* feat(AppUpdater): add support for pre-release versions and enhance feed URL logic
- Introduced a new FeedUrl for the lowest pre-release version.
- Updated AppUpdater to handle early access and upgrade channel settings more effectively.
- Enhanced IPC logging for early access and upgrade channel changes.
- Refactored feed URL setting logic to streamline update processes.
* fix(AppUpdater, ipc): enhance early access and upgrade channel handling
- Added checks to prevent unnecessary cancellation of downloads when early access and upgrade channel settings remain unchanged.
- Updated IPC handlers to ensure early access is enabled when switching upgrade channels if it was previously disabled.
- Improved logging for better traceability of changes in early access and upgrade channel settings.
* delete code
* delete logs
* refactor(AboutSettings): enhance upgrade channel management
- Introduced logic to determine the current upgrade channel based on version.
- Refactored available test channels to use a more structured approach with tooltips and labels.
- Updated the method for retrieving available test channels to improve clarity and maintainability.
* feat(IpcChannel, ConfigManager, AppUpdater): implement test plan and channel management
- Replaced early access features with test plan and test channel options in IpcChannel and ConfigManager.
- Updated IPC handlers to manage test plan and test channel settings, including logging enhancements.
- Refactored AppUpdater to support fetching pre-release versions based on the selected test channel.
- Modified settings and localization files to reflect the new test plan functionality.
- Adjusted AboutSettings and related components to integrate test plan management and improve user experience.
* format code
* refactor(AppUpdater, AboutSettings): improve test channel logic and localization updates
- Refactored the logic in AppUpdater to enhance the handling of test channels, ensuring correct channel retrieval based on the current version.
- Updated the AboutSettings component to include useEffect for managing test channel changes and displaying appropriate warnings.
- Modified localization files for multiple languages to clarify the behavior of test version switching, aligning with the new logic.
* feat(IpcChannel): add Webview_SetSpellCheckEnabled channel and implement spell check handling for webviews
- Introduced a new IPC channel for enabling/disabling spell check in webviews.
- Updated the registerIpc function to handle spell check settings for all webviews.
- Enhanced WebviewContainer to set spell check state on DOM ready event.
- Refactored context menu setup to accommodate webview context menus.
* refactor(ContextMenu): update methods to use Electron.WebContents instead of BrowserWindow
- Changed method signatures to accept Electron.WebContents for better context handling.
- Updated internal calls to utilize the new WebContents reference for toggling dev tools and managing spell check functionality.
* refactor(WebviewContainer): clean up import order and remove unused code
- Adjusted the import order in WebviewContainer.tsx for better readability.
- Removed redundant import of useSettings to streamline the component.
* feat(WebSearch, RAG): support RAG for external websearch
* refactor(WebSearch): handle content limit in service
* refactor: update migrate
* refactor: UI, constants, types
* refactor: migrate contentLimit to cutoffLimit
* refactor: update default rag document count
* refactor: add a helper function for merging references
* refactor: reference filtering
* feat: feedback for websearch phases
* feat: support cutoff by token
* refactor: add a warning and fix the bound of cutoff limit
* fix: not pass `dimensions` if it is not set by the user
* refactor: update i18n and error message
* refactor: improve UI
* fix: cutoff unit style
feat(FileStorage): enhance open dialog to handle large files by returning size without reading content
- Updated the open method to return file size for files larger than 2GB without reading their content.
- Modified return type to include an optional content field and size property for better file handling.
修复恢复备份的时候选择超过 2GB 文件报错的问题
* feat: implement early access feature toggle and update related configurations
- Replace FeedUrl with EnableEarlyAccess in IpcChannel and ConfigManager
- Update AppUpdater to handle early access updates from GitHub
- Modify settings and localization files to reflect early access functionality
- Ensure proper integration in the renderer and preload layers
* fix: enhance error handling in AppUpdater for GitHub release fetching
- Wrap the fetch call in a try-catch block to handle potential errors when retrieving the latest non-draft version from GitHub.
- Log an error message if the fetch fails and return a default feed URL.
* refactor: remove early access feature handling from AppUpdater
- Eliminate the early access feature toggle logic from the AppUpdater class.
- Adjust the feed URL setting to ensure it retrieves the latest non-draft version from GitHub when applicable.
- Clean up unnecessary user-agent header in the fetch request.
* feat(AppUpdater): enhance update feed URL logic and disable differential downloads
- Introduced a new private method to streamline feed URL setting based on early access and IP country.
- Disabled differential downloads for compatibility with GitHub and GitCode.
- Cleaned up the checkForUpdates method for better readability and maintainability.
* refactor(AppUpdater): simplify early access feed URL logic
- Consolidated the feed URL setting logic in setEnableEarlyAccess to a single line for improved readability.
- Removed redundant conditional checks while maintaining functionality for early access updates.
* refactor(AppUpdater): update feed URL structure and remove early access setting
- Modified the return structure of the latest release URL to include the channel type.
- Removed the early access setting from the IPC handler, streamlining the update process.
- Ensured the autoUpdater channel is set based on the latest release information.
* feat(UpgradeChannel): add upgrade channel management and IPC integration
- Introduced a new UpgradeChannel enum to manage different upgrade paths (latest, rc, beta).
- Updated IpcChannel to include App_SetUpgradeChannel for setting the upgrade channel.
- Enhanced ConfigManager to store and retrieve the selected upgrade channel.
- Modified AppUpdater to fetch pre-release versions based on the selected upgrade channel.
- Updated settings UI to allow users to select their preferred upgrade channel with tooltips for guidance.
- Localized new strings for upgrade channel options in multiple languages.
* refactor(AboutSettings): update version type detection and localize upgrade channel tooltips
- Changed version type detection to use the UpgradeChannel enum for better clarity.
- Localized success messages for switching upgrade channels to enhance user experience.
* chore: update version to 1.4.4-beta.1 and refactor upgrade channel handling in AboutSettings
- Updated package version to 1.4.4-beta.1.
- Renamed version type detection function to getVersionChannel for clarity.
- Refactored available version options to getAvailableTestChannels for better organization.
- Added logic to clear update info when switching upgrade channels and when toggling early access settings.
* chore: update version to 1.4.4 in package.json
* fix lint error
* feat(AppUpdater): enhance upgrade channel management and localization
- Added cancellation functionality for ongoing downloads in AppUpdater.
- Introduced a new upgrade channel option for the latest stable version.
- Updated IPC handlers to cancel downloads when changing early access settings or upgrade channels.
- Localized new strings for the latest version option in multiple languages.
- Refactored AboutSettings to include the latest version in the upgrade channel selection.
* refactor(AboutSettings): remove version channel detection logic
- Eliminated the getVersionChannel function to simplify version handling.
- Updated AboutSettings to streamline upgrade channel management.
* feat(AboutSettings): set default upgrade channel to latest
- Updated the AboutSettings component to set the default value of the upgrade channel to the latest option, enhancing user experience in channel selection.
* refactor(AboutSettings): simplify upgrade channel change handling
- Removed individual success messages for different upgrade channels in the handleUpgradeChannelChange function, streamlining the code and improving maintainability.
* refactor: file actions into FileAction service (#7413)
* refactor: file actions into FileAction service
Moved file sorting, deletion, and renaming logic from FilesPage to a new FileAction service for better modularity and reuse. Updated FileList and FilesPage to use the new service functions, and improved the delete button UI in FileList.
* fix: add tag collapse state management for assistants (#7436)
Add tag collapse state management for assistants
Introduces a collapsedTags state to manage the collapsed/expanded state of tag groups in the assistants list. Updates useTags and AssistantsTab to use this state, and adds actions to toggle and initialize tag collapse in the Redux store.
* fix(model): doubao thinking param (#7499)
* feat: Implement occupied directories handling during data copy (#7485)
* feat: Implement occupied directories handling during data copy
- Added `occupiedDirs` constant to manage directories that should not be copied.
- Enhanced the `copyOccupiedDirsInMainProcess` function to copy occupied directories to a new app data path in the main process.
- Updated IPC and preload APIs to support passing occupied directories during the copy operation.
- Modified the DataSettings component to utilize the new copy functionality with occupied directories.
* fix: Improve occupied directories handling during data copy
- Updated the filter logic in the `registerIpc` function to resolve directory paths correctly.
- Modified the `DataSettings` component to pass the correct occupied directories format during the copy operation.
* feat: add appcode (#7507)
Co-authored-by: zhaochenxue <zhaochenxue@bixin.cn>
* fix: non streamoutput sometimes (#7512)
* feat(migrate): add default settings for assistants during migration
- Introduced a new migration step to assign default settings for assistants that lack configuration.
- Default settings include temperature, context count, and other parameters to ensure consistent behavior across the application.
* chore(store): increment version number to 115 for persisted reducer
* Revert "feat: Update API Key Management Interface (#3444)"
This reverts commit 31b3ce1049.
* feat: 一些UI上的优化和重构 (#7479)
- 调整AntdProvider中主题配置,包括颜色、尺寸
- 重构聊天气泡模式的样式
- 重构多选模式的样式
- 添加Selector组件取代ant Select组件
- 重构消息搜索弹窗界面
- 重构知识库搜索弹窗界面
- 优化其他弹框UI
* fix: bailian reranker (#7518)
* feat: implement Python MCP server using existing Pyodide infrastructure (#7506)
* refactor: rename isWindows to isWin for consistency across main/renderer (#7530)
refactor: rename isWindows to isWin for consistency across components
* refactor: data migration modal logic in DataSettings (#7503)
* refactor: data migration modal logic in DataSettings
Moved showProgressModal and startMigration functions inside the useEffect hook and added t as a dependency. This improves encapsulation and ensures translation updates are handled correctly.
* remove trailing whitespace in DataSettings.tsx
Cleaned up a line by removing unnecessary trailing whitespace in the DataSettings component.
* fix: clear search cache on resending (#7510)
* fix: Resolve vllm bad request caused by always sending dimensions in embedding requests (#7525)
fix(知识库): 将dimensions字段改为可选并修复相关逻辑
* feat: Support custom registry address when configuring mcp for npm & fix lint error (#7531)
* feat: Support custom registry address when configuring mcp for npm
* fix: lint
* refactor(GeminiAPIClient): separate model and user message handling to adapt vertex (#7511)
- Introduced a new modelParts array to manage model-related messages separately from user messages.
- Updated the logic to push model messages to currentReqMessages only if they exist, improving clarity and structure.
- Adjusted the return order of messages in buildSdkMessages to ensure history is appended correctly.
- Enhanced McpToolChunkMiddleware to reset tool processing state output when output is present.
* feat: enhance WindowFooter with show/hide functionality for UI elements
- Added state management to control visibility of UI elements in the WindowFooter.
- Implemented a timer to automatically hide elements after a period of inactivity.
- Updated hotkey handlers to reset the visibility timer on user interaction.
- Modified styled component to reflect the new visibility logic.
* fix(SelectionAssistant): opacity slider too slow when sliding in settings page (#7537)
feat: enhance opacity control in Selection Assistant Settings
- Added state management for opacity value in SelectionAssistantSettings component.
- Updated Slider component to use the new opacity state instead of the previous actionWindowOpacity variable.
- Ensured onChangeComplete updates the actionWindowOpacity accordingly.
* feat(AihubmixAPIClient): add getBaseURL method to handle client base URL retrieval
* fix(migrate): restore upgradeChannel setting in migration logic
- Reintroduced the upgradeChannel setting to the state during the migration process, ensuring it defaults to LATEST when applicable.
- Adjusted the migration logic to maintain consistency in settings management.
---------
Co-authored-by: 自由的世界人 <3196812536@qq.com>
Co-authored-by: one <wangan.cs@gmail.com>
Co-authored-by: chenxue <DDU1222@users.noreply.github.com>
Co-authored-by: zhaochenxue <zhaochenxue@bixin.cn>
Co-authored-by: SuYao <sy20010504@gmail.com>
Co-authored-by: kangfenmao <kangfenmao@qq.com>
Co-authored-by: Teo <cheesen.xu@gmail.com>
Co-authored-by: Chen Tao <70054568+eeee0717@users.noreply.github.com>
Co-authored-by: LiuVaayne <10231735+vaayne@users.noreply.github.com>
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Co-authored-by: Wang Jiyuan <59059173+EurFelux@users.noreply.github.com>
Co-authored-by: 陈天寒 <silenceboychen@gmail.com>
Co-authored-by: fullex <0xfullex@gmail.com>
* feat: Implement occupied directories handling during data copy
- Added `occupiedDirs` constant to manage directories that should not be copied.
- Enhanced the `copyOccupiedDirsInMainProcess` function to copy occupied directories to a new app data path in the main process.
- Updated IPC and preload APIs to support passing occupied directories during the copy operation.
- Modified the DataSettings component to utilize the new copy functionality with occupied directories.
* fix: Improve occupied directories handling during data copy
- Updated the filter logic in the `registerIpc` function to resolve directory paths correctly.
- Modified the `DataSettings` component to pass the correct occupied directories format during the copy operation.
* feat(ContextMenu): add spell check and dictionary suggestions to context menu
- Implemented spell check functionality in the context menu with options to learn spelling and view dictionary suggestions.
- Updated WindowService to enable spellcheck in the webview.
- Enabled spell check in Inputbar and MessageEditor components.
* feat(SpellCheck): implement spell check language settings and initialization
- Added support for configuring spell check languages based on user-selected language.
- Introduced IPC channel for setting spell check languages.
- Updated settings to manage spell check enablement and languages.
- Enhanced UI to allow users to toggle spell check functionality and select languages.
- Default spell check languages are set based on the current UI language if none are specified.
* refactor(SpellCheck): enhance spell check language mapping and UI settings
- Updated spell check language mapping to default to English for unsupported languages.
- Improved UI logic to only update spell check languages when enabled and no manual selections are made.
- Added a new selection component for users to choose from commonly supported spell check languages.
* feat(SpellCheck): integrate spell check functionality into Inputbar and MessageEditor
- Added enableSpellCheck setting to control spell check functionality in both Inputbar and MessageEditor components.
- Updated spellCheck prop to utilize the new setting, enhancing user experience by allowing customization of spell check behavior.
* refactor(SpellCheck): move spell check initialization to WindowService
- Removed spell check language initialization from index.ts and integrated it into WindowService.
- Added setupSpellCheck method to configure spell check languages based on user settings.
- Enhanced error handling for spell check language setup.
* feat(SpellCheck): add enable spell check functionality and IPC channel
- Introduced a new IPC channel for enabling/disabling spell check functionality.
- Updated the preload API to include a method for setting spell check enablement.
- Modified the main IPC handler to manage spell check settings based on user input.
- Simplified spell check language handling in the settings component by directly invoking the new API method.
* refactor(SpellCheck): remove spellcheck option from WindowService configuration
- Removed the spellcheck property from the WindowService configuration object.
- This change streamlines the configuration setup as spell check functionality is now managed through IPC channels.
* feat(i18n): add spell check translations for Japanese, Russian, and Traditional Chinese
- Added new translations for spell check functionality in ja-jp, ru-ru, and zh-tw locale files.
- Included descriptions and language selection options for spell check settings to enhance user experience.
* feat(migrate): add spell check configuration migration
- Implemented migration for spell check settings, disabling spell check and clearing selected languages in the new configuration.
- Enhanced error handling to ensure state consistency during migration process.
* fix(migrate): ensure spell check settings are updated safely
- Added a check to ensure state.settings exists before modifying spell check settings during migration.
- Removed redundant error handling that returned the state unmodified in case of an error.
* fix(WindowService): set default values for spell check configuration and update related UI texts
* refactor(Inputbar, MessageEditor): remove contextMenu attribute and add context menu handling in MessageEditor
---------
Co-authored-by: beyondkmp <beyondkmkp@gmail.com>
* fix: update localization files for data migration warnings and path validation messages
* fix: update app data path validation and localization messages for installation path consistency
* fix: enhance app data flushing process by adding connection closure and delay in DataSettings component
* fix: move initAppDataDir function inline and remove export from utils/file.ts
* fix some bugs
* fix shouldcopy error
* fix: handle appDataPath initialization and update logic in file.ts; update defaultChecked in DataSettings component
* fix: improve appDataPath handling and migration logic in file.ts
* fix: add error message for selecting the same app data path in DataSettings component and update localization files
* fix: ensure migration confirmation modal is shown correctly in DataSettings component
* feat: add new IPC channel for retrieving data path from arguments and update related components for migration handling
* fix: update app data path validation to check for prefix match in DataSettings component
* refactor: simplify data migration logic in DataSettings component by removing unnecessary flag
* fix: update initAppDataDir invocation to check for app packaging status in bootstrap.ts