* fix: bubble-style unnecessary menu background
* fix: show divider in message only in plain mode
* fix: bubble user message style in dark mode
* fix: action button hover style
* refactor: The rendering position of the message menbar is determined by the settings
* fix: bubble style assistant message token usage left align
* fix: bubble style
* fix: bubble style
* fix: text color and bubble edit
* fix: bubble editing
* fix: bubble editing
* fix: bubble editor
* fix: editor width
* fix: remove redundant tokens usage
* fix: not unified token font size and color
* fix: unexpected display behavior in plain mode
* fix: info style
* fix: bubble style
* fix: Style fixes for better compatibility
* fix: bubble style
* fix: Move the menu of the last message to the outside
* fix: bubble style
* fix: why this happened?
* feat: add description for messages divider in settings
* fix: 谁想出来的上下margin不一样还是神秘数字
* fix: new context style
* feat(TranslatePage): add user-selectable source language with auto-detection
* fix: update detected language label for consistency across translations
---------
Co-authored-by: Pleasurecruise <3196812536@qq.com>
* feat: enhance unresponsive renderer handling and crash reporting
* Added support for collecting JavaScript call stacks from unresponsive renderers.
* Updated the Document Policy in the HTML to include JS call stacks in crash reports.
* Removed legacy unresponsive logging from WindowService.
* feat: improve unresponsive renderer handling and update crash reporting
* Added session web request handling to include Document-Policy for JS call stacks in crash reports.
* Removed legacy Document-Policy meta tag from HTML.
* Enhanced logging for unresponsive renderer call stacks.
* fix: remove unused session import in index.ts
---------
Co-authored-by: beyondkmp <beyondkmkp@gmail.com>
fix: improve dropdown menu styling and placement in MessageMenubar component
- Set a maximum height and overflow behavior for the dropdown menu to enhance usability.
- Changed the dropdown placement from "topRight" to "top" for better alignment with the UI.
* fix(Markdown): eliminate hydration error from image `<div>` nested in `<p>`
Signed-off-by: Chan Lee <Leetimemp@gmail.com>
* feat: add support for reading local files in binary format
Signed-off-by: Chan Lee <Leetimemp@gmail.com>
* refactor(ImageViewer): Consolidate image rendering for unified display and context menu
Signed-off-by: Chan Lee <Leetimemp@gmail.com>
---------
Signed-off-by: Chan Lee <Leetimemp@gmail.com>
* feat: add update channel functionality for beta testing
- Introduced a new IPC channel for setting the update channel.
- Implemented logic in AppUpdater to handle update channel changes.
- Updated settings to include a beta testing toggle, allowing users to switch between stable and beta update channels.
- Enhanced the settings UI to reflect the new beta testing option.
* add i18n
* update i18n
* update i18n
* refactor: rename update channel to feed URL and update related functionality
- Changed IPC channel from App_SetUpdateChannel to App_SetFeedUrl.
- Updated AppUpdater to set feed URL instead of update channel.
- Modified preload and settings to reflect the new feed URL functionality.
- Added constants for production and early access feed URLs.
* refactor: remove setAutoUpdate method from API
- Eliminated the setAutoUpdate method from the API object in preload index, streamlining the IPC communication interface.
* refactor: update early access feed URL and improve tooltip descriptions
- Changed EARLY_ACCESS_FEED_URL to point to the latest GitHub release.
- Simplified the setEarlyAccess function to directly set the feed URL.
- Added tooltips for early access settings in multiple languages to inform users about potential instability and the need for data backup.
* feat(migrate): add early access setting to state configuration
- Introduced a new state setting 'earlyAccess' and initialized it to false in the migration configuration.
* fix(i18n): update early access tooltip translations for clarity
- Revised the tooltip descriptions for the early access feature in English, Simplified Chinese, and Traditional Chinese to enhance clarity and ensure consistency in messaging regarding potential instability and the importance of data backup.
* feat: introduce FeedUrl enum for centralized feed URL management
- Added a new enum `FeedUrl` in the constants file to define production and early access feed URLs.
- Updated relevant IPC handlers and services to utilize the `FeedUrl` enum for type safety and consistency.
- Refactored the configuration manager to include methods for getting and setting the feed URL using the new enum.
* feat(settings): initialize early access and auto-update settings in AboutSettings component
- Added initialization for early access and auto-check update settings in the AboutSettings component to enhance user configuration options.
---------
Co-authored-by: beyondkmp <beyondkmkp@gmail.com>
fix: enhance OpenAI stream handling and error management
- Updated the `openAIChunkToTextDelta` function to include error handling with a try-catch block, improving robustness during stream processing.
- Refined the `readableStreamAsyncIterable` function to ensure proper handling of stream completion and errors, including a return method for cleanup.
- Adjusted type definitions for better clarity and consistency in the handling of async iterables.
This commit introduces support for displaying and downloading
inline base64-encoded images (specifically PNG and JPEG formats)
within Markdown content.
Key changes:
- Modified 'urlTransform' in the Markdown component to allow 'data:image/png'
and 'data:image/jpeg' URLs, enabling their rendering.
- Updated the 'download' utility to handle 'data:' URLs,
allowing users to save these inline images.
Signed-off-by: Chan Lee <Leetimemp@gmail.com>
This update modifies the OpenAIProvider to yield tool_calls only if they exist and have a length greater than zero, improving the handling of delta content. Additionally, a minor cleanup was performed by removing an unnecessary blank line in the code.
This commit updates the AssistantsTab component to only display group titles for tagged assistants, excluding the 'untagged' category. This change enhances the UI by reducing clutter and improving clarity in the display of assistant groups.
* chore: update OpenAI package to version 5.1.0 and adjust related patches
- Updated OpenAI dependency from version 4.96.0 to 5.1.0 in package.json and yarn.lock.
- Removed obsolete patch for OpenAI 4.96.0 and added new patch for OpenAI 5.1.0.
- Adjusted types for image handling in OpenAIResponseProvider to use Uploadable instead of FileLike.
- Minor code refactoring for better clarity and maintainability.
* refactor(OpenAIResponseProvider): remove logging for image generation process
This commit restructures the localization strings for Notion settings in the Japanese language file, moving them from a nested structure to a more accessible format. This change improves clarity and maintainability of the localization data.
* Add support for TokenFlux image generation service
This commit integrates TokenFlux as a new painting provider with dynamic
form generation based on model schemas, real-time generation polling,
and full painting history management.
Key features:
- Dynamic form rendering from JSON schema input parameters
- Model selection with pricing display
- Real-time generation status polling
- Integration with existing painting workflow and file management
- Provider-specific painting state management
The implementation follows existing patterns from other painting pages
while adding TokenFlux-specific functionality like schema-based form
generation and asynchronous polling for generation results.
* Add image upload support and comparison view to TokenFlux
Implements file upload handling for image parameters with base64
conversion, random seed generation, and side-by-side comparison
layout when input images are present.
* Refactor TokenFlux to use service class and components
Extract form rendering logic to DynamicFormRender component and API
logic to TokenFluxService class. Simplifies the main component by
removing duplicate code for model fetching, image generation polling,
and form field rendering.
* Refactor TokenFlux to fix state management and polling
- Change painting field from modelId to model for consistency
- Fix updatePaintingState to use functional state updates
- Add automatic polling for in-progress generations on mount
- Group models by provider in the selection dropdown
- Separate prompt from other input params in form data handling
- Improve error handling in the paintings store
* Auto-select first model when models are loaded
* Add image generation UI localization strings
Add translation keys for model selection, input parameters, image
labels, pricing display, and form validation across all supported
locales (en-us, ja-jp, ru-ru, zh-cn, zh-tw). Update TokenFluxPage
component to use localized strings instead of hardcoded English text.
* fix: Add a right border to the first child of the ImageComparisonSection
* style: Remove padding from UploadedImageContainer in TokenFluxPage
* feat: Implement caching for TokenFlux model fetching and update image upload handling
* feat: Enhance localization support by adding language context handling in TokenFluxPage
* refactor: Simplify layout structure in TokenFluxPage by removing unnecessary SectionGroup components and improving section title styling
---------
Co-authored-by: kangfenmao <kangfenmao@qq.com>
* feat(markdown-export): add option to show model name in export
* refactor(export): Refactor the Obsidian export modal to Ant Design style
* refactor(obsidian-export): export to obsidian using markdown interface & support COT
* feat(markdown-export): optimize COT export style, support export model & provider name
Add a new setting to toggle displaying the model provider alongside the
model name in markdown exports. Update the export logic to include the
provider name when enabled, improving context and clarity of exported
messages. Also fix invalid filename character removal regex for Mac.
* feat(export): add option to export reasoning in Joplin notes
Introduce a new setting to toggle exporting reasoning details when
exporting topics or messages to Joplin. Update the export function to
handle raw messages and convert them to markdown with or without
reasoning based on the setting. This improves the export feature by
allowing users to include more detailed context in their Joplin notes.
* feat(export): update i18n for new export options
* fix(settings): remove duplicate showModelNameInMarkdown state
* feat(export): add CoT export for notion & optmize notion export
* feat(export): update Notion settings i18n
* fix(utils): correct citation markdown formatting
Swap citation title and URL positions in markdown links to ensure
the link text displays the title (or URL if title is missing) and
the link points to the correct URL. This improves citation clarity.
* feat(Translation): enhance translation functionality and UI improvements
- Added secondary text color variables in color.scss for better UI contrast.
- Updated translation configuration to include language codes for better language handling.
- Enhanced translation UI with new language selection options and improved loading indicators.
- Implemented smart translation tips in multiple language JSON files for user guidance.
- Refactored translation logic to streamline message processing and error handling.
* feat(Translation): expand language options and update localization files
- Added new languages (Polish, Turkish, Thai, Vietnamese, Indonesian, Urdu, Malay) to translation options in translate.ts.
- Updated localization JSON files (en-us, ja-jp, ru-ru, zh-cn, zh-tw) to include translations for the new languages.
- Enhanced language detection logic in translate.ts to support new language codes.
* 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>
- Removed unused 'right' prop from Scrollbar component.
- Increased scrolling timeout duration for better user experience.
- Updated scrollbar styles to simplify color handling.
- Adjusted Messages component to remove unnecessary props and added margin for better layout.
- Added responsive styles to CitationBlock for improved mobile display.
- 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.
- Added a mock Redux store to the QuickPanelView tests for better state management.
- Refactored test rendering to use a wrapper function for consistent provider usage.
- Updated Scrollbar test to verify throttle behavior with new delay and options.
- Renamed variables for consistency, changing `AssistantsTabSortType` to `assistantsTabSortType`.
- Refactored tag calculation in `useTags` to utilize `uniq` and `flatMap` for better performance and readability.
- Updated localization files to remove unnecessary characters in quick trigger messages.
- Enhanced the `AssistantItem` component by extracting menu item creation logic and sorting functions for better maintainability.
- Introduced a new color selection feature in DisplaySettings, allowing users to choose from predefined theme color presets.
- Added a dedicated section for zoom settings in the DisplaySettings component, enhancing user customization options.
- Updated localization files to include new zoom settings titles in multiple languages.
- Updated styles for message content and group containers to improve layout.
- Added new selectors to exclude additional elements from navigation.
- Implemented conditional rendering for mentions in message content.
- Simplified token display logic in message tokens component.
* feat(theme): 用户自定义主题色
* refactor(QuickPanel): integrate user theme for dynamic color handling
* refactor(ThemeProvider): separate user theme initialization into its own useEffect
* refactor(useUserTheme): move theme initialization logic into a dedicated function
* feat(settings): enhance color picker with presets and update styles for ant-collapse
* feat: Refactor theme management to use userTheme object for colorPrimary
* 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
* refactor(ChatNavigation): move down the navigation bar
* refactor: attach listeners to MessagesContainer for better triggering experience
* refactor: add delay to Tooltips
* refactor: exclude some toolbars areas from triggering
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.
- Added eslint-disable comments for react-hooks/exhaustive-deps in CustomCollapse, DmxapiPage, SelectionActionApp, ActionGeneral, and ActionTranslate components to prevent warnings related to missing dependencies in useEffect hooks.
- Adjusted max token limit for 'claude-sonnet-4' and 'claude-opus-4' models from 64000 to 32000.
- Simplified reasoning checks in OpenAIProvider to combine conditions for supported models, enhancing code clarity.
* fix: increase max cache limit and update slider marks in MiniAppSettings
* fix: adjust max cache limit and update slider marks in MiniAppSettings
* Update MiniAppSettings.tsx
---------
Co-authored-by: George Zhao <georgezhao@SKJLAB>
* 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.
- Introduced defaultPaintingProvider in settings to manage selected painting provider.
- Updated Sidebar component to reflect the selected painting provider in the route.
- Enhanced PaintingsRoutePage to dispatch the default painting provider based on URL parameters.
- Added PaintingProvider type to define available options for painting providers.
* feat: add title prototype to selection action button in compact mode
* fix: optimize the display name logic for action buttons in the selection toolbar
- Added exclusions for various distribution directories and module types to optimize the build process.
- Updated license file exclusions to be more inclusive of different casing variations.
- 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.