* refactor(IpcChannel): rename theme change event and streamline theme handling
- Updated the IpcChannel enum to rename 'theme:change' to 'theme:updated' for clarity.
- Refactored theme handling in ipc.ts to utilize a new ThemeService, simplifying theme updates and event broadcasting.
- Adjusted various components to consistently use the updated theme variable naming convention.
* refactor(Theme): standardize theme handling across components
- Updated theme retrieval to use 'actualTheme' instead of 'theme' for consistency.
- Changed default theme setting from 'auto' to 'system' in ConfigManager and related components.
- Adjusted theme handling in various components to reflect the new naming convention and ensure proper theme application.
* fix(Theme): improve theme handling and migration logic
- Added a console log for debugging theme transitions in ThemeProvider.
- Updated ThemeService to ensure theme is set correctly when changed.
- Incremented version number in store configuration to reflect changes.
- Enhanced migration logic to convert 'auto' theme setting to 'system' for better consistency.
* feat(Theme): add getTheme IPC channel and improve theme management
- Introduced a new IPC channel 'App_GetTheme' to retrieve the current theme.
- Updated ThemeService to include a method for getting the current theme.
- Refactored theme initialization in WindowService to ensure proper theme setup.
- Enhanced theme handling in various components to utilize the new theme retrieval method.
* fix(ThemeService): improve theme initialization and retrieval logic
- Set default theme to 'system' and updated theme initialization to handle legacy versions.
- Enhanced getTheme method to return both the current theme and the actual theme based on nativeTheme settings.
- Removed redundant initTheme method from ThemeService and ensured themeService is imported in WindowService for proper initialization.
- Updated ThemeProvider to handle the new structure of the theme retrieval response.
* refactor(Settings): remove theme management from settings
- Eliminated theme-related state and actions from the settings slice.
- Updated useSettings hook to remove theme handling functionality.
- Cleaned up imports by removing unused ThemeMode type.
* refactor(Theme): update theme retrieval in GeneralSettings and HomeWindow
- Restored theme retrieval in GeneralSettings and HomeWindow components.
- Adjusted imports to ensure proper theme management.
- Updated theme condition checks to utilize the ThemeMode enumeration for consistency.
* refactor(Theme): update theme terminology and retrieval in Sidebar and DisplaySettings
- Changed theme label from 'auto' to 'system' in multiple localization files for consistency.
- Updated Sidebar component to reflect the new theme terminology.
- Adjusted DisplaySettings to display the updated theme label.
* refactor(ThemeProvider): initialize theme state from API response
* refactor(ThemeProvider): reset theme state to default values and streamline initialization logic
* refactor(Theme): enhance theme management by incorporating 'system' mode and updating state handling
- Updated ThemeService to include 'system' as a valid theme option.
- Refactored ThemeProvider to utilize useSettings for theme state management and ensure proper initialization.
- Adjusted useSettings to include theme setting functionality.
- Modified settings slice to manage theme state effectively.
* refactor(WindowService, ThemeProvider, Messages, HomeWindow): streamline imports and clean up unused variables
- Removed duplicate import of ThemeService in WindowService.
- Adjusted import order in ThemeProvider for clarity.
- Simplified useSettings destructuring in Messages component.
- Cleaned up unused ThemeMode import in HomeWindow.
* refactor(Theme): standardize theme usage across components by replacing 'actualTheme' with 'theme'
- Updated components to consistently use 'theme' instead of 'actualTheme' for better clarity and maintainability.
- Adjusted ThemeProvider to reflect changes in theme state management.
- Ensured all relevant components are aligned with the new theme structure.
* refactor(Theme): remove unused theme retrieval functionality
- Eliminated the App_GetTheme channel and associated methods from ThemeService and IPC handling.
- Updated components to use the new theme structure, replacing 'actualTheme' with 'settedTheme' for consistency.
- Ensured all theme-related functionalities are streamlined and aligned with the latest changes.
* refactor(Theme): update theme variable usage in ChatFlowHistory and GeneralSettings
- Replaced 'theme' with 'settedTheme' in ChatFlowHistory for consistency with recent theme structure changes.
- Simplified theme destructuring in GeneralSettings by removing unused 'themeMode' variable.
- Ensured alignment with the latest theme management updates across components.
* refactor(Theme): update theme variable in GeneralSettings component
- Replaced 'themeMode' with 'theme' in GeneralSettings for consistency with recent theme structure changes.
- Ensured alignment with the latest theme management updates across components.
---------
Co-authored-by: beyondkmp <beyondkmkp@gmail.com>
- Introduced a new setting to remember the last adjusted size of the action window.
- Updated ConfigManager, SelectionService, and IPC channels to handle the new feature.
- Enhanced UI components to allow users to toggle the "Remember Size" option.
- Localized the new setting in multiple languages.
* feat: add filter mode and list functionality to selection assistant
- Introduced new filter mode options (default, whitelist, blacklist) for the selection assistant.
- Added methods to set and get filter mode and filter list in ConfigManager.
- Enhanced SelectionService to manage filter mode and list, affecting text selection processing.
- Updated UI components to allow users to configure filter settings.
- Localized new filter settings in multiple languages.
* feat: support Shift+Click & enhance Ctrl key method
* fix: remove comments
feat: add filter mode and list functionality to selection assistant
- Introduced new filter mode options (default, whitelist, blacklist) for the selection assistant.
- Added methods to set and get filter mode and filter list in ConfigManager.
- Enhanced SelectionService to manage filter mode and list, affecting text selection processing.
- Updated UI components to allow users to configure filter settings.
- Localized new filter settings in multiple languages.
* refactor: TrayService
- Removed the App_RestartTray channel from IpcChannel and its usage in ipc.ts and preload/index.ts.
- Updated TrayService to handle configuration changes without the need for a restart.
- Enhanced ConfigManager to notify subscribers on language and quick assistant settings changes.
- Adjusted QuickAssistantSettings to close the mini window based on the quick assistant's enable state.
* refactor: enhance configuration management
- Updated ConfigManager to consolidate setting and notification logic into a single method, setAndNotify.
- Modified IPC handler to accept an additional parameter for notification control.
- Adjusted QuickAssistantSettings to utilize the new parameter for enabling notifications during configuration changes.
- Updated the @google/genai dependency in package.json and yarn.lock to version 1.0.1.
- Removed the GeminiService and its related references from the codebase to streamline functionality.
- Introduced a new CacheService for managing cached data effectively.
* feat(selection): implement selection assistant with toolbar and action management
- Added selection assistant functionality including a toolbar for actions.
- Introduced new settings for enabling/disabling the selection assistant and configuring its behavior.
- Implemented action items for built-in functionalities like translate, explain, and copy.
- Integrated selection service to manage selection events and actions.
- Updated localization files to support new selection assistant features in multiple languages.
- Added new components for action management and user interaction within the selection assistant.
* chore: update selection-hook to version 0.9.10 and exclude prebuilds from packaging
* fix: toolbar hiding
* feat: enhance error handling and service management in main index
* fix: improve logical coordinate handling in SelectionService
* fix: update URL loading and coordinate conversion in SelectionService
* fix: replace console.error with Logger for error handling in SelectionService
* refactor(SelectionService): enhance preloaded action window management
* chore(electron-builder): add filter for .node build files in configuration
* fix: toolbar position calculating for multi monitor
* fix: update selection assistant configuration and improve error handling in SelectionService
* fix: SelectionActionUserModal layout
* feat: add hints for custom search URL in multiple languages
* fix: update calculateToolbarPosition to ensure integer return type and round position values
* feat: add action window opacity setting and update related UI components
refactor: SelectionActionsList
* chore: enhance tooltip for trigger mode settings
* fix: console.log
* chore: update selection-hook to version 0.9.12
* fix: integrate language settings into selection components
* fix: filter out default assistant from user predefined assistants in selection modal
* chore: update selection-hook package version to 0.9.13
* chore: update selection-hook package version to 0.9.14
- Updated release notes to include new DMXAPI service and fixed knowledge base search results issue.
- Enhanced drag-and-drop functionality for message selection and resolved memory exceptions in translation replies.
- Added styling adjustments for context menu and improved layout in CodeBlockView and MessageGroup components.
* fix: enhance ExportService to support nested bold and italic formatting
- Added tracking for nested bold and italic tags in the ExportService.
- Updated text rendering logic to apply bold and italic styles based on the nesting level of the tags.
* fix: remove unused citation variable in messageToMarkdown function
* feat: add Cherry Cloud provider with associated assets and localization support
* feat: add Cherry Cloud provider support with OAuth integration and IPC handling
* fix: add success message for Cherry Cloud API key update
* feat: enhance provider navigation with dynamic ID in URL and update selected provider state
* feat: implement Cherry Cloud server synchronization with token management and error handling
* feat: add CherryCloud provider configuration and token management
* feat: integrate TokenFlux provider support and update related configurations
fix: update redux-persist version to 104
refactor: remove redundant tokenflux provider model assignment in migration
fix: update migration to add TokenFlux provider instead of CherryCloud
* feat: enhance TokenFlux server synchronization with API key authentication support
* feat: update TokenFlux provider assets and add new models
* feat: update migration logic for version 106 to add TokenFlux provider
* feat: disable TokenFlux provider by default in INITIAL_PROVIDERS
* feat: add TokenFlux billing URLs to providerCharge and providerBills functions
- Updated the environment variable initialization to use a consistent type.
- Added logic to set the PATH variable correctly, ensuring it falls back to existing values if necessary.
- Added logic to remove proxy environment variables when the command ends with 'bun'.
- Introduced a new private method `removeProxyEnv` to clean up the environment variables before starting the server.
* fix: enhance backup and restore functionality with skip option
- Updated `restore` and `restoreFromWebdav` methods in `BackupManager` to include a `skipBackupFile` parameter, allowing users to skip restoring the Data directory if desired.
- Modified corresponding IPC calls in `preload` and `BackupService` to support the new parameter.
- Added success message translations in multiple languages for improved user feedback.
* fix: integrate skipBackupFile option in RestorePopup for enhanced restore functionality
* refactor: remove skipBackupFile parameter from restore methods for simplified usage
- Updated `restore` and `restoreFromWebdav` methods in `BackupManager`, `BackupService`, and `NutstoreService` to remove the `skipBackupFile` parameter, streamlining the restore process.
- Adjusted corresponding IPC calls in `preload` and `RestorePopup` to reflect the changes, ensuring consistent functionality across the application.
- Modified the uploadFile method in GeminiService to include baseURL in the parameters.
- Updated the corresponding calls in the preload and renderer layers to pass the baseURL along with the apiKey.
- Added a check for user cancellation in the file save dialog, rejecting the promise if canceled.
- Enhanced error handling to reject the promise with a detailed error message instead of returning null.
- Removed the electron-notification-state package from dependencies as it is no longer used.
- Updated NotificationService to eliminate Do Not Disturb handling.
- Changed default notification settings in the Redux store to false for assistant messages, backups, and knowledge embedding.
- Replaced singleton pattern with direct instantiation of McpService for cleaner code.
- Updated IPC handlers to use the new mcpService instance directly.
- Removed unnecessary logging in Inputbar and MCPToolsButton components to streamline functionality.
- Cleaned up error handling in McpSettings to improve user experience.
* WIP
* feat: integrate notification system using Electron's Notification API
- Replaced the previous notification implementation with Electron's Notification API for better integration.
- Updated notification types and structures to support new features.
- Added translations for notification messages in multiple languages.
- Cleaned up unused dependencies related to notifications.
* refactor: remove unused node-notifier dependency from Electron config
* clean: remove node-notifier from asarUnpack in Electron config
* fix: update notification type in preload script to align with new structure
* feat: Integrate NotificationService for user notifications across various components
- Implemented NotificationService in useUpdateHandler to notify users of available updates.
- Enhanced KnowledgeQueue to send success and error notifications during item processing.
- Updated BackupService to notify users upon successful restoration and backup completion.
- Added error notifications in message handling to improve user feedback on assistant responses.
This update improves user experience by providing timely notifications for important actions and events.
* feat: Refactor notification handling and integrate new notification settings
- Moved SYSTEM_MODELS to a new file for better organization.
- Enhanced notification handling across various components, including BackupService and KnowledgeQueue, to include a source attribute for better context.
- Introduced notification settings in the GeneralSettings component, allowing users to toggle notifications for assistant messages, backups, and knowledge embedding.
- Updated the Redux store to manage notification settings and added migration logic for the new settings structure.
- Improved user feedback by ensuring notifications are sent based on user preferences.
This update enhances the user experience by providing customizable notification options and clearer context for notifications.
* feat: Add 'update' source to NotificationSource type for enhanced notification context
* feat: Integrate electron-notification-state for improved notification handling
- Added electron-notification-state package to manage Do Not Disturb settings.
- Updated NotificationService to respect user DND preferences when sending notifications.
- Adjusted notification settings in various components (BackupService, KnowledgeQueue, useUpdateHandler) to ensure notifications are sent based on user preferences.
- Enhanced user feedback by allowing notifications to be silenced based on DND status.
* feat: Add notification icon to Electron notifications
* fix: import SYSTEM_MODELS in EditModelsPopup for improved model handling
* feat(i18n): add knowledge base notifications in multiple languages
- Added success and error messages for knowledge base operations in English, Japanese, Russian, Chinese (Simplified and Traditional).
- Updated the KnowledgeQueue to utilize the new notification messages for better user feedback.
* feat(notification): introduce NotificationProvider and integrate into App component
- Added NotificationProvider to manage notifications within the application.
- Updated App component to include NotificationProvider, enhancing user feedback through notifications.
- Refactored NotificationQueue to support multiple listeners for notification handling.
* feat: add MCP servers via JSON quickly
* refactor(MCPSettings): Extract JSON parsing logic into a helper function
* feat: json linter for EditMcpJsonPopup
* feat(mcp): confirm the MCP server status as connection
* refactor(AddMcpServerModal): 移除冗余注释并修复加载状态
* feat(MCPSettings): Add support for SSE and streamableHttp formats and optimize server configuration parsing
- Add server type validation to ensure the type is stdio, SSE, or streamableHttp
- Optimize JSON parsing logic to ensure server configuration completeness and validity
- Update example text to provide more detailed configuration examples
* fix(MCPSettings): fix AddMcpServerModal default baseUrl login
移除serverToAdd.url作为baseUrl的备选值,确保baseUrl仅使用serverToAdd.baseUrl的值
* feat(MCPSettings): support CodeEditor in AddMcpServerModal
* fix: Remove unnecessary type checks for JSON parsing login
* fix(MCPSettings): fix compatibility issues with the URL field when parsing server data
* refactor: remove unnessary cdoe
* chore: Add a server dropdown button to integrate new features in UI
- Integrate the two buttons for adding a server into a single dropdown menu to enhance user experience and simplify the interface
* chroe: modify the Dropdown items' name of addServer
* refactor(i18n): unify the translation for the MCP server import function
---------
Co-authored-by: one <wangan.cs@gmail.com>
- Changed default value for `getTrayOnClose` to true in `ConfigManager`.
- Removed fullscreen toggle logic from `WindowService`.
- Adjusted styles in `OpenAIAlert` for better spacing.
- Reorganized imports in `Navbar` and updated component paths in `AssistantsTab` and `SettingsTab`.
- Added new components `AssistantItem` and `OpenAISettingsGroup` for better modularity.
- Enhanced `SettingGroup` styles for improved UI consistency.
- Updated `QuickPhraseSettings` to utilize theme context.
- Minor fixes and refactoring across various services and components.
* feat: add resolveFilePath functionality to file management
* Added new IPC channel for resolving file paths.
* Implemented resolveFilePath method in FileStorage service.
* Updated FileManager to utilize the new resolveFilePath method.
* Enhanced preload API to expose resolveFilePath to the renderer.
* Updated KnowledgeService to ensure file paths are correctly resolved in knowledge bases.
* refactor: remove unused path import from preload index
* Removed the unused 'resolve' import to clean up the codebase.
* Improved code readability by eliminating unnecessary dependencies.
---------
Co-authored-by: beyondkmp <beyondkmkp@gmail.com>
* Refactored MCPService to implement a singleton pattern for better instance management.
* Updated IPC registration to utilize the new getMcpInstance method for handling MCP-related requests.
* Removed redundant IPC handlers from the main index file and centralized them in the ipc module.
* Added background throttling option in WindowService configuration to enhance performance.
* Introduced delays in MCPToolsButton to optimize resource and prompt fetching after initial load.
* Added 'electron-store' to the Vite configuration for Electron.
* Imported configuration from '@main/config' in the main index file.
* Changed default return value for getTrayOnClose method in ConfigManager to false
* Added 'electron-store' to the Vite configuration for Electron.
* Imported configuration from '@main/config' in the main index file.
* Changed default return value for getTrayOnClose method in ConfigManager to false
* refactor: update zoom handling in IPC and settings
* renamed zoom-related IPC channels for clarity
* refactored zoom handling logic in ipc.ts and ShortcutService
* removed unused zoom factor state management from settings
* updated DisplaySettings component to manage zoom via buttons
* localized zoom settings in multiple languages
* refactor: remove unused zoom factor state from settings
* eliminated the zoomFactor state from initialSettings as part of the zoom handling refactor
* refactor: improve zoom handling in DisplaySettings component
* initialized current zoom value on component mount
* refactored resize event listener to prevent memory leaks
* added cleanup for resize event listener to enhance performance
* refactor: enhance resize event handling in DisplaySettings component
* added logic to track previous window width to prevent unnecessary updates during resize events
* improved comments for clarity on zoom handling and resize event listener functionality
* refactor: streamline zoom handling across IPC and ShortcutService
* updated handleZoomFactor function to accept an array of BrowserWindows for batch processing
* simplified zoom factor adjustments in IPC and shortcut handlers
* removed unnecessary window destruction checks for improved performance
* implemented a new inspect menu item in the context menu that toggles developer tools
* added localization for the inspect option in English, Japanese, Russian, and Chinese (both simplified and traditional)
* feat: 新增文件写入功能,支持通过 ID 写入文件并加载自定义小应用配置。
* feat(i18n): 添加自定义小程序配置的多语言支持,包括英文、简体中文和繁体中文。
* fix(minapps): 使用 await 加载自定义小应用并合并到默认应用中,同时添加日志输出以便调试
* fix(minapps): 在开发环境中添加条件日志输出,以便调试加载的默认小应用。
* refactor(miniappSettings): 移动自定义小应用编辑区域的位置,优化界面布局。
* refactor(miniappSettings): 修改自定义小应用保存逻辑,优化应用列表重新加载方式。
* feat(i18n): 修复在merge过程中丢失的语言设置。
* fix(bug_risk): Consider adding stricter validation for the JSON config on load.
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
* feat(miniapp): 添加自定义小应用功能,优化应用列表展示,支持通过模态框添加新应用。
* feat(App): enhance custom app modal to support logo upload via URL.
* feat(miniapp): add application logo support and update mini app list reloading logic.
* feat(i18n): update mini app custom settings translations for multiple languages.
* feat(miniapp): add updateDefaultMinApps function and refactor mini app list reloading logic.
* feat(miniapp): add removeCustom functionality to handle custom mini app deletion
* feat(miniapp): add duplicate ID check when adding custom mini apps.
* feat(i18n): 重构侧边栏相关翻译为结构化格式,增加删除自定义应用的翻译支持。
* feat(miniapp): 优化删除自定义应用的逻辑,使用条件渲染简化代码结构。
* feat(miniapp): 添加自定义小应用内容的空值处理,确保 JSON 格式有效。
* feat(i18n): 更新默认语言为英语,并移除多个语言文件中的默认代理字段。
* feat(i18n): 为多个语言文件添加自定义小应用配置编辑描述翻译。
* feat(i18n): add success and error messages for deleting custom mini apps in multiple language files.
* feat(i18n): update success and error messages for custom mini app operations and add placeholder text in multiple language files.
* feat(i18n): 为多个语言文件添加重复ID和冲突ID的错误信息翻译,并在自定义小应用设置中实现相关检查逻辑。
* feat(miniapp): 在添加自定义小应用时,增加对默认最小应用ID的重复检查逻辑。
* feat(i18n): update edit description for custom mini app configuration in Traditional Chinese locale
* fix(miniapp): enhance error messages for duplicate and conflicting IDs in custom mini app configuration
---------
Co-authored-by: George Zhao <georgezhao@SKJLAB>
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Co-authored-by: suyao <sy20010504@gmail.com>