214 Commits

Author SHA1 Message Date
Innei
f8be760115 fix(desktop): sidebar background based on systemTheme (#11143)
Signed-off-by: Innei <tukon479@gmail.com>
2026-01-04 12:38:42 +08:00
Arvin Xu
d8deaddedd feat: add work path for local system (#11128)
*  feat: support to show working dir

* fix style

* update docs

* update topic

* refactor to use chat config

* inject working Directory

* update i18n

* fix tests
2026-01-03 16:22:22 +08:00
Innei
f9d991b26c Merge branch 'next' into dev 2025-12-31 14:58:42 +08:00
Innei
4faa65c6af feat(model): improve model list UI and add disabled models management (#11036)
*  feat(model): improve model list UI and add disabled models management

- Enhanced DisabledModels component with better UI/UX
- Updated ModelList layout and interactions
- Added repository methods for disabled model management
- Improved AI model service and router functionality
- Added tests for new functionality

*  feat(DisabledModels): enhance loading and rendering logic for disabled models

- Implemented pagination and dynamic loading for disabled models
- Improved state management for visible models and loading conditions
- Ensured unique model entries in the displayed list
- Updated component to handle provider changes effectively

Signed-off-by: Innei <tukon479@gmail.com>

* fix(DisabledModels): handle edge case for last page in pagination logic

- Added a check to ensure lastPage is defined before evaluating pagination end conditions
- Improved robustness of loading state management in DisabledModels component

Signed-off-by: Innei <tukon479@gmail.com>

* lint

* lint

* lint

---------

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-30 16:49:12 +08:00
Innei
9db8da82f6 feat: enhance macOS desktop permissions and onboarding (#11016)
* feat: enhance macOS desktop permissions and onboarding

- Improve screen recording access request with dual-method approach
  (Electron API + getDisplayMedia trigger for TCC registration)
- Add auto-add functionality for Full Disk Access using AppleScript
- Make onboarding flow platform-aware (skip Screen3 on non-macOS)
- Add NSAppleEventsUsageDescription and NSScreenCaptureUsageDescription
- Add comprehensive unit tests for permission flows

* feat: implement full disk access automation and enhance onboarding messages

* feat: enhance Screen5 with context menu support and update theme background color
2025-12-30 16:06:44 +08:00
Innei
34a6312668 feat: enhance desktop onboarding with sign out and localization (#11033)
*  feat(onboarding): add English and Chinese localization for desktop onboarding screens

*  feat(onboarding): implement sign out functionality and enhance onboarding experience

*  feat(remote-server): implement broadcast for remote server configuration updates

* update
2025-12-29 21:03:08 +08:00
huangkairan
812ed7db15 fix: updater not work on Windows (#11027) 2025-12-29 16:55:51 +08:00
Innei
770c87256b 🐛 fix: locale resolve bug with ESM module loading (#11018)
* 🐛 fix: simplify translation key access and add fallback logic

- Remove special handling for 'models' and 'providers' namespaces in create.ts
- Use flat key structure (direct object access) instead of nested get()
- Add fallback to default module when locale JSON is missing
- Add tests for missing key fallback behavior

* 🐛 fix: locale resolve bug with ESM module loading

Fix locale resolution in desktop and server environments by properly handling ESM module loading and adding fallback logic for translation namespaces.

Also move lexical from devDependencies to dependencies in builtin-tool-page-agent to fix type-check issues.
2025-12-29 13:19:51 +08:00
Innei
b3520a2205 🐛 fix: Fix desktop test cases and refactor translations (#10955)
* 🐛 fix: fix desktop test cases and refactor translations

- Import translations from default locale instead of hardcoding
- Fix macOS menu test expectations to match actual translations
- Update I18nManager test to match implementation (fallbackLng: 'en')
- Support {{appName}} interpolation in test mocks

* 🐛 fix: add missing buildAndSetAppMenu calls in tests
2025-12-25 12:29:28 +08:00
Innei
1a4f4564f0 feat(desktop): macOS About menu should navigate to Settings About tab (#10942)
Changed the macOS app menu's "About" action from using the default Electron
about dialog to navigating to the Settings page's About tab.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-12-24 20:49:57 +08:00
Innei
dc870c7635 ♻️ refactor: rename browser identifier from 'chat' to 'app' (#10940)
Rename the main browser identifier from 'chat' to 'app' to better represent its purpose as the main application window. Also update the initial path from '/agent' to '/' for the root route.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-12-24 20:43:11 +08:00
Innei
e5f3a58056 ♻️ refactor: flatten i18n keys and extract hardcoded strings in desktop (#10939)
- Flatten all nested i18n objects to dot notation format (e.g. 'dialog.about.title')
- Add en-* locale fallback to use default TypeScript files
- Extract hardcoded Chinese strings in menu files to i18n keys
- Update 17 locale JSON files with flattened structure

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-12-24 20:29:19 +08:00
Innei
d692a37e28 ♻️ refactor: i18n formatting optimization (#10929)
* ♻️ refactor: i18n formatting optimization

*  feat(i18n): update localization strings for clarity and consistency across chat, discover, and settings components

*  feat(i18n): update Chinese localization strings for improved clarity and consistency across various components, including chat, onboarding, and settings

* 🗑️ chore(i18n): remove outdated localization files for multiple languages to streamline the project and improve maintainability

*  feat(i18n): enhance localization loading logic to improve language handling and streamline imports for default and normalized locales

* 🐛 fix(i18n): restore English i18n keys that were incorrectly changed to Japanese characters

*  chore(i18n): Adjust Latin language locales for terminology consistency (#10933)

* This comprehensive update ensures all Latin language locales (de-DE, fr-FR, es-ES, it-IT, pt-BR, nl-NL, pl-PL) follow the microcopy style guide's terminology requirements.

**Total: 557 changes across 7 Latin locales**

1. **"Plugin" → "Skill"**
   - Fixed terminology inconsistency across all Latin languages
   - UI elements now consistently use "Skill" instead of localized equivalents
   - Includes both singular and plural forms: `plugin/Skill`, `plugins/Skills`

2. **"LobeChat" → "LobeHub"**
   - Updated brand name references to current branding

3. **"Agent" Terminology Consistency**
   - French: Fixed inconsistent "Assistant" → "Agent" usage in UI elements
   - Ensured consistent terminology across all languages

- **de-DE (German)**: 267 changes
- **fr-FR (French)**: 94 changes (including 7 Agent→Assistant fixes)
- **es-ES (Spanish)**: 39 changes
- **it-IT (Italian)**: 59 changes (including 18 plugin→skill fixes)
- **pt-BR (Portuguese)**: 58 changes
- **nl-NL (Dutch)**: 62 changes
- **pl-PL (Polish)**: 28 changes

- All 37 locale JSON files for each language (259 total files)
- Includes: auth.json, chat.json, common.json, discover.json, plugin.json, setting.json, etc.

1. **Fixed Terminology**: Following microcopy guide's fixed terminology rules
2. **Brand Consistency**: Changed all brand references to "LobeHub"
3. **Natural Localization**: Maintained natural language patterns while ensuring consistency
4. **User Experience**: Improved consistency across all Latin language interfaces

Two utility scripts for future locale maintenance:
- `scripts/adjust-latin-locales.py` - For common.json specific adjustments
- `scripts/adjust-latin-locales-full.py` - For comprehensive adjustments across all files

- All changes maintain backward compatibility
- No breaking changes to functionality
- JSON files validated and remain syntactically correct
- Changes reviewed against English base for consistency

---------

Co-authored-by: canisminor1990 <i@canisminor.cc>

*  feat(i18n): update welcome and group activity localization strings for improved clarity and consistency

*  chore(i18n): add ESLint directives to welcome localization file for improved code quality

* 🐛 fix(i18n): add missing footer translation keys for discover page

*  feat(i18n): restore footer translation keys for discover page

---------

Co-authored-by: canisminor1990 <i@canisminor.cc>
2025-12-24 17:54:42 +08:00
CanisMinor
024aeb2e4e 💄 style: Update i18n microcopy (#10905)
* chore: update i18n

* chore: update i18n

* chore: update i18n

* chore: update i18n

* chore: update i18n

* chore: update i18n

* chore: update i18n

* chore: update i18n translations and placeholders across multiple components

Signed-off-by: Innei <tukon479@gmail.com>

* chore: update i18n translations for consistency in terminology across chat, onboarding, and settings components

Signed-off-by: Innei <tukon479@gmail.com>

* chore: update i18n translations to replace 'assistant' with 'agent' and ensure consistency across all components

Signed-off-by: Innei <tukon479@gmail.com>

* chore: update model descriptions in locales for clarity and accuracy

Signed-off-by: Innei <tukon479@gmail.com>

* feat: extract hard code string

Signed-off-by: Innei <tukon479@gmail.com>

* feat: enhance Chinese localization with new proxy and sync settings, update dialog messages for version checks and OAuth authorization

Signed-off-by: Innei <tukon479@gmail.com>

* chore: flatten

* chore: standardize localization keys by flattening nested structures across multiple languages

Signed-off-by: Innei <tukon479@gmail.com>

* chore: refine i18n documentation by consolidating key naming conventions and workflow guidelines for translation management

Signed-off-by: Innei <tukon479@gmail.com>

* chore: update i18n

* feat: add chat title localization for improved user experience in Chinese

Signed-off-by: Innei <tukon479@gmail.com>

---------

Signed-off-by: Innei <tukon479@gmail.com>
Co-authored-by: Innei <tukon479@gmail.com>
2025-12-24 12:55:12 +08:00
Innei
e51225baa8 test: fix desktop test case (#10894)
test(logger): enhance logger tests with mocked environment variables

* Added mock for getDesktopEnv to simulate various NODE_ENV and DEBUG_VERBOSE states.
* Updated logger tests to utilize the mocked environment for consistent behavior across different log levels.
* Ensured that logger methods correctly handle production and development environments.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-24 12:54:46 +08:00
Innei
c29c02bb23 🐛 fix(desktop): prevent window resize when onboarding (#10887)
 feat: add window resizing and sizing functionality

* Implemented IPC methods for setting window size and resizability.
* Updated Browser and BrowserManager classes to handle new window settings.
* Integrated window settings in DesktopOnboarding component.
* Added new types for window size and resizability in electron-client-ipc.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-24 12:54:45 +08:00
Innei
10e048c9c5 feat: refactor desktop implement with brand new 2.0 2025-12-24 12:54:35 +08:00
YuTengjing
458cbf4d5c 🔨 chore: track user last active time (#10733) 2025-12-11 17:14:25 +08:00
Innei
f74befadc9 ♻️ refactor(electron-main): client ipc decorate (#10679)
* refactor: client ipc

* refactor: server ipc

refactor: update IPC method names for consistency

Signed-off-by: Innei <tukon479@gmail.com>

fix: cast IPC return type to DesktopIpcServices for type safety

Signed-off-by: Innei <tukon479@gmail.com>

chore: add new workspace for desktop application in package.json

Signed-off-by: Innei <tukon479@gmail.com>

fix: export FileMetadata interface for improved accessibility

Signed-off-by: Innei <tukon479@gmail.com>

refactor: unify IPC mocking across test files for consistency

Signed-off-by: Innei <tukon479@gmail.com>

feat: enhance type-safe IPC flow with context propagation and service registry

- Introduced `getIpcContext()` and `runWithIpcContext()` for improved context management in IPC handlers.
- Updated `BrowserWindowsCtr` methods to utilize the new context handling.
- Added `McpInstallCtr` to the IPC constructors registry.
- Enhanced README with details on the new type-safe IPC features.

Signed-off-by: Innei <tukon479@gmail.com>

refactor: enhance IPC method registration for improved type safety

- Updated `registerMethod` in `IpcHandler` and `IpcService` to accept variable argument types, enhancing flexibility in method signatures.
- Simplified the `ExtractMethodSignature` type to support multiple arguments.

Signed-off-by: Innei <tukon479@gmail.com>

chore: add global type definitions and refactor import statements

- Introduced a new global type definition file to support Vite client imports.
- Refactored import statements in `App.ts` and `App.test.ts` to remove unnecessary type casting for `import.meta.glob`, improving code clarity.

Signed-off-by: Innei <tukon479@gmail.com>

* refactor: make groupName in BrowserWindowsCtr readonly for better encapsulation

Signed-off-by: Innei <tukon479@gmail.com>

* refactor: update IPC method registration and usage for improved type safety and consistency

- Replaced `@ipcClientEvent` with `@IpcMethod()` in various controllers to standardize IPC method definitions.
- Enhanced the usage of `ensureElectronIpc()` for type-safe IPC calls in service layers.
- Updated `BrowserWindowsCtr` and `NotificationCtr` to utilize the new IPC method structure, improving encapsulation and clarity.
- Refactored service methods to eliminate manual string concatenation for IPC event names, ensuring better maintainability.

Signed-off-by: Innei <tukon479@gmail.com>

---------

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-09 15:01:18 +08:00
Arvin Xu
83fc2e8bc6 🐛 fix(desktop): add token refresh retry mechanism (#10575)
* 🐛 fix(desktop): add token refresh retry mechanism

- Add `async-retry` library for exponential backoff retry
- Implement retry logic in RemoteServerConfigCtr.refreshAccessToken()
  - Retries up to 3 times with exponential backoff (1s, 2s, 4s)
  - Distinguishes between retryable (network) and non-retryable (invalid_grant) errors
- Update AuthCtr to only clear tokens for non-retryable errors
  - Transient errors now preserve tokens for retry on next cycle
- Add isNonRetryableError() helper method

This fixes the issue where temporary network problems would cause
users to be logged out and require re-authorization.

Closes LOBE-1368

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* update

* 🐛 fix: treat deterministic failures as non-retryable errors

Add deterministic failures to non-retryable error list:
- 'No refresh token available' - refresh token missing from storage
- 'Remote server is not active or configured' - config invalid/disabled
- 'Missing tokens in refresh response' - server returned incomplete response

These permanent failures now trigger immediate token clearing and
authorizationRequired broadcast instead of infinite retry loop.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* 📝 docs: clarify issue status workflow - use "In Review" after PR creation

- Change workflow to set status to "In Review" when PR is created
- "Done" status should only be set after PR is merged
- Add note about Linear-GitHub integration for auto status update

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* 🐛 fix: add grace period for consumed RefreshToken

When rotateRefreshToken is enabled, the old refresh token is consumed
when a new one is issued. If the client fails to receive/save the new
token (network issues, crashes), the login state is lost.

This adds a 3-minute grace period allowing consumed refresh tokens to
be reused, giving clients a chance to retry the refresh operation.

Changes:
- Add REFRESH_TOKEN_GRACE_PERIOD_SECONDS constant (180s)
- Modify find() to allow RefreshToken reuse within grace period
- Add unit tests for grace period behavior

Closes LOBE-1369

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* 📝 style: translate adapter test descriptions to English

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-12-03 15:46:14 +08:00
Arvin Xu
a057953480 test: fix test types and improve desktop ci workflow (#10552)
* fix lint

* improve ci

* update ci

* fix types
2025-12-02 20:16:34 +08:00
Arvin Xu
a73c9d1b9b test(desktop): improve test coverage for multiple modules (#10543)
*  test(desktop): improve test coverage for multiple modules

Add comprehensive unit tests for desktop app modules to improve overall test coverage from 29% toward 60%+:

- Preload Scripts: routeInterceptor, invoke, streamer, electronApi (49 tests)
- Menu System: macOS, windows, linux, BaseMenuPlatform (108 tests)
- Core UI (Tray): Tray, TrayManager, MenuManager (78 tests)
- Services: fileSearchSrv (21 tests)
- Utilities: file-system, logger (25 tests)

Total: 281 new test cases covering critical desktop functionality.

Closes LOBE-1215, LOBE-1216, LOBE-1217, LOBE-1218, LOBE-1219

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* 🐛 fix(desktop): update test assertion to support co-located test files

The integration test for file search was failing because it expected all
test files to be in __tests__ directories, but some test files are now
co-located with their source files (e.g., src/preload/*.test.ts).

Updated the assertion to accept both patterns.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* 📦 chore(desktop): add happy-dom to devDependencies

The routeInterceptor.test.ts uses @vitest-environment happy-dom for
browser API testing. Added happy-dom to desktop package devDependencies
to ensure CI can find the package.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-12-02 02:52:26 +08:00
Arvin Xu
9edb7adfa7 test(desktop): add unit tests for Core Browser module (#10535)
Add comprehensive unit tests for Desktop Core Browser:
- Browser.ts (39 tests)
- BrowserManager.ts (32 tests)

Total: 71 tests (all passed)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-12-01 23:39:08 +08:00
Arvin Xu
66abd805ac test: add controllers tests for desktop (#10536)
*  test: add unit tests for UploadFileCtr

Add comprehensive unit tests for UploadFileCtr covering:
- uploadFile: file upload functionality
- getFileUrlById: get file path by ID
- getFileHTTPURL: get HTTP URL for file
- deleteFiles: delete multiple files
- createFile: create new file

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

*  test: add unit tests for RemoteServerSyncCtr

Add comprehensive unit tests for RemoteServerSyncCtr covering:
- proxyTRPCRequest: proxy request handling with various configurations
- 401 token refresh and retry mechanism
- Error handling for network failures
- afterAppReady: IPC handler registration
- destroy: cleanup resources

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

*  test: add unit tests for McpInstallCtr

Add comprehensive unit tests for McpInstallController covering:
- Missing required parameters validation
- Third-party marketplace schema requirement
- Official market without schema
- Invalid JSON schema parsing
- Schema structure validation
- Schema identifier matching
- Valid stdio and http schema handling
- Invalid URL validation for http config
- Unknown config type handling
- BrowserManager availability check
- Optional fields handling
- Env configuration support

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

*  test: add unit tests for SystemCtr

Add comprehensive unit tests for SystemController covering:
- getAppState: system info and user paths
- checkAccessibilityForMacOS: macOS accessibility check
- openExternalLink: external link opening
- updateLocale: locale update and broadcast
- updateThemeModeHandler: theme mode update
- getDatabasePath: database path retrieval
- getDatabaseSchemaHash: schema hash read/write
- getUserDataPath: user data path
- setDatabaseSchemaHash: schema hash persistence
- afterAppReady: system theme listener initialization

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

*  test: add unit tests for NotificationCtr

Add comprehensive unit tests for NotificationCtr covering:
- afterAppReady: notification setup for different platforms
- showDesktopNotification: notification display with various conditions
- isMainWindowHidden: window visibility state detection
- Error handling for notification failures
- Platform-specific behavior (Windows, macOS)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

*  test: add unit tests for RemoteServerConfigCtr

Add comprehensive unit tests for RemoteServerConfigCtr covering:
- getRemoteServerConfig: configuration retrieval
- setRemoteServerConfig: configuration update
- clearRemoteServerConfig: configuration and token clearing
- saveTokens: encrypted and unencrypted token storage
- getAccessToken/getRefreshToken: token decryption
- clearTokens: token memory and store clearing
- getTokenExpiresAt: expiration time retrieval
- isTokenExpiringSoon: expiration check with buffer
- refreshAccessToken: token refresh with error handling
- afterAppReady: token loading from store
- getRemoteServerUrl: URL resolution for cloud/selfHost modes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-12-01 22:50:45 +08:00
Arvin Xu
fa492b48fa test(desktop): add unit tests for Core Infrastructure module (#10533)
Add comprehensive unit tests for Desktop Core Infrastructure:
- UpdaterManager.ts (32 tests, 5 skipped due to require() limitation)
- StaticFileServerManager.ts (20 tests)
- ProtocolManager.ts (24 tests)
- I18nManager.ts (21 tests)
- StoreManager.ts (10 tests)
- IoCContainer.ts (15 tests)

Total: 122 tests (117 passed, 5 skipped)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-12-01 21:03:07 +08:00
renovate[bot]
8da7cc4418 Update all non-major dependencies (#10372)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-30 19:39:26 +08:00
Arvin Xu
1fb7b292ca ️ perf: move settings into one page (#10229)
* move settings into one page

* fix: change the jump link to react-router-dom

---------

Co-authored-by: ONLY-yours <1349021570@qq.com>
2025-11-24 15:10:41 +08:00
renovate[bot]
19f7d74652 Update dependency electron-vite to v4 (#9007)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-23 15:41:12 +08:00
renovate[bot]
5518b822ca Update dependency vite to v7 (#10328)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-23 15:39:15 +08:00
LobeHub Bot
c316414277 test: add unit tests for FileService (#10341)
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-21 21:03:05 +08:00
LobeHub Bot
1ed9424166 🌐 chore: translate non-English comments to English in services and desktop modules (#10339)
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-21 11:43:09 +08:00
LobeHub Bot
e8c7d1c568 🌐 chore: translate non-English comments to English in networkProxy (#10293)
🌐 chore: translate non-English comments to English in networkProxy module

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-19 11:42:31 +08:00
Arvin Xu
3785a7109a feat: edit local file render & intervention (#10269)
* support editFile render

* clean and add tests

* improve hover state

* support edit local file

* fix tests

* fix desktop build

* fix desktop build

* Revert "fix desktop build"

This reverts commit 6ce58b2eeb.
2025-11-18 02:07:58 +08:00
renovate[bot]
b76e3c85b9 Update all non-major dependencies (#10177)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-17 09:56:56 +08:00
Arvin Xu
4388270cf4 📌 chore: pin electron to 38.x (#10204)
Downgrade electron from 39.x to 38.x for stability

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-11-14 10:14:39 +08:00
Arvin Xu
428f05ac8a 💄 style: make OpenAI Response API by default (#10202)
* update i18n

* 修正测试

* fix macOS impl

* fix directory params

* refactor the builtin render implement

* remove unused sql

* fix tests
2025-11-14 02:13:39 +08:00
Arvin Xu
39cdb2057e feat: support bash tools in local system (#9676)
* wip for bash system

* refactor

* fix remark issue

* 完成批准实现

* refactor toolIntervention

* refactor toolIntervention

* use user tool config

* show InterventionModeSelector

* finish local file mode

* fix error

* update

* update i18n

* revert

* fix bug
2025-11-13 22:18:05 +08:00
Shinji-Li
8d362cf6b6 feat:support LobeHub MarketPlace (#8841)
* feat: 链接market 做基本的市场接驳功能

* feat: 重写分享助手的页面

* feat: 新增market-auth 的 oidc 方案

* feat: 增加初次agent发布链路和更agent逻辑

* feat: 增加二次添加助手时候的提示

* feat: 重新授权时候唤起新的重新授权而不是自动 token 换取

* feat: 添加market-auth-callback的 layout

* feat: 调整env 中的market 引用

* fix: 解决url 双/导致的路径请求问题

* fix: fix build error

* feat: 更新sitemap 的生成逻辑

* feat: 更新pglite的session meta 定义,增加 marketIdentifier

* feat: 增加个人信息存储的逻辑 & 整理发布 agent 时候按钮的整体逻辑

* fix: delete 0030

* feat: add search myown in discover

* feat: clean cthe code & refactor agents showpannel

* feat: support assistant detail pages have unpublish & achiave hint

* feat: change text render type

* feat: add submit mode style fixed

* fix: fixed migrations

* feat: update agent publish version modal

* feat: update market publish button

* feat: update exmaple &summary show case

* feat: add token show in publish modal

* feat: add verison show tags antd version? params search

* feat: add desktop market auth request way

* feat: delete market-oidc second path,change all to base url

* feat: change sdk & api into url const & change market api into servers

* feat: change all api into /market server path

* feat: change the migrations insert position

* feat: support assistant origin checkout feature

* feat: change the item show place

* feat: add market source switch components

* feat: add 'force-dynamic' in discord/detail page

* feat: change the describe name

* feat: styles & locals add

* feat: add locals

* feat: fixed market update locals

* feat: update market-oidc layout

* feat: delete some types

* feat: support leacgcy params change

* feat: change the oidc url

* feat: agent detial page should have status show page

* feat: add db migrations

* test: update test

* feat: delete database change & update i18n

* fix: rollback mirgration

* fix: change mirgration

* fix: back snapshot

* Update print statement from 'Hello' to 'Goodbye'
2025-11-11 23:16:19 +08:00
LobeHub Bot
17efa0bd52 test: add unit tests for network proxy module (#10104)
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-08 15:08:11 +08:00
renovate[bot]
46ccddcd24 Update dependency electron to v39 (#9971)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-06 13:28:24 +08:00
Shinji-Li
9ab77b2ea7 🐛 fix: should install new version after quit this instance (#10064)
fix: should install new version after quit this instance
2025-11-05 21:49:27 +08:00
Arvin Xu
7cca60fcb8 🐛 fix: fix send message (#10041)
* fix

* Revert "Update dependency vite to v7 (#9984)"

This reverts commit f1ffaff96f.
2025-11-04 17:38:40 +08:00
LobeHub Bot
aae047265e 🌐 chore: translate non-English comments to English in desktop controllers (#10034)
* 🌐 chore: translate non-English comments to English in desktop controllers

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* 🧪 fix: update Desktop test expectations to match English error messages

- Updated TrayMenuCtr.test.ts to expect English error messages instead of Chinese
- Fixes failing tests after comment translation changes
- Changed '托盘通知仅在 Windows 平台支持' to 'Tray notifications are only supported on Windows platform'
- Changed '托盘功能仅在 Windows 平台支持' to 'Tray functionality is only supported on Windows platform'

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Arvin Xu <arvinxx@users.noreply.github.com>

---------

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Arvin Xu <arvinxx@users.noreply.github.com>
2025-11-04 13:38:31 +08:00
renovate[bot]
f1ffaff96f Update dependency vite to v7 (#9984)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-04 13:13:52 +08:00
Arvin Xu
20666db14f 🐛 fix: fix oidc auth timeout issue on the desktop (#10025)
* add tests

* fix auth timeout issue

* update locale

* fix tests
2025-11-04 10:12:54 +08:00
YuTengjing
44776b40bc 👷 build: nodejs 24 (#10003)
* build: upgrade node 24

* build: run pnpm update

* fix: tsgo not support baseUrl
2025-11-03 12:56:15 +08:00
Arvin Xu
abb71ec846 feat: upgrade to Next 16 (#9851)
* upgrade next 16

* try to fix

* try to fix

* upgrade

* fix sitemap build

* try to fix build

* try to fix build with next 16

* fix docker permission

* 🔒 fix(ci): fix code injection vulnerability and permissions in docker workflow

- Add pull-requests: write permission to allow PR comments
- Fix code injection vulnerability by using env variables instead of direct interpolation
- Prevent potential security risks from malicious branch names in pull_request_target events

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* 🔧 chore(ci): change desktop pr build to use pull_request_target

- Change from pull_request to pull_request_target to access secrets and write permissions
- Update permissions from read-all to specific write permissions for contents and pull-requests
- This allows PR builds to create releases and comment on PRs from forks

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* add comment

* fix on

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-11-02 00:53:13 +08:00
Shinji-Li
f46cc50e15 ♻️ refactor: change files page from RSC to SPA mode to improve performance (#9846)
* feat: change files page to spa

* feat: add height 100%

* fix: delete useless code

* feat: update files preview from severs to client

* feat: change download action to detail right place

* feat: change the dir name and the path

* feat: change the useNavigate to the router outer

* style: use flex 1 to get all width

* feat: update files?filesId to get files loading

* feat: change all files and repo url to knowledge url

* feat: close the knowledge/base settings page & update createNew onSuccess into Modal

* feat: update the knowledge base open judge
2025-10-29 00:02:51 +08:00
Arvin Xu
295e8fc3b2 💄 style: improve local system tools render (#9853)
* refactor the local system tools render

* fix build

* pre merge intervention
2025-10-23 17:14:35 +08:00
Shinji-Li
b59ee0aabe ♻️ refactor: change discover page from RSC to SPA to improve performance (#9828)
* feat: change discord page to spa

* fix: change locals

* feat: update router change

* fix: revert some files

* feat: add model provider detail page use link

* fix: add trpc back

* feat: update e2e timeout time

* feat: change discord page to spa

* fix: change locals

* feat: update router change

* fix: revert some files

* feat: add model provider detail page use link

* fix: add trpc back

* feat: update e2e timeout time

* fix: use reactrouter-dom link replace next link
2025-10-22 23:35:49 +08:00