69 Commits

Author SHA1 Message Date
Rdmclin2
942412155e feat: support skill activite switch back (#12970)
* feat: support skill activate mode

* feat: support skill panel search

* chore: update i18n files

* chore: update i18n files
2026-03-13 23:15:31 +08:00
YuTengjing
15a95156f3 💄 style: update i18n locales (#12809) 2026-03-08 13:25:46 +08:00
Innei
58fb45d251 🐛 fix: add unsaved changes guard to prevent data loss on navigation (#12332)
* 🐛 fix: add unsaved changes guard to prevent data loss on navigation

Migrate from BrowserRouter to createBrowserRouter (data router API) to enable
route-level navigation blocking. Add UnsavedChangesGuard component that uses
useBlocker to prevent leaving editor pages with unsaved changes, auto-saving
before navigation. Remove legacy renderRoutes/RouteConfig dead code.

Fixes LOBE-4973

* 🔧 chore: remove unused ESLint suppressions for welcome.ts

Cleaned up eslint-suppressions.json by removing suppressions related to sort-keys-fix and typescript-sort-keys for welcome.ts, as they are no longer needed.

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

*  perf: skip JSON snapshot on selection-only Lexical updates

Reintroduce dirtyElements/dirtyLeaves guard before editor.getDocument('json')
and deep-equality check, avoiding O(document-size) work on caret/selection
updates that do not mutate content.

* 🔧 test: update UnsavedChangesGuard tests to use message.destroy instead of message.success

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

* fix: dayjs init

- Moved dayjs plugin extensions (relativeTime, utc, isToday, isYesterday) to src/initialize.ts for centralized initialization.
- Removed redundant extensions from individual components to prevent duplicate calls.
- Updated locale loading logic in Locale.tsx to ensure correct dayjs locale handling.

This change improves performance by ensuring dayjs plugins are only extended once during application initialization.

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

* refactor: update router configuration to use RouteObject type

- Changed the type of desktopRoutes from RouteConfig[] to RouteObject[] for better compatibility with react-router-dom.
- Removed the RouteConfig interface from the router utility file to streamline the codebase.

This refactor enhances the router's integration with the latest routing library standards.

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

* feat: enhance Vite configuration and chunk management

- Added a function to suppress Vite's default URL print in the server configuration.
- Updated chunk file naming strategy in sharedRollupOutput to organize output files into specific directories based on chunk type (i18n, vendor, assets).
- Removed redundant dayjs chunk handling logic to streamline the manualChunks function.

These changes improve the clarity of the build output and enhance the server's configuration options.

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

*  feat: add collapsible error stack with __CI__ default expand

- Add Collapse + Highlighter for error stack in Error component
- Define __CI__ in Vite (sharedRendererDefine) based on process.env.CI
- Add __CI__ to global.d.ts
- Add error.stack i18n to all 18 locales

Made-with: Cursor

* chore: update build:spa:copy script to handle multiple asset directories

- Modified the build:spa:copy script in package.json to iterate over multiple directories (assets, i18n, vendor) for both desktop and mobile builds, improving the asset copying process.

This change enhances the build process by ensuring all relevant directories are copied correctly.

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

* 🐛 fix: mark initialize.ts as sideEffects to prevent tree-shaking

sideEffects: false caused Rollup to drop the side-effect-only import
of initialize.ts, removing dayjs.extend(relativeTime) and enableMapSet()
from the production bundle.

---------

Signed-off-by: Innei <tukon479@gmail.com>
2026-03-03 18:50:57 +08:00
YuTengjing
f26d0df93d 🐛 fix: show notification when file upload fails due to storage plan limit (#12176)
* 🐛 fix: show notification when file upload fails due to storage plan limit

Previously, when file storage exceeded the plan limit, the TRPC
middleware threw a FORBIDDEN error that was silently swallowed by
the upload components with no user feedback. Now `uploadWithProgress`
catches this specific error and displays a notification guiding
users to upgrade or free up space.

* 🌐 chore: run i18n for upload storage limit error message

* 🌍 i18n: update model descriptions across multiple languages

Added new model descriptions and improved existing ones in Arabic, Bulgarian, German, French, Italian, Japanese, and Korean locales. This update enhances the clarity and detail of model capabilities, ensuring better user understanding and accessibility.
2026-02-07 22:38:49 +08:00
YuTengjing
9b47ad20e4 🐛 fix: various bug fixes and cleanups (#11870) 2026-01-27 12:30:58 +08:00
YuTengjing
395595a2c8 feat: remove Clerk authentication code (#11711) 2026-01-23 14:41:22 +08:00
René Wang
bcbdc88742 feat: Mention agent in CMDK (#11611)
* feat: mention agent in CMDK

* feat: Update translation

* fix: performance issue

* fix: lint error
2026-01-20 19:14:35 +08:00
arvinxx
80f511cd6e 🌐 style: rerun i18n 2025-12-31 15:20:11 +08:00
YuTengjing
8b67718158 docs: update subscription locale json 2025-12-29 16:48:39 +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
arvinxx
2e6fd07c19 🌐 style: update i18n 2025-12-24 12:54:42 +08:00
LobeHub Bot
1c9f0d9b72 🤖 style: update i18n (#10291)
💄 style: update i18n

Co-authored-by: canisminor1990 <17870709+canisminor1990@users.noreply.github.com>
2025-11-19 09:22:50 +08:00
LobeHub Bot
80b0999467 🤖 style: update i18n (#9832)
💄 style: update i18n

Co-authored-by: canisminor1990 <17870709+canisminor1990@users.noreply.github.com>
2025-10-22 11:05:01 +08:00
René Wang
03c28385e5 feat: support Group Chat, Mention, and Multi-Agent Orchestration with feature flag (#8976)
* feat: implement group chat functionality

* fix

* update

* revert pglite mock

* fix: Add missing test

* fix mention

* fix mention

* lint: Clear unused varibles

* fix: type check

* fix: Coverage

* build: Add missing test

* fix: add mention back

* fix: Add missing test

* fix: Add test for topic

* feat: Group chat fallback style

* fix: Revert unncessary files

* fix: circular deps

* feat: tool usage

* fix: Replace debug info

* feat: Update i18n

* opti: Better prompr

* fix claude

* feat: Filter model without function calling

* fix: DM reduction

* lint: Address build error

* fix: Test error

* feat: Store model info

* style: Clean up welcome messaeg

* feat: Use new welcome message

* fix: inbox not working

* fix: inbox not working

* fix: type error

* feat: Optimize prompt

* fix: Revert unintentional changes

* lint: Remove unused code

* fix: better test

* fix: Use debug

* refact: Move normalization postion

* opti: Better prompt

* opti: Better prompt

* opti: Better prompt

* lint: Clear console.log

* fix: Update test snap

* fix: test error

* fix: Unexpectly test fail

---------

Co-authored-by: arvinxx <arvinx@foxmail.com>
2025-10-16 22:16:40 +08:00
sxjeru
5d4ed11ad6 💄 style: Support Gemini URL context tool (#8731)
* feat: 添加 urlContext 支持到多个模型和配置接口

* feat: 在 googleChatModels 中添加 urlContext 参数支持

* feat: 调整 ControlsForm 中的最小宽度,更新 urlContext 标签样式,优化 LobeGoogleAI 中的工具调用逻辑

* feat: 调整 ControlsForm 中思维预算滑块和 urlContext 的最小宽度及样式

* fix

*  feat: 添加 URL 上下文提取功能描述

* i18n

* Update chat.ts

* update i18n

---------

Co-authored-by: Arvin Xu <arvinx@foxmail.com>
2025-08-29 17:23:09 +08:00
YuTengjing
74d9bb5b6a feat: add gemini 2.5 flash image for vertex ai (#8943) 2025-08-27 15:38:19 +08:00
Arvin Xu
853a09af1b feat(plugin): support Streamable HTTP MCP Server Auth (#8425)
*  feat: support http streamable auth and headers

*  feat: support http streamable auth and headers

* improve

* improve token

* add i18n

* update i18n
2025-07-14 20:34:39 +08:00
YuTengjing
095de57675 feat: support AI Image (#8312)
Co-authored-by: canisminor1990 <i@canisminor.cc>
2025-07-14 20:29:57 +08:00
Arvin Xu
71683b77be 💄 style: improve mcp stdio custom field (#7632)
* add i18n

* update
2025-04-29 16:20:42 +08:00
Arvin Xu
57f18ff0c8 feat: support pglite and postgres data export (#5581)
* wip

* update

* fix server side import

* fix import

* fix test
2025-03-29 18:01:00 +08:00
Arvin Xu
a4558a44c4 🐛 fix: update create message loading issue (#7116) 2025-03-24 18:59:03 +08:00
Arvin Xu
f7a713848f 💄 style: add some error types (#6377)
* add some error type

* fix svix build
2025-02-21 03:10:48 +08:00
Arvin Xu
6667334496 🐛 fix: fix a feature flag (#6354) 2025-02-20 16:02:53 +08:00
Arvin Xu
6a35f55ebc 💄 style: improve error content and console error (#6305)
* update i18n

* add console error
2025-02-19 00:14:01 +08:00
Arvin Xu
352cb90eb6 💄 style: improve serveral error code (#6299)
* improve error code

* improve CHAT MASK

* improve CHAT MASK

* update i18n

* fix tests
2025-02-18 22:55:58 +08:00
Arvin Xu
a0a95927d4 feat: support google vertex ai as a new provider (#4487)
*  feat: add vertex ai model runtime

* update

* support vertex ai with api key

* update models

* fix lint

* fix

* fix again

* Create Dockerfile.pglite

* Create docker-pglite.yml

* Update docker-pglite.yml

* fix credentials

* Update docker-pglite.yml

* fix
2025-02-18 14:48:59 +08:00
QuentinHsu
b361840cb2 🐛 fix: connection check logic (#4722) 2024-11-19 02:04:13 +08:00
Arvin Xu
6ff70895f9 feat: support group topics by time (#4603)
*  feat: support change topic display mode

* ♻️ refactor: 重构 locales 实现

* 🧪 test: fix tests

* 💄 style: use byTime mode by default

* 🌐 chore: update locale

* 🔥 chore: clean code

* 🔥 chore: clean code

*  test: add tests

* 💄 style: improve active state

* 💄 style: improve active state
2024-11-05 02:27:09 +08:00
CanisMinor
7513e3bb40 💄 style: improve user guide when user not login (#4531)
* 💄 style: Update LoginRequired notication style

* 🐛 fix: Fix signUpUrl

* 🐛 fix: Add signUpForceRedirectUrl

* 🐛 fix: Add forceRedirectUrl

* 🐛 fix: Rm ForceRedirectUrl
2024-10-29 20:43:55 +08:00
Arvin Xu
63ba4d3b7f feat: support system agent config (#4474)
* 💄 style: support custom system agent

* 💄 style: support disable query rewrite agent

* 🐛 fix: fix ModelSelect id issue

* fix issue

* fix
2024-10-25 12:22:40 +08:00
Arvin Xu
74fb5e74ed 🌐 style: improve error i18n (#4462) 2024-10-23 22:40:23 +08:00
Arvin Xu
d3109318c8 feat: add HuggingFace Model Provider (#4225)
* 🚧 wip: add hf runtime

* 💄 style: add HUGGINGFACE_MODEL_LIST

* 🚨 chore: fix lint

* 🎨 chore: fix code

* support handle stream error

* fix

* add i18n

* refactor with openai runtime

* refactor: refactor the HF implement

* 🐛 fix: fix

* 🐛 fix: fix

* 🐛 fix: fix
2024-10-12 22:35:13 +08:00
Arvin Xu
4483599683 feat: add wenxin model provider (#4018)
* add wenxinyiyan

* fix locale

* 🐛 fix: support weinxin error handle

* 🚨 chore: fix lint

* 🚨 chore: fix lint

* 优化 api key 提示弹窗

* Update wenxin.ts

* Update wenxin.ts

* Update providers.tsx

* Update index.ts

* Update wenxin.ts

* add i18n

* update i18n

* fix QuotaLimitReached

* add quota limit message

* fix i18n

* fix i18n

* fix i18n

* fix ERNIE-3.5 id

* fix rate limit code and smoothing

---------

Co-authored-by: LovelyGuYiMeng <76251800+LovelyGuYiMeng@users.noreply.github.com>
2024-09-30 14:48:33 +08:00
小云丨Arale
8eac1bd774 feat: add Github Models provider (#3869)
*  feat: add Github Models as provider

* :bug fix: sort order of ProviderList

* 💄 style: add more info for Github Models provider

*  feat: Add GitHub provider configuration

Adds support for configuring the GitHub provider in the LLM settings. It includes:

- A new `useGithubProvider` hook to define the GitHub provider configuration
- Integration of the GitHub provider in the provider list
- Localization strings for the GitHub personal access token input

The changes allow users to enter their GitHub personal access token to use GitHub-related LLM features.

* 🐛 fix: use Github Personal access tokens (classic) instead

* 💄 style: Add Invalid Github Token error type and message

Adds support for handling invalid Github Personal Access Tokens:

- Adds a new `InvalidGithubToken` error type in the `AgentRuntimeErrorType` enum
- Adds an error message for `InvalidGithubToken` in the localization files
- Configures the Github AI provider to use the new error type

This allows properly handling and displaying errors when an invalid Github token is provided.

*  test: fix test for new error type

* 🐛 fix: sort order of ProviderCards

* 💄 style: use abbreviation for Github PAT

* 💄 style: add the hyperlink for creating Github PAT

* 🌐 chore: improve desc

*  test: update test

---------

Co-authored-by: arvinxx <arvinx@foxmail.com>
2024-09-19 01:42:15 +08:00
Rubu Jam
7c08f29cf9 💄 style(ui): improve UI layout and text (#3762)
* 💄 style(ui): Adjust text layout of `loading page`

* 💄 style(ui): Adjust text layout for `404 page`

* 💄 style(ui): Adjust size of icons

* 💄 style(ui): Adjust word spacing in `waiting`

* 💄 style(ui): Adjust icon size of `Delete File` and `Delete Picture`

* 💄 style(ui): Adjust texts in `knowledge base`

* 🔧 chore: Update `i18n`

* 🔧 chore(deps): update Dependencies
2024-09-11 15:34:16 +08:00
Arvin Xu
815b366b20 ♻️ refactor: refactor brand implement for better custom (#3868)
* ♻️ refactor: refactor the branding

* ♻️ refactor: refactor the branding

* ♻️ refactor: refactor the branding to support different logo

* 🧑‍💻 style: support commercial flag to hide docs and github url

* 🧑‍💻 style: support commercial flag to hide docs and github url

*  test: fix tests

* ♻️ refactor: hide about with hideDocs env
2024-09-10 00:34:18 +08:00
Arvin Xu
86c5a99587 🐛 fix: fix clipboard copy issue and improve upload cors feedback (#3557)
* 🐛 fix: fix clipboard copy issue

* 🐛 fix: fix clipboard copy issue

* 🚸 style: improve cors upload issue

* 🚸 style: improve cors upload issue

* 🚸 style: improve cors upload issue
2024-08-22 21:55:51 +08:00
Arvin Xu
434004a3e5 🔨 chore: add i18n in advanced (#3519) 2024-08-20 02:06:17 +08:00
Arvin Xu
30d0609310 ♻️ refactor: refactor the fetch method to fix response.undefined (#3493)
* ♻️ refactor: refactor the fetchEventSource

* 🔨 scripts: improve scripts

* ♻️ refactor: refactor the Portal to better code

* 🚨 ci: fix lint

* Update index.tsx

*  test: fix test

*  test: fix test

* 🐛 fix: fix the issue of stream error

* 🌐 chore: upload i18n

* 🐛 fix: support edit the default ... message

* 🐛 fix: fix the message edge case

* 🌐 chore: upload i18n

* ♻️ refactor: refactor the code

*  test: fix tests

*  test: fix tests

* 🔧 chore: only include db file with server test

*  test: add more test

* revert

* revert

* ignore test coverage

* ignore test coverage

* ignore test coverage
2024-08-18 16:42:24 +08:00
Arvin Xu
1fa160fa1a 🐛 fix: improve tools calling error feedback when arguments are not correctly (#3150)
* update docs

* fix: fix plugin arguments issue

* Update error.ts

* 🚨 ci: fix lint

*  test: fix test

* chore: update locale
2024-07-06 01:21:53 +08:00
Arvin Xu
f33325a7e1 🌐 chore: add error locale (#3061) 2024-06-27 20:48:40 +08:00
Arvin Xu
a91d6b23a2 📝 docs: update provider docs (#2960)
* 🌐 chore: fix locale

* 📝 docs: update provider docs
2024-06-21 10:37:59 +08:00
Arvin Xu
7bb4fec7f6 ♻️ refactor: refactor model provider implement (#2801)
* ♻️ refactor: refactor the provider

* ♻️ refactor: refactor the error code

*  test: fix test

*  test: fix test

* 🌐 chore: update i18n

* 🌐 chore: update i18n
2024-06-07 00:30:06 +08:00
wyw
75cd63aa39 feat: Support Qwen as new model provider (#2715)
Co-authored-by: mingholy.lmh <mingholy.lmh@gmail.com>
2024-06-04 11:38:56 +08:00
Arvin Xu
f99c9ce90e 💄 style: add optimistic loading for image uploading (#2700)
* 🚸 refactor: add optimistic loading for file uploading

*  test: fix tests

* 🚸 style: improve error fallback

* ♻️ refactor: improve swr type

*  test: fix tests
2024-05-28 23:57:14 +08:00
Arvin Xu
5a1706b962 🌐 chore: add i18n 2024-05-21 19:30:58 +08:00
Rubu Jam
18028f340d feat: Support DeepSeek as new model provider (#2446)
*  feat: support DeepSeek as provider

*  feat: Support DeepSeek as new model provider

*  feat: Support DeepSeek as new model provider

*  feat: Support DeepSeek as new model provider

*  feat: Support DeepSeek as new model provider

*  feat: Support DeepSeek as new model provider

*  feat: Support DeepSeek as new model provider

*  feat: Support DeepSeek as new model provider

*  feat: Support DeepSeek as new model provider

*  feat: Support DeepSeek as new model provider

* 💄 style: Translate some content

*  feat: Support DeepSeek as new model provider

* 🐛 fix: Clean up the code and resolve a bug
2024-05-14 10:53:08 +08:00
Arvin Xu
bf8ef1f862 feat: support clerk as auth provider (#2374)
*  feat: support clerk as auth provider

* ♻️ refactor: refactor the auth env config to `s3-oss/env`

*  test: add test for the theme mode and action

* 💄 style: fix style

* 🌐 chore: update locale

*  test: add more test

* 🎨 chore: clean code

* 📝 docs: update docs
2024-05-05 23:15:40 +08:00
CanisMinor
938a3e99f5 💄 style: add 404 and Error page (#2299)
*  feat: Add 404 and Error page

* 🐛 fix: Fix dynamic ssr in error page

*  perf: Dynamic import Sentry
2024-04-30 13:01:20 +08:00