* Add AWS Bedrock reasoning extraction middleware
- Add 'reasoning' tag to tagNameArray for broader reasoning support
- Add AWS Bedrock case with gpt-oss model-specific reasoning extraction
- Add openai-chat and openrouter cases to provider options switch
- Remove unused zod import
* Add OpenRouter provider support
Updates ai-core to version alpha.18 with OpenRouter integration and
improves provider ID resolution for OpenAI API hosts.
* Fix Anthropic API URL and add endpoint path handling
- Remove trailing slash from Anthropic API base URL
- Add isAnthropicProvider utility function
- Update provider settings to show full endpoint URL for Anthropic
- Add migration to clean up existing Anthropic provider URLs
* Update src/renderer/src/pages/settings/ProviderSettings/ProviderSetting.tsx
Co-authored-by: Phantom <59059173+EurFelux@users.noreply.github.com>
---------
Co-authored-by: Phantom <59059173+EurFelux@users.noreply.github.com>
* Remove local provider option files and use external packages
Replace local implementation of XAI and OpenRouter provider options with
external packages (@ai-sdk/xai and @openrouter/ai-sdk-provider). Update
web search plugin to support additional providers including OpenAI Chat
and OpenRouter, with improved configuration mapping.
* Bump @cherrystudio/ai-core to v1.0.0-alpha.17
fix i18n
* fix(i18n): Auto update translations for PR #10213
---------
Co-authored-by: GitHub Action <action@github.com>
* feat: Add automatic database migration system for agents service
- Add migrations tracking schema with version, tag, and timestamp
- Implement MigrationService to automatically run pending migrations
- Integrate migration check into BaseService initialization
- Read migration files from drizzle/ directory and journal.json
- Track applied migrations to prevent re-execution
- Ensure database is always at latest version on service startup
Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
* refactor: Improve migration logging and enhance database path configuration
* chore: harden migration bootstrap flow
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Happy <yesreply@happy.engineering>
- Added isLeftNavbar to the useNavbarPosition hook for improved layout management.
- Adjusted background style logic to use isLeftNavbar instead of isTopNavbar for better compatibility with left-aligned navigation.
- Simplified condition for transparent window styling on macOS.
- Added `aisdk-stream-protocel.md` to document text and data stream protocols.
- Created `ClaudeCodeService` for invoking and streaming responses from the Claude Code CLI.
- Introduced built-in tools for Claude Code, including Bash, Edit, and WebFetch.
- Developed transformation functions to convert Claude Code messages to AI SDK format.
- Enhanced OCR utility with delayed loading of the Sharp module.
- Updated agent types and session message structures to accommodate new features.
- Modified API tests to reflect changes in session creation and message streaming.
- Upgraded `uuid` package to version 13.0.0 for improved UUID generation.
* style(markdown): improve code block styling and layout
- Add text-wrap to pre elements for better readability
- Force background color for code blocks with !important
- Change display to grid in translate page for consistent layout
- Add overflow hidden to output container
* style(markdown): remove redundant !important from code block styling
Move !important declaration to output container's markdown pre selector where it's actually needed
- Install electron-reload package for automatic app reloading during development
- Configure electron-reload in main process with development-only activation
- Enable automatic restart when source files change during yarn dev
- Use hardResetMethod: 'exit' for clean app restarts
* build: add eslint-plugin-oxlint dependency
Add new eslint plugin to enhance linting capabilities with oxlint rules
* build(eslint): add oxlint plugin to eslint config
Add oxlint plugin as recommended in the documentation to enhance linting capabilities
* build: add oxlint v1.15.0 as a dependency
* build: add oxlint to linting commands
Add oxlint alongside eslint in test:lint and lint scripts for enhanced static analysis
* build: add oxlint configuration file
Configure oxlint with a comprehensive set of rules for JavaScript/TypeScript code quality checks
* chore: update oxlint configuration and related settings
- Add oxc to editor code actions on save
- Update oxlint configs to use eslint, typescript, and unicorn presets
- Extend ignore patterns in oxlint configuration
- Simplify oxlint command in package.json scripts
- Add oxlint-tsgolint dependency
* fix: lint warning
* chore: update oxlintrc from eslint.recommended
* refactor(lint): update eslint and oxlint configurations
- Add src/preload to eslint ignore patterns
- Update oxlint env to es2022 and add environment overrides
- Adjust several lint rule severities and configurations
* fix: lint error
* fix(file): replace eslint-disable with oxlint-disable in sanitizeFilename
The linter was changed from ESLint to oxlint, so the directive needs to be updated accordingly.
* fix: enforce stricter linting by failing on warnings in test:lint script
* feat: add recommended ts-eslint rules into exlint
* docs: remove outdated comment in oxlint config file
* style: disable typescript/no-require-imports rule in oxlint config
* docs(utils): fix comment typo from NODE to NOTE
* fix(MessageErrorBoundary): correct error description display condition
The error description was incorrectly showing in production and hiding in development. Fix the logic to show detailed errors only in development mode
* chore: add oxc-vscode extension to recommended list
* ci(workflows): reorder format check step in pr-ci.yml
* chore: update yarn.lock
* build: add @biomejs/biome as a dependency
* chore: add biome extension to vscode recommendations
* chore: migrate from prettier to biome for code formatting
Update VSCode settings to use Biome as the default formatter for multiple languages
Add Biome to code actions on save and reorder search exclude patterns
* build: add biome.json configuration file for code formatting
* build: migrate from prettier to biome for formatting
Update package.json scripts and biome.json configuration to use biome instead of prettier for code formatting. Adjust biome formatter includes/excludes patterns for better file matching.
* refactor(eslint): remove unused prettier config and imports
* chore: update biome.json configuration
- Enable linter and set custom rules
- Change jsxQuoteStyle to single quotes
- Add json parser configuration
- Set formatWithErrors to true
* chore: migrate biome config from json to jsonc format
The new jsonc format allows for comments in the configuration file, making it more maintainable and easier to document configuration choices.
* style(biome): update ignore patterns and jsx quote style
Update file ignore patterns from `/*` to `/**` for consistency
Change jsxQuoteStyle from single to double quotes for alignment with project standards
* refactor: simplify error type annotations from Error | any to any
The change standardizes error handling by using 'any' type instead of union types with Error | any, making the code more consistent and reducing unnecessary type complexity.
* chore: exclude tailwind.css from biome formatting
* style: standardize quote usage and fix JSX formatting
- Replace single quotes with double quotes in CSS imports and selectors
- Fix JSX element closing bracket alignment and formatting
- Standardize JSON formatting in package.json files
* Revert "style: standardize quote usage and fix JSX formatting"
This reverts commit 0947f8505d.
* fix: remove json import assertion for biome compatibility
The import assertion syntax is not supported by biome, so it was replaced with a standard import statement.
* style: change quote styles in biome.jsonc to use single quotes for JSX and double quotes for JS
* style: change quote style from double to single in biome config
* style: change JSX quote style from single to double
* chore: update biome.jsonc to use single quotes for CSS formatting
* chore: update biome config and format commands
- Exclude tailwind.css from linter includes
- Add biome lint to format commands
* style: format JSX closing brackets for better readability
* style: set bracketSameLine to true in biome config
The change aligns with common JSX formatting preferences where brackets on the same line improve readability for many developers
* Revert "style: format JSX closing brackets for better readability"
This reverts commit d442c934ee.
* style: format code and clean up whitespace
- Remove unnecessary whitespace in CSS and TS files
- Format package.json files to consistent style
- Reorder tsconfig.json properties alphabetically
- Improve code formatting in React components
* style(biome): update biome.jsonc config with clearer comment
Add explanation for keeping bracketSameLine as true to minimize changes in current PR while noting false would be better for future
* chore: remove prettier dependency and format package.json files
- Remove prettier from dependencies as it's no longer needed
- Reformat package.json files for better readability
* chore: replace prettier with biome for code formatting
Remove all prettier-related configuration, dependencies, and references
Update formatting scripts and documentation to use biome instead
Adjust electron-builder config to exclude biome.jsonc
* build: replace prettier with biome for formatting
Use biome as the default formatter instead of prettier for better performance and modern tooling support
* ci(i18n): replace prettier with biome for i18n formatting
Update the auto-i18n workflow to use Biome instead of Prettier for formatting translated files. This change simplifies the dependencies by removing multiple Prettier plugins and using a single tool for formatting.
* fix(i18n): Auto update translations for PR #10170
* style: format package.json files by consolidating array formatting
Consolidate multi-line array formatting into single-line format for better readability and consistency across package.json files
* Revert "fix(i18n): Auto update translations for PR #10170"
This reverts commit a7edd32efd.
* ci(workflows): specify biome config path in auto-i18n workflow
* chore: update biome.jsonc to use lexicographic sort order for json keys
* ci(workflows): update biome format command to use --config-path flag
* chore: exclude package.json from biome formatting
* ci: update biome.jsonc linter configuration
Update linter includes to target specific files and modify useSortedClasses rule
* chore: reorder search exclude patterns in vscode settings
* style(OGCard): reorder tailwind classes for consistent styling
* fix(biome): update tailwind classes sorting to safe and warn level
* docs(dev): update ide setup instructions in dev docs
Replace Prettier with Biome as the recommended formatter and clarify editor options
* build(extension-table-plus): replace prettier with biome for formatting
- Add biome.json configuration file
- Update package.json to use biome instead of prettier
- Remove prettier from dependencies
- Update lint script to use biome format
* chore: replace biome.json with biome.jsonc for extended configuration
Update biome configuration file to use JSONC format for comments and more detailed settings
* chore: remove unused biome.jsonc configuration file
---------
Co-authored-by: GitHub Action <action@github.com>
* feat(CodeTools): enhance OpenAI Codex integration with configurable parameters
- Added support for custom OpenAI model provider and model configuration in CodeToolsService.
- Updated CodeToolsPage to filter providers based on the selected CLI tool, including OpenAI Codex.
- Introduced OPENAI_CODEX_SUPPORTED_PROVIDERS constant for better provider management.
- Refactored environment variable generation to include OpenAI-specific settings.
* fix(CodeTools): correct environment variable generation for OpenAI Codex integration
- Added a break statement in the environment generation logic for OpenAI Codex to ensure proper handling of API key and base URL.
- Moved the import of codeTools to maintain consistency in the CodeToolsPage component.
* fix(error): improve error response body parsing and message handling
Handle JSON parsing of error response bodies and extract internal messages when available. Combine messages when both top-level and internal messages exist.
* refactor(error): simplify response body assignment in serializeError
Remove redundant conditional logic and directly assign error.responseBody to serializedError.responseBody
* fix(serializeError): handle responseBody assignment consistently
Ensure responseBody is always assigned from error.responseBody when available, otherwise stringify the body. This prevents potential undefined behavior when error.responseBody exists but body is not available.
- Add schemaSyncer.ts with Drizzle Kit push integration
- Integrate auto schema sync into BaseService.initialize()
- Database schema now automatically updates on agent service startup
- Users no longer need manual migration commands
- Ensures schema consistency across app updates
Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
- QuickPanel (view.tsx): do not intercept Enter/NumpadEnter when the panel is visible but collapsed (no non-pinned matches), so the event falls through to the input bar and sending works.
- Inputbar (Inputbar.tsx): prioritize the configured send shortcut on Enter; remove pre-blocking based on quickPanel visibility; keep Shift+Enter as native newline; insert newline for other Enter variants.
- Update inline comments to clearly document the behavior.
* fix(ThemeProvider): set document language based on user settings
Add language from settings to ThemeProvider context and update document language attribute accordingly
* fix(ThemeProvider): add language to dependency array to prevent stale closures
* fix: correct disk quota display by converting bytes to GB
The free disk space was being logged in bytes instead of GB, making the log message misleading. Convert the value to GB for accurate reporting.
* fix: format disk quota log to 2 decimal places
- Add PATCH method to agents API for partial updates alongside existing PUT
- Add PUT method to sessions API for complete replacement alongside existing PATCH
- Update API documentation with clear PUT vs PATCH usage examples
- Refactor session status updates to use standard PATCH endpoint
- Ensure both methods use same validation middleware for consistency
- Add comprehensive Swagger documentation for new endpoints
This provides REST-compliant update operations where:
- PUT: Complete resource replacement (idempotent)
- PATCH: Partial resource updates (only specified fields)
Both agents and sessions now support flexible update patterns for different use cases.
- Refactor AddAgentModal into AgentModal to support both add and edit operations
- Add edit button to AgentItem with corresponding modal functionality
- Update translations for edit and update success messages
The antd dropdown component was replaced with a custom context menu implementation to improve consistency with the application's UI components and remove dependency on antd. The functionality remains the same but is now implemented using the custom context menu component.
Implement a comprehensive context menu component with submenus, checkboxes, radio items, and separators. The component is built using @radix-ui/react-context-menu and includes proper styling and accessibility features.
Add required dependencies and update yarn.lock accordingly.
- Add agent deletion confirmation dialog with translations
- Implement agent list display and drag-and-drop functionality
- Include avatar support for agent types
- Add success message for agent deletion
- Add migration for new agents structure (version 155)
- Enable addAgent call in AddAgentModal
- Update dependencies array with addAgent
- Replace TODO comment with FIXME for model type issue
- Remove deprecated AddAgentPopup implementation
- Implement new AddAgentModal component with improved UI using Button component
- Update related imports and usage in AssistantsTab
- Clean up unused styles and code
- Add isAgentType function to validate agent type strings
- Update i18n files with new agent type validation messages
- Add common validation error messages and success notifications
add new AddAgentPopup component with type selection
move agent-related translations to dedicated section
update UI to use new popup instead of placeholder toast
Add DEFAULT_AGENT_CONFIG and DEFAULT_CLAUDE_CODE_CONFIG constants to define base agent configurations. These will serve as templates for future agent configurations.
Add setAgents, addAgent, removeAgent and updateAgent actions to manage agents in the store. The updateAgent action uses lodash's mergeWith to handle array references properly and includes error logging when agent is not found.
- Rename agents to assistant presets across the codebase
- Update components, hooks, and pages to reflect the new naming
- Add new components for managing assistant presets
- Improve localization and grouping of presets
- Maintain existing functionality while updating the UI
The old 'agents' array was actually storing presets, so it's renamed for clarity. Added new 'agentsNew' array for actual agent entities in preparation for autonomous agent feature.
The type was renamed to better reflect its purpose as a preset configuration for assistants rather than representing an active agent. This change improves code readability and maintainability by using more accurate terminology throughout the codebase.
Add a new button for creating agents in the chat interface. The button is currently a placeholder with a "Not implemented" toast message. Includes necessary i18n translations and component props.
* feature: add option to change font
1. set app global font
2. set code block font
Signed-off-by: Albert Abdilim <albert.abdilim@foxmail.com>
* formatted code with Prettier
* fix ci errors
1.add migration in `migrate.ts`
2.add to-be-translated strings by running `yarn sync:i18n`
* chore: update yarn.lock to include font-list package version 2.0.0
* fix migration issue
---------
Signed-off-by: Albert Abdilim <albert.abdilim@foxmail.com>
Co-authored-by: suyao <sy20010504@gmail.com>
- Replace custom migration system with modern Drizzle ORM implementation
- Add drizzle-orm and drizzle-kit dependencies for type-safe database operations
- Refactor BaseService to use Drizzle client with full type safety
- Create schema definitions in /database/schema/ using Drizzle patterns
- Remove legacy migration files, queries, and migrator classes
- Add comprehensive documentation for new Drizzle-based architecture
- Maintain backward compatibility in service layer APIs
- Simplify database operations with modern ORM patterns
This migration eliminates custom SQL generation in favor of a proven,
type-safe ORM solution that provides better developer experience and
maintainability.
- Rename SessionLogEntity → SessionMessageEntity type definition
- Rename SessionLogService → SessionMessageService with all methods
- Rename API routes /logs → /messages for better REST semantics
- Update database queries and service layer naming
- Update all Swagger documentation and validation middleware
- Maintain backward compatibility in database schema
This improves code readability by using more accurate terminology
for conversational message data rather than generic "log" naming.
* feat: add Perplexity SDK integration
* feat: enhance AiSdkToChunkAdapter with web search capabilities
- Added support for web search in AiSdkToChunkAdapter, allowing for dynamic link conversion based on provider type.
- Updated constructor to accept provider type and web search enablement flag.
- Improved link handling logic to buffer and process incomplete links.
- Enhanced message block handling in the store to accommodate new message structure.
- Updated middleware configuration to include web search option.
* fix
* fix
* chore: remove unuseful code
* fix: ci
* chore: log
refactor(provider): wrap system provider checks in isSystemProvider
Centralize system provider checks to improve maintainability and reduce code duplication
Refactor database to migration-only approach and add complete documentation
### Database Architecture Improvements:
- **Remove redundant schema files**: Eliminated duplicate table/index definitions
- **Single source of truth**: Migration files now exclusively define database schema
- **Simplified maintenance**: No more sync issues between schema files and migrations
### Files Removed:
- `database/schema/tables.ts` - Redundant table definitions
- `database/schema/indexes.ts` - Redundant index definitions
### Files Updated:
- `database/schema/index.ts` - Now only exports migration utilities
- `database/index.ts` - Simplified exports, removed redundant schema references
- `BaseService.ts` - Updated documentation for migration-only approach
- `migrator.ts` - Enhanced documentation and clarity
### Documentation Added:
- **`database/README.md`** - Comprehensive 400+ line guide covering:
- Architecture overview and migration-only approach
- Complete directory structure explanation
- Migration system lifecycle with diagrams
- Query organization and API reference
- Development workflow and best practices
- Troubleshooting guide and examples
### Benefits:
- ✅ Eliminated redundancy between schema and migration files
- ✅ Reduced maintenance overhead and potential sync issues
- ✅ Established single source of truth for database schema
- ✅ Added comprehensive documentation for team development
- ✅ Maintained full backward compatibility
- ✅ All tests continue to pass (1420/1420)
The database system now follows industry best practices with migrations as the sole
schema definition method, while providing complete documentation for developers.
- **BaseService**: Shared database connection and JSON serialization utilities
- **AgentService**: Agent management operations (CRUD for agents)
- **SessionService**: Session management operations (CRUD for sessions)
- **SessionLogService**: Session log management operations (CRUD for session logs)
Updated API routes to use appropriate services:
- sessions.ts now uses SessionService for session operations
- session-logs.ts now uses SessionLogService and SessionService as needed
- Maintains backward compatibility with existing API endpoints
Benefits:
- Single Responsibility Principle - each service has a clear focus
- Better code organization and maintainability
- Easier testing and debugging
- Improved separation of concerns
- Shared database infrastructure via BaseService
All TypeScript compilation and build checks pass.
style(MinApp): adjust container styles for better layout
- Add min-height to MinApp container
- Remove absolute positioning from search bar
- Improve flex and overflow handling in containers
- Adjust margins and widths for better spacing
* refactor(OGCard): replace static image with dynamic generated graph
- Replace CherryLogo import with GeneratedGraph component for dynamic preview
- Extract image height to constant for consistency
- Use useCallback for GeneratedGraph to optimize performance
* chore: remove unused banner.png asset
* style(OGCard): change image height from pixels to rem units
Use rem units for better responsiveness and consistency with the design system
* feat: add disk space checking functionality
- Introduced a new IPC channel for retrieving disk information.
- Integrated the 'check-disk-space' package to fetch available and total disk space.
- Updated the preload API to expose the new disk info retrieval method to the renderer.
* feat: implement disk space warning and data limit checks
- Added functionality to check available disk space and display warnings when storage is low.
- Updated IPC methods to pass directory paths for disk info retrieval.
- Introduced periodic checks for app data disk quota and internal storage quota.
- Enhanced user notifications with localized messages for low storage warnings.
* fix: enhance disk space warning logic and improve logging
- Added additional conditions for displaying disk space warnings based on free percentage thresholds.
- Improved logging format for app data disk quota, providing clearer output in GB.
- Refactored the checkDataLimit function to be asynchronous for better performance.
* format code
* update log format
* fix: improve error handling and logging in disk quota checks
- Added try-catch block in checkAppDataDiskQuota to handle potential errors when retrieving disk information.
- Ensured that errors are logged for better debugging and visibility.
- Updated checkDataLimit to await the checkAppDataDiskQuota function for proper asynchronous handling.
* fix comments
* fix: remove redundant appStorageQuota message from localization files
* lint
* fix: enhance disk space warning logic for USB disks
- Added a condition to warn users when free space on USB disks falls below 5% of total capacity.
- Improved the existing logic for displaying disk space warnings based on total disk size thresholds.
* update i18n
* Refactor data limit notification logic and update i18n messages for disk space warnings. Adjusted check intervals and improved toast notifications for low disk space alerts.
* Fix disk quota check logic in useDataLimit hook to correctly compare free space against 1GB threshold.
* refactor: update styles and improve navbar handling
- Removed unnecessary margin-bottom style from bubble markdown.
- Adjusted margin in Prompt component for better layout.
- Enhanced useAppInit hook to include navbar position logic for background styling.
- Added alignment to ErrorBlock alert for improved visual consistency.
* refactor: relocate checkDataLimit function to utils and update import in useAppInit hook
- Moved checkDataLimit function from useDataLimit hook to utils for better organization.
- Updated import path in useAppInit to reflect the new location of checkDataLimit.
- Removed the now obsolete useDataLimit hook file.
* refactor: update getDiskInfo API to specify return type
- Enhanced getDiskInfo function to explicitly define the return type as a Promise containing disk information or null.
* lint err
* fix: handle null response from getDiskInfo in checkAppDataDiskQuota
- Added a check for null response from getDiskInfo to prevent errors.
- Updated the logic to extract the free disk space only if diskInfo is valid.
---------
Co-authored-by: kangfenmao <kangfenmao@qq.com>
* refactor MCPService for improved error handling and header management
* refactor MCPService: reorder header preparation for improved clarity
* refactor: enhance MCP server type determination and clean up error handling
* refactor: update Scrollbar component and integrate horizontal scrolling in TabContainer and KnowledgeBaseInput
- Renamed Props interface to ScrollbarProps for clarity.
- Implemented useHorizontalScroll hook in TabContainer to manage horizontal scrolling.
- Removed deprecated scroll handling logic and replaced it with the new hook.
- Enhanced KnowledgeBaseInput to utilize horizontal scrolling for better UI management.
- Cleaned up unused imports and components for improved code maintainability.
* refactor: update dependencies type in useHorizontalScroll hook to readonly unknown[] for better type safety
* feat: add scrollDistance parameter to useHorizontalScroll hook for customizable scrolling behavior
* refactor: replace useHorizontalScroll with HorizontalScrollContainer in TabContainer, KnowledgeBaseInput, and MentionModelsInput components
- Updated TabContainer to utilize HorizontalScrollContainer for improved scrolling functionality.
- Refactored KnowledgeBaseInput and MentionModelsInput to replace the custom horizontal scroll implementation with HorizontalScrollContainer, simplifying the code and enhancing maintainability.
* refactor(HorizontalScrollContainer): remove paddingRight prop and update scroll handling
- Removed the unused paddingRight prop from HorizontalScrollContainerProps and its implementation.
- Updated handleScrollRight to accept the event parameter and stop propagation.
- Simplified the Container styled component by eliminating the padding-right style.
* fix: sync issue
* fix: isLeftNavbar inputbar display issue
* feat(HorizontalScrollContainer): add scroll end detection and disable button hover effect
---------
Co-authored-by: 自由的世界人 <3196812536@qq.com>
- Removed unnecessary margin-bottom style from bubble markdown.
- Adjusted margin in Prompt component for better layout.
- Enhanced useAppInit hook to include navbar position logic for background styling.
- Added alignment to ErrorBlock alert for improved visual consistency.
Implement full REST API with Express routes for agents, sessions, and logs:
- CRUD operations for agents with validation and OpenAPI documentation
- Session management with nested resource endpoints
- Hierarchical logging system with bulk operations support
- Request validation using express-validator
- Proper error handling and structured responses
Add comprehensive agent service with full CRUD operations, session management,
and structured logging capabilities. Includes database operations for agents,
sessions, and hierarchical log entries with proper type definitions.
- Add complete SQL schema for agents, sessions, and session_logs tables
- Implement CRUD operations for all agent-related entities
- Add SessionLogEntity type with hierarchical logging support
- Include proper indexes and foreign key constraints for performance
- Support agent configuration inheritance in sessions via COALESCE
- Add metadata field for extensible session log tracking
* feat: add api server
This reverts commit c76aa03566.
* update yarn.lock
* fix: correct import paths in ToolSettings component
Update import paths for PreprocessSettings and WebSearchSettings to reference correct locations in DocProcessSettings and WebSearchSettings directories.
* feat(settings): add API server settings link and route
* fix(auth): improve authorization handling and error responses
* feat(chat): enhance model validation and logging for chat completions
feat(models): improve logging for model retrieval and filtering
feat(utils): add model ID validation and support for OpenAI providers
* feat(api-server): refactor config loading and remove unused ToolSettings component
* refactor(ApiServerService): simplify config retrieval and improve error handling in ApiServerSettings
* fix(mcp): remove unnecessary await in listTools return statement
* refactor(ApiServerSettings): replace window.message with window.toast for notifications
---------
Co-authored-by: kangfenmao <kangfenmao@qq.com>
* feat(toast): add toast utility functions to global interface
Expose error, success, warning, and info toast functions globally for consistent notification handling
* refactor(toast): use ToastPropsColored type to enforce color consistency
Create ToastPropsColored type to explicitly omit color property from ToastProps
* refactor(toast): simplify toast functions using factory pattern
Create a factory function to generate toast functions instead of repeating similar code. This improves maintainability and reduces code duplication.
* fix: replace window.message with window.toast for copy notifications
* refactor(toast): update type definition to use Parameters utility
Use Parameters utility type to derive ToastPropsColored from addToast parameters for better type safety
* feat(types): add RequireSome utility type for making specific properties required
* feat(toast): add loading toast functionality
Add loading toast type to support promises in toast notifications. This enables showing loading states for async operations.
* chore: add claude script to package.json
* build(eslint): add packages dist folder to ignore patterns
* refactor: migrate message to toast
* refactor: update toast import path from @heroui/react to @heroui/toast
* docs(toast): add JSDoc comments for toast functions
* fix(toast): set default timeout for loading toasts
Make loading toasts disappear immediately by default when timeout is not specified
* fix(translate): replace window.message with window.toast for consistency
Use window.toast consistently across the translation page for displaying notifications to maintain a uniform user experience and simplify the codebase.
* refactor: remove deprecated message interface from window
The MessageInstance interface from antd was marked as deprecated and is no longer needed in the window object.
* refactor(toast): consolidate toast utilities into single export
Move all toast-related functions into a single utility export to reduce code duplication and improve maintainability. Update all imports to use the new utility function.
* docs(useOcr): remove redundant comment in ocr function
* docs: update comments from Chinese to English
Update error log messages in CodeToolsPage to use English instead of Chinese for better consistency and maintainability
* feat(toast): add no-drag style and adjust toast placement
add custom CSS class to disable drag on toast elements
move toast placement to top-center and adjust timeout settings
* refactor(RuntimeExecutor, PluginEngine): streamline parameter handling and improve type definitions for model operations
- Updated parameter handling in RuntimeExecutor methods to use specific types for generate and stream functions.
- Refactored PluginEngine methods to enhance type safety and reduce redundancy in model resolution.
- Introduced new type definitions for generate and stream parameters in types.ts for better clarity and maintainability.
- Adjusted provider options mapping in buildProviderOptions to accommodate new provider types.
* feat(googleToolsPlugin): enhance Google tools integration and update dependencies
- Updated the `ai` package version to `5.0.38` and `@ai-sdk/gateway` to `1.0.20` in `package.json` and `yarn.lock`.
- Introduced `googleToolsPlugin` with improved parameter handling and configuration options for Google tools.
- Added support for `urlContext` in middleware configuration and plugin builder.
- Refactored web search tool to streamline response handling and citation formatting.
- Updated various service methods to include `enableUrlContext` capability.
* fix: update tool response handling and clean up unused code
- Modified the `processKnowledgeReferences` function to accept the full response object instead of just `knowledgeReferences`.
- Cleaned up the `searchOrchestrationPlugin` by removing unnecessary blank lines.
- Removed commented-out code in `telemetryPlugin` to improve readability.
- Updated `KnowledgeSearchTool` to streamline the execution flow and return results more efficiently.
- Adjusted `MessageKnowledgeSearch` components to reflect changes in the data structure returned from the knowledge search tool.
- Enhanced `MemorySearchTool` by simplifying error handling and removing redundant code.
* refactor: clean up KnowledgeSearchTool and WebSearchTool by removing commented-out code
- Removed unnecessary commented-out code in `KnowledgeSearchTool` and `WebSearchTool` to improve code readability and maintainability.
- Simplified the `processKnowledgeReferences` function by eliminating the console log statement for cleaner output.
* chore: bump version to 1.0.0-alpha.14 in aiCore package.json
* chore: update @ai-sdk/google-vertex to version 3.0.25 and add @ai-sdk/anthropic@2.0.15 to dependencies
- Bumped the version of `@ai-sdk/google-vertex` in `package.json` and `yarn.lock` to 3.0.25.
- Added `@ai-sdk/anthropic` version 2.0.15 to `yarn.lock` with updated dependencies.
- Refactored `parameterBuilder.ts` to integrate new tools from `@ai-sdk/google-vertex` for enhanced functionality.
* refactor(Navbar): improve WindowControls visibility and clean up event listener management
- Updated Navbar component to conditionally render WindowControls based on minappShow state.
- Refactored IPC event listener management in preload script for better clarity and performance.
* feat(WindowControls): replace custom restore icon with a new SVG component
- Introduced a new `WindowRestoreIcon` component with enhanced SVG structure and styling.
- Updated `WindowControls` to use the new `WindowRestoreIcon` for better visual consistency and scalability.
* feat(WindowControls): update WindowRestoreIcon SVG for improved design
- Enhanced the SVG structure of the `WindowRestoreIcon` component with updated dimensions and styling for better visual appeal.
- Adjusted the path and rectangle properties to refine the icon's appearance and maintain consistency across the application.
* lint error
* feat: add text file preview (#7023)
* feat: open message text file attachment in preview
* refractor: use `window.api.fs.readText`
* fix: use `FileTypes.TEXT`
* fix: trim prefix "file://" with `replace`
* refactor(FileAction): centralize file click handling for text preview
- Use FileAction.handleClick in AttachmentPreview and MessageAttachments
- Show i18n error modal on failure (zh-cn: files.click.error)
* fix: i18n
* fix: update i18n on field `files.click.error` with codex
* fix: use hook
* fix: rename `handleClick` to `preview`
* feat: support lang highlight
* fix: remove prefix '.' of extension
* fix: code editor style
* fix: editor cursor text style
* fix: add `FileTypes` check
* fix: move parseFileType into utils
* fix: move `parseFileTypes` into utils/file
* feat(minapps): add Tabs-mode webview pool and integrate page shell
* fix(minapp): position tabs pool below toolbar and preserve layout
* style(minapp): fix format issues
* style(minapps): optimize var name
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* feat(minapps): stabilize tab webview lifecycle and mount logic
* refactor(minapps): improve webview detection and state handling
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix(translate): prevent default paste behavior only when handling files
Only call event.preventDefault() when handling file pasting to allow text pasting by default. This fixes the issue where text pasting was being blocked unnecessarily.
* fix(translate): append new text to existing content instead of replacing
Ensure OCR and file reading operations append new content to existing text rather than replacing it entirely. This maintains user's previous input when processing additional files.
* feat: add font size and table of contents settings to RichEditor
- Introduced font size customization in the RichEditor component, allowing users to adjust the font size for better readability.
- Added a toggle for displaying a table of contents in the editor settings.
- Updated localization files to include new settings descriptions.
- Enhanced the NotesSettings component with a slider for font size adjustment and a switch for the table of contents feature.
- Migrated state management to include new settings in the Redux store.
* feat: enhance CodeEditor with customizable font size and responsive layout
* feat: enhance markdown conversion to preserve square brackets
- Improved the htmlToMarkdown function to correctly handle and preserve wiki-style double brackets [[foo]] and single brackets [foo] while maintaining proper Markdown link syntax.
- Added unit tests to verify the preservation of these bracket formats during conversion.
* feat: enhance YamlFrontMatterNodeView with editor content check
* fix
* chore
* chore: bump store persistence version to 153
---------
Co-authored-by: icarus <eurfelux@gmail.com>
* feat(translate): add settings with autoCopy option to translate state
Add settings object to translate state to store user preferences like autoCopy functionality. Implement updateSettings reducer to handle settings updates.
* docs(translate): add todo comment for settings field
* refactor(translate): simplify settings update and expose in hook
Remove dependency on objectEntriesStrict and use Object.entries directly
Expose translate settings and update function in useTranslate hook
* fix(useTranslate): use dispatch to update
* feat(translate): add auto-copy setting for translated content
Add auto-copy functionality that automatically copies translated text to clipboard when enabled. Includes settings toggle in TranslateSettings component and integration with translate logic.
* chore: add tailwindcss file association to vscode settings
* feat(translate): add auto copy setting and improve switch styling
Add new translation strings for auto copy feature and apply consistent primary color to all switches in translation settings
* fix(theme): update hero UI primary color variable
Add --primary CSS variable to match --color-primary for hero UI components
* refactor(hooks): rename _updateSettings to handleUpdateSettings for clarity
Improve variable naming consistency and better reflect the function's purpose
* refactor(translate): simplify settings update using Object.assign
* fix(translate): handle clipboard write errors in copy functionality
Add error handling for clipboard operations to prevent silent failures and show user feedback when copy fails
* feat(i18n): add translation placeholders for new UI strings
Add new translation keys for front matter operations and auto-copy setting
Include additional Anthropic OAuth related messages for better user feedback
* fix(i18n): Auto update translations for PR #10032
* fix(i18n): correct translation errors in multiple language files
Fix incorrect translations and fill missing values in Japanese, Russian, Portuguese, French and Spanish localization files. Changes include correcting property name in Japanese, adding missing empty value in Russian, fixing editValue in Portuguese, correcting date and empty values in French, and fixing multiple terms in Spanish.
* fix: update error message in migration from 151 to 152
* fix(translate): await copy operation and show success message
Ensure the copy operation completes before proceeding and notify user of successful copy
* feat(translate): add delay timer for auto-copy functionality
Use setTimeoutTimer to introduce a 100ms delay before auto-copy to ensure UI stability
* fix(translate): increase modal width from 420 to 520 for better content display
* fix(ThemeProvider): ensure proper theme class is applied to body
Add logic to toggle 'light' and 'dark' classes on body element when theme changes
* fix(translate): only copy when success
* fix(translate): remove redundant error message display on translation failure
* fix(translate): handle abort and empty translation cases properly
Improve error handling for translation abort scenarios and empty responses. Show appropriate user messages when translation is aborted and properly handle NoOutputGeneratedError cases.
* fix(translate): handle translation errors by showing user-friendly message
Display a localized error message to users when translation fails instead of just logging it
---------
Co-authored-by: GitHub Action <action@github.com>
* feat(Navbar): add WindowControls for Windows and Linux, clean up NavbarCenter component
* feat(Navbar): add NavbarRight component for improved layout in MinAppsPage
* feat(Navbar): enhance layout and styling for WindowControls and Navbar components
* lint err
* fix new ui
* refactor(logging): change logger level and remove unused log statements
- Updated logger level from info to silly in AiSdkToChunkAdapter for more granular logging.
- Removed unused logger statements in AiSdkMiddlewareBuilder and PluginBuilder to clean up the code.
- Enhanced condition check in ApiService to include prompt tool usage.
* chore
* fix: improve note sorting behavior for drag and drop operations
- Skip automatic sorting when performing same-level drag reordering
- Preserve treePath during same-level moves to maintain manual ordering
- Return special indicator for manual reorder operations to prevent conflicts
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: type safety issue
---------
Co-authored-by: Claude <noreply@anthropic.com>
* feat: add YAML front matter support in markdown processing
- Introduced a new plugin to parse and render YAML front matter in markdown documents.
- Updated the markdown converter to handle YAML front matter, preserving its structure during conversion.
- Added corresponding tests to ensure YAML front matter is retained correctly in markdown to HTML and vice versa.
- Enhanced i18n files with new translations for front matter properties in English, Chinese (Simplified and Traditional).
- Included the 'yaml' package as a dependency in package.json.
* feat(i18n): add new translations for editing properties in Traditional Chinese
* chore: fix
Add SVG logos for ByteDance and Ideogram AI model providers to improve visual identification in the model selection UI.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-authored-by: Claude <noreply@anthropic.com>
* feat: add Anthropic OAuth settings UI and logic
Introduces AnthropicSettings component for managing Anthropic OAuth authentication in provider settings. Adds Anthropic OAuth logic in a new anthropicOAuth.ts file, including PKCE flow, token exchange, and credential management stubs. Integrates AnthropicSettings into ProviderSetting to enable UI for login, logout, and code entry.
* feat: add Anthropic OAuth authentication support
Introduces OAuth authentication for Anthropic provider, including UI changes for selecting authentication method and handling authorization code input. Updates i18n files with new Anthropic OAuth-related strings in multiple languages and adds the 'authType' property to the Provider type.
* fix: oauth
* refactor: Anthropic OAuth to main process service
Moved Anthropic OAuth logic from renderer to main process as a singleton service. Updated IPC channels and preload API to support Anthropic OAuth actions. Refactored AnthropicSettings component to use new IPC-based API for authentication flow.
* fix: add 'authenticating' translation and update AnthropicSettings
Added the 'authenticating' key to Anthropic provider translations across multiple languages. Updated AnthropicSettings.tsx to remove the unused 'authenticating_detail' description and set the modal to be centered.
* fix: add reference
* Update AnthropicAPIClient.ts
* fix: update credentials path and improve OAuth handling in AnthropicAPIClient
* feat: add support for Anthropic OAuth provider handling in ProviderSetting
* feat: enhance OAuth authentication messages in multiple languages
* feat: add support for Anthropic provider with OAuth authentication and system message handling for new aisdk provider
* fix: update credential path and use net.fetch for OAuth token requests
* fix: setting page ui
---------
Co-authored-by: Vaayne <liu.vaayne@gmail.com>
* fix(mcp): enhance progress event structure to include callId for specific tool tracking
* refactor(mcp): add MCP progress event with callId and progress percentage
* feat: add window control functionality for Windows and Linux
- Introduced new IPC channels for window management: minimize, maximize, unmaximize, close, and check maximized state.
- Implemented window control buttons in the UI, allowing users to minimize, maximize, and close the application.
- Enhanced Navbar and TabContainer components to include window controls, improving user experience on non-Mac platforms.
- Styled window control buttons for better visual integration.
This update enhances the application's usability by providing essential window management features.
* add tooltip
* fix macos
* lint error
* update i18n
* lint
* fix: add WindowControls to MinApp popup and improve hover styles
- Add WindowControls component to MinappPopupContainer title bar for Windows/Linux
- Fix ButtonsGroup overlap with WindowControls by adding proper margin
- Improve WindowControls hover background visibility by using rgba(128,128,128,0.3)
- Ensure WindowControls is positioned at the right edge of title bar
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* lint
* add types
---------
Co-authored-by: Claude <noreply@anthropic.com>