- Add params validation in API handlers to ensure path ID matches body ID
- Introduce isDbOcrProvider type guard for runtime validation
- Validate provider data before database operations
Add DELETE endpoint for OCR providers with proper type definitions and handler implementation. The endpoint removes the provider from both the registry and database after validation checks.
- Remove separate configs from store and move them into provider definitions
- Add Zod schemas for OCR provider types and configurations
- Update migration to use new provider structure
- Make OCR provider config non-nullable in database schema
- Clean up unused OCR preference settings
- Replace OcrProvider with OcrParams to simplify interface
- Remove unused OcrApiClientFactory and related code
- Consolidate ocr service calls to use consistent params structure
Add OCR provider configuration mappings to PreferencesMappings.ts and define default preferences for OCR providers in preferenceSchemas.ts. This enables support for multiple OCR providers with their respective configurations.
Add type import for PreferenceSchemas and update REDUX_STORE_MAPPINGS type to use keyof PreferenceSchemas
Mark several mappings with TODO comments for future fixes
Remove unused OcrProvider type and related endpoints. The GET endpoint now returns a simple array of provider IDs instead of full provider objects, as the detailed provider data will be handled separately.
Add more context about ID format for custom providers and clarify name usage for built-in providers
Explain JSON config validation requirements and mark timestamps as potentially unused
Add new schema for OCR providers including fields for id, name, capabilities, and config. Capabilities and config are stored as JSON to accommodate various provider types and configurations.
Implement API schemas and handlers for OCR providers endpoints
Add TODO comments for future migration tasks
Fix endpoint path in OcrImageSettings component
Move availability checks to service instantiation
Update registry to store service instances directly
Simplify registration logic by removing redundant bind calls
* fix: improve server startup and error handling logic
Refactored ApiServer to clean up failed server instances and ensure proper handling of server state. Updated loggerService import to use shared logger and improved error handling during server startup.
* Update server.ts
* Revert "fix: make anthropic model provided by cherryin visible to agent (#10695)"
This reverts commit 7b3b73d390.
* fix: agent supported model filter
* new build-in ocr provider intel ov
Signed-off-by: Ma, Kejiang <kj.ma@intel.com>
Signed-off-by: Kejiang Ma <kj.ma@intel.com>
* updated base on PR's commnets
Signed-off-by: Kejiang Ma <kj.ma@intel.com>
* feat(OcrImageSettings): use swr to fetch available providers
Add loading state and error handling when fetching available OCR providers. Display an alert when provider loading fails, showing the error message. Also optimize provider filtering logic using useMemo.
* refactor(ocr): rename providers to listProviders for consistency
Update method name to better reflect its functionality and maintain naming consistency across the codebase
---------
Signed-off-by: Ma, Kejiang <kj.ma@intel.com>
Signed-off-by: Kejiang Ma <kj.ma@intel.com>
Co-authored-by: icarus <eurfelux@gmail.com>
fix: prevent default behavior for Cmd/Ctrl+F in WebviewService (#10800)
Updated the keyboard handler in WebviewService to always prevent the default action for the Cmd/Ctrl+F shortcut, ensuring it overrides the guest page's native find dialog. This change allows the renderer to manage the behavior of Escape and Enter keys based on the visibility of the search bar.
* feat: add built-in DiDi MCP server integration
- Add DiDi MCP server implementation with ride-hailing services
- Support map search, price estimation, order management, and driver tracking
- Add multilingual translations for DiDi MCP server descriptions
- Available only in mainland China, requires DIDI_API_KEY environment variable
* fix: resolve code formatting issues in DiDi MCP server
fixes code formatting issues in the DiDi MCP server implementation to resolve CI format check failures.
---------
Co-authored-by: BillySong <billysongli@didiglobal.com>
* refactor(apiServer): move api server types to dedicated module
Restructure api server type definitions by moving them from index.ts to a dedicated apiServer.ts file. This improves code organization and maintainability by grouping related types together.
* feat(api-server): add api server management hooks and integration
Extract api server management logic into reusable hook and integrate with settings page
* feat(api-server): improve api server status handling and error messages
- add new error messages for api server status
- optimize initial state and loading in useApiServer hook
- centralize api server enabled check via useApiServer hook
- update components to use new api server status handling
* fix(agents): update error message key for agent server not running
* fix(i18n): update api server status messages across locales
Remove redundant 'notRunning' message in en-us locale
Add consistent 'not_running' error message in all locales
Add missing 'notEnabled' message in several locales
* refactor: update api server type imports to use @types
Move api server related type imports from renderer/src/types to @types package for better code organization and maintainability
* docs(IpcChannel): add comment about unused api-server:get-config
Add TODO comment about data inconsistency in useApiServer hook
* refactor(assistants): pass apiServerEnabled as prop instead of using hook
Move apiServerEnabled from being fetched via useApiServer hook to being passed as a prop through component hierarchy. This improves maintainability by making dependencies more explicit and reducing hook usage in child components.
* style(AssistantsTab): add consistent margin-bottom to alert components
* feat(useAgent): add api server status checks before fetching agent
Ensure api server is enabled and running before attempting to fetch agent data
* feat: intercept webview keyboard shortcuts for search functionality
Implemented keyboard shortcut interception in webview to enable search functionality (Ctrl/Cmd+F) and navigation (Enter/Escape) within mini app pages. Previously, these shortcuts were consumed by the webview content and not propagated to the host application.
Changes:
- Added Webview_SearchHotkey IPC channel for forwarding keyboard events
- Implemented before-input-event handler in WebviewService to intercept Ctrl/Cmd+F, Escape, and Enter
- Extended preload API with onFindShortcut callback for webview shortcut events
- Updated WebviewSearch component to handle shortcuts from both window and webview
- Added comprehensive test coverage for webview shortcut handling
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix lint
* refactor: improve webview hotkey initialization and error handling
Refactored webview keyboard shortcut handler for better code organization and reliability.
Changes:
- Extracted keyboard handler logic into reusable attachKeyboardHandler function
- Added initWebviewHotkeys() to initialize handlers for existing webviews on startup
- Integrated initialization in main app entry point
- Added explanatory comment for event.preventDefault() behavior
- Added warning log when webContentsId is unavailable in WebviewSearch
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* feat: add WebviewKeyEvent type and update related components
- Introduced WebviewKeyEvent type to standardize keyboard event handling for webviews.
- Updated preload index to utilize the new WebviewKeyEvent type in the onFindShortcut callback.
- Refactored WebviewSearch component and its tests to accommodate the new type, enhancing type safety and clarity.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
* fix lint
---------
Co-authored-by: Claude <noreply@anthropic.com>
* feat: replace update dialog handling with quit and install functionality
* refactor: remove App_ShowUpdateDialog and implement App_QuitAndInstall in IpcChannel
* update ipc.ts to handle quit and install action
* modify AppUpdater to include quitAndInstall method
* adjust preload index to invoke new quit and install action
* enhance AboutSettings to manage update dialog state and trigger quit and install
* fix(AboutSettings): handle null update info in update dialog state management
* fix(UpdateDialog): improve error handling during update installation and enhance release notes processing
* fix(AppUpdater): remove redundant assignment of releaseInfo after update download
* fix(IpcChannel): remove UpdateDownloadedCancelled enum value
* format code
* fix(UpdateDialog): enhance installation process with loading state and error handling
* update i18n
* fix(i18n): Auto update translations for PR #10569
* feat(UpdateAppButton): integrate UpdateDialog and update button functionality for better user experience
* fix(UpdateDialog): update installation handler to support async operation and ensure modal closes after installation
* refactor(AppUpdater.test): remove deprecated formatReleaseNotes tests to streamline test suite
* refactor(update-dialog): simplify dialog close handling
Replace onOpenChange with onClose prop to directly handle dialog closing
Remove redundant handleClose function and simplify button onPress handler
---------
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: icarus <eurfelux@gmail.com>
- Changed imports to use 'type' for type-only imports in various files, improving clarity and potentially optimizing the build process.
- Adjusted imports in files related to agents, models, and types to ensure consistency in type usage.