- Added support for TypeScript incremental builds by enabling the `incremental` option and specifying the `tsBuildInfoFile` in both `tsconfig.node.json` and `tsconfig.web.json`.
- Updated the `typecheck` script in `package.json` to use `concurrently` for running node and web type checks in parallel.
- Added `.tsbuildinfo` to `.gitignore` to prevent build info files from being tracked.
chore: update electron.vite.config.ts and yarn.lock for dependency management
- Added additional external dependencies in electron.vite.config.ts to improve build configuration.
- Updated multiple package versions in yarn.lock, including @napi-rs/wasm-runtime, @oxc-project/runtime, and @rolldown packages to their latest beta versions for better compatibility and performance.
- Adjusted fdir and picomatch versions to ensure alignment with the latest features and fixes.
* refactor(ocr): streamline OCR service registration and improve image preprocessing
- Simplified the registration of the system OCR service by removing the conditional check for Linux.
- Updated SystemOcrService to directly import necessary modules, enhancing clarity.
- Refactored image preprocessing to use a static import of the 'sharp' library for better performance.
* add patch for system-ocr
* add patch
* add patch again
* add patch
* delete setting
* delete i18n
* lint error
* add isLinux
* Revert "delete i18n"
This reverts commit 173e65bbd0.
* Revert "delete setting"
This reverts commit de39c76f83.
* fix: add system check for error message
---------
Co-authored-by: icarus <eurfelux@gmail.com>
* feat(chat/input): allow sending during streaming; remove loading guard
- Inputbar: drop loading check; keep Send clickable; right-click to pause
- Message/MessageMenubar: render menubar even while streaming
- Minor cleanup of unused imports and lints
* feat(chat/menubar): one-click regenerate (remove confirm); add empty-context fallback
- MessageMenubar: remove Popconfirm; click to regenerate
- ApiService: ensure last user message is included if filters empty (avoid messages=[])
- Minor cleanup
* feat(chat/ui): decouple generation from sending; enable actions during streaming
- MessageGroupMenuBar: add “Retry all” (ReloadOutlined) to retry errored/empty/no-block replies; tooltip via i18n
- Context fallback: always include last user message in both messageThunk and ApiService
- i18n: add message.group.retry_failed (zh-CN, en-US, ja-JP, ru-RU, zh-TW)
- Cleanup: remove unused imports; fix lints
* feat(chat/settings): Add confirmation settings for message actions
- Add "Confirm before deleting message" and "Confirm before regenerating message" options to the settings page, allowing users to customize action confirmations.
- Update internationalization files to support multi-language prompt messages.
- Modify the message menu bar to integrate the confirmation logic, enhancing the user experience.
* fix(chat/ui): Apply regeneration confirmation to user messages
Previously, the "Regenerate" action on user messages would trigger immediately, bypassing the `confirmRegenerateMessage` setting. This behavior was inconsistent with the regeneration logic for assistant messages, which correctly showed a confirmation dialog.
This commit wraps the user message's regenerate button in a `Popconfirm` component, conditioned on the `confirmRegenerateMessage` setting. This aligns its behavior with the existing logic for assistant messages.
Now, all regeneration actions are uniformly governed by the user's confirmation preference, creating a more consistent and predictable user experience.
* fix(ui): Only show 'Retry failed' button when errors exist
fix(ui): Conditionally render the 'Retry failed' button
The 'Retry failed messages' button in the message group menu bar was previously always visible, even when no messages had failed.
- The 'Retry failed' button is now conditionally rendered and will only appear if one or more messages in the group meet the failure criteria.
* feat(chat/ui): Add dedicated button to pause message generation
Replaced the undiscoverable right-click-to-pause functionality on the send button with a dedicated, visible "Pause" button. This new button only appears during message generation, making the action intuitive and accessible.
- Removed `onPause` and context menu logic from `SendMessageButton`.
- Added a conditional `CirclePause` button to the `Inputbar` when loading.
* feat(settings/migrate): initialize confirm message flags for legacy users
- Add migration 138 to default confirmDeleteMessage/confirmRegenerateMessage
- No behavior change for fresh installs (uses initialState)
fix(format): correct indentation in MessageMenubar
fix(settings/migrate): fix persistedReducer verison
* fix(ui): resolve React Hook dependency warnings
- Remove unnecessary `topic.prompt` dependencies from Message components
- Remove `loading` dependency from Inputbar useCallback
Resolves ESLint exhaustive-deps warnings and conflicts
---------
Co-authored-by: n2yt584v2t4nh7y <117180266+n2yt584v2t4nh7y@users.noreply.github.com>
- Updated CLAUDE_OFFICIAL_SUPPORTED_PROVIDERS to include 'modelscope'.
- Added API base URL configuration for 'modelscope' under the anthropic provider settings.
- Eliminated the showTokens state and its associated actions from the settings management.
- Updated MessageTokens component to directly display token usage without relying on showTokens.
- Adjusted migration logic to remove default showTokens setting during state initialization.
- Consolidated vision and function calling model definitions into a more structured format.
- Introduced dedicated image generation model checks in the Inputbar component.
- Removed deprecated model checks and updated related logic in ApiService.
- Added new TEXT_TO_IMAGES_MODELS configuration for better image model management.
- Enhanced overall model type handling for improved clarity and maintainability.
- Added conditional registration of the system OCR service for non-Linux platforms.
- Updated SystemOcrService to handle Linux by returning an empty text response.
- Modified image preprocessing to dynamically require the 'sharp' library, improving compatibility and performance.
- Included additional files in the electron-builder configuration for packaging.
- Added the "supported_providers" translation key to English, Japanese, Russian, Simplified Chinese, and Traditional Chinese locale files.
- Updated CodeToolsPage to display a popover with supported providers when the Claude Code model is selected, improving user experience and accessibility of provider information.
- Introduced a new styled component for provider logos to enhance visual representation.
* refactor: replace afterPack script with beforePack and remove after-pack.js file
- Updated electron-builder configuration to use beforePack instead of afterPack.
- Removed the after-pack.js script as its functionality is no longer needed.
* refactor: streamline filter logic for architecture-specific packages in before-pack script
- Consolidated platform-specific filter conditions for arm64 and x64 architectures.
- Improved readability and maintainability by using arrays to manage filters for different architectures.
- Ensured that the correct filters are applied based on the architecture during the packaging process.
* chore: remove npm build commands from CI workflows
- Eliminated unnecessary `yarn build:npm` commands from the nightly build and release workflows for Linux, macOS, and Windows.
- Streamlined the build process by focusing on platform-specific build commands.
* delete build npm
* refactor: enhance architecture-specific package management in before-pack script
- Updated the before-pack script to include additional architecture-specific packages for arm64 and x64.
- Improved the organization of package filters and streamlined the logic for handling different architectures during the packaging process.
- Ensured that the correct filters are applied based on the architecture, enhancing the build process for various platforms.
* docs: clarify comment on prebuild binaries in before-pack script
* format code
* chore: add afterPack script to electron-builder configuration
- Included afterPack script in electron-builder.yml to enhance the packaging process.
- This addition allows for post-packaging tasks to be executed, improving build automation.
* chore: update macOS entitlements to disable library validation
- Added the key `com.apple.security.cs.disable-library-validation` to the entitlements file to enhance security settings for macOS builds.
* chore: remove unused package for win32 arm64 architecture
- Deleted the `@strongtz/win32-arm64-msvc` package from `package.json` and `yarn.lock` as it is no longer needed.
- Updated the `before-pack.js` script to improve architecture-specific package management by refining filter logic and ensuring correct package downloads based on architecture.
- Enhanced the `downloadNpmPackage` function to use Node.js streams for downloading and extracting packages, improving efficiency and error handling.
* feat: add html-tags and htmlparser2 dependencies; enhance CodeViewer and RichEditor components
* fix(NotesPage): prevent unnecessary state clearing when notesTree is empty
* feat(NotesPage): enhance note saving functionality to include file path management
* style: refine button and border styles across components for improved aesthetics
- Updated ToolbarButton styles to simplify background and hover effects.
- Adjusted border styles in NotesEditor, NotesSidebar, and NotesSidebarHeader for a more consistent look.
- Enhanced overall UI by reducing border thickness in various components.
* style: add bottom spacer to richtext component for improved viewport padding
* style: ensure drag handles and plus buttons are interactive in richtext component
* feat(RichEditor): add conditional focus behavior based on text length in rich editor
---------
Co-authored-by: kangfenmao <kangfenmao@qq.com>
- Adjust image block margin from 10px to 1em for better consistency
- Fix single vs multi-image display logic with proper layout
- Update ImageBlock component to handle single/multi display modes
- Fix image model detection logic for better compatibility
- Improve overall spacing between content blocks
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-authored-by: Claude <noreply@anthropic.com>
- Implemented downloading of architecture-specific versions of the @napi-rs/system-ocr packages for macOS and Windows platforms in build-npm.js.
- Updated after-pack.js to retain these packages during the packaging process, ensuring compatibility across different architectures.
* feat: enhance note saving functionality with immediate cache invalidation
* fix: improve file name handling and localization updates
* feat: implement multi-level note sorting and enhance state management
- Introduced sorting options for notes by name, update time, and creation time, allowing users to sort notes in ascending and descending order.
- Updated NotesPage and NotesSidebar components to handle sorting functionality.
- Enhanced Redux store to manage the sorting type, improving state management for note organization.
- Refactored related services to support recursive sorting logic, ensuring a consistent user experience.
* feat(i18n): add new file upload messages for multiple languages
* fix(styles): adjust padding in richtext.scss to accommodate scrollbar
* style(NotesSidebar): add border-top-left-radius to enhance sidebar aesthetics
* feat(RichEditPopup): add isFullWidth prop to enhance popup layout
* feat(RichEditPopup): disable keyboard interaction for improved user experience
* feat(NotesPage): integrate sorting after node deletion and movement
- Added sorting functionality to be triggered after deleting or moving nodes, ensuring notes are organized immediately.
- Updated dependencies in useCallback hooks to include sortType for consistent behavior across operations.
* feat(NotesService): update initWorkSpace and sortAllLevels to accept sortType
- Modified initWorkSpace to include sortType for improved note organization during initialization.
- Enhanced sortAllLevels to optionally accept a tree parameter, allowing for more flexible sorting operations.
- Updated NotesPage to utilize the new parameters, ensuring consistent sorting behavior across various actions.
* feat(NotesSidebar): implement in-place editing for note renaming
- Introduced a new hook, useInPlaceEdit, to manage in-place editing of note names, enhancing user experience during renaming.
- Updated the NotesSidebar component to utilize this hook, streamlining the editing process and improving state management.
- Removed redundant state variables related to editing, simplifying the component's logic.
* refactor(NotesPage): remove commented code for clarity
- Removed a comment regarding folder selection behavior to streamline the code and improve readability.
- This change does not affect functionality but enhances the overall code quality.
* feat(NotesSettings): update initWorkSpace to include default sort type
- Modified initWorkSpace calls in NotesSettings to accept a default sort type of 'sort_a2z', ensuring consistent note organization during path updates and resets.
- This change enhances the initialization process by applying a predefined sorting method.
* fix: initialize notes path on app startup to resolve missing default directory
- Add notes path initialization in store persistStore callback after rehydration
- Update NotesSettings to sync tempPath when notesPath changes from initialization
- Ensure notes directory is set even when user doesn't visit NotesPage first
- Fixes issue where notes path was empty after data reset until NotesPage visit
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Update NotesSettings.tsx
---------
Co-authored-by: Claude <noreply@anthropic.com>
- Added support for downloading and retaining architecture-specific versions of the `@img/sharp` and `@img/sharp-libvips` packages for macOS, Linux, and Windows platforms.
- Removed the deprecated function for deleting macOS-only packages, streamlining the package management process.
- Updated the `after-pack.js` and `build-npm.js` scripts to ensure proper handling of image processing dependencies across different architectures.
- Update version to 1.5.8-rc.1
- Update release notes with latest features and fixes
🤖 Generated with Claude Code
https://claude.ai/code
Co-Authored-By: Claude <noreply@anthropic.com>