* 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>
* feat: add zoom factor setting and localization support
- Introduced App_SetZoomFactor IPC channel for managing zoom levels.
- Implemented zoom factor functionality in the main IPC handler.
- Added setZoomFactor method in the settings store and corresponding UI in DisplaySettings.
- Included localization for zoom settings in English and Chinese.
* add i18n
* recover file
* delete code
* fix: update zoom factor handling to apply to all windows
- Modified the IPC handler for App_SetZoomFactor to set the zoom factor for all non-destroyed windows instead of just the main window.
* add getzoomfactor api
* feat: synchronize zoom factor with Redux state on app initialization
- Added functionality to fetch the zoom factor from the main process and dispatch it to the Redux store during app initialization.
- Removed redundant zoom factor fetching logic from DisplaySettings component.
* feat: enhance zoom factor management with IPC updates
- Added a new IPC channel for zoom factor updates to notify all renderer processes.
- Introduced a constant for predefined zoom levels to streamline zoom adjustments.
- Updated the zoom handling logic to utilize the new zoom levels and ensure smooth transitions.
- Implemented a listener in the preload script to handle zoom factor updates from the main process.
- Refactored the app initialization to include real-time updates for the zoom factor in the Redux state.
* feat: integrate zoom options into DisplaySettings component
- Added ZOOM_OPTIONS constant to generate structured options for Ant Design Select from predefined zoom levels.
- Refactored DisplaySettings to utilize ZOOM_OPTIONS, removing redundant zoom option definitions.
- Simplified the zoom factor fetching logic in useAppInit for better readability and efficiency.
* refactor: streamline zoom factor handling and remove unused IPC channel
- Removed the App_GetZoomFactor IPC channel as it was no longer needed.
- Updated zoom factor handling to directly set and notify the main window of changes.
- Simplified the logic for setting the zoom factor in the WindowService and ShortcutService.
- Adjusted the useAppInit hook to utilize the new zoom factor management approach.
* refactor: improve zoom factor handling in WindowService and useAppInit hook
- Simplified the zoom factor setting in WindowService by directly using the config manager.
- Updated useAppInit to ensure the zoom factor is set correctly on initialization, enhancing responsiveness to changes.