Commit Graph

79 Commits

Author SHA1 Message Date
Rdmclin2 346812ab88 🔨 chore: update i18n files & fix title skeleton (#14301)
* chore: update i18n files & fix title skeleton

* chore: update taskTemplate json

* chore: update i18n files
2026-04-29 13:23:26 +07:00
Arvin Xu 2c79b5ab78 🐛 fix: refine ProviderBizError classification for insufficient balance and quota limit (#13740)
* 🐛 fix: refine ProviderBizError classification for insufficient balance and quota limit errors

Extract inline "Insufficient Balance" check into a dedicated `isInsufficientQuotaError` utility with case-insensitive matching and broader patterns. Add "too many tokens" pattern to `isQuotaLimitError` for Moonshot rate-limit messages.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* update

* 🐛 fix: remove "account has been deactivated" from InsufficientQuota patterns

Account deactivation can be triggered by policy, security, or account review — not just billing. Classifying it as InsufficientQuota misleads users into topping up balance when the fix is usually permission or support escalation.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

*  feat: add AccountDeactivated error type for deactivated/suspended accounts

Separate account deactivation from InsufficientQuota so users get actionable guidance (contact support) instead of misleading billing advice.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 02:14:30 +08:00
YuTengjing 197a0cc8f1 🌐 chore: sync i18n locale translations (#13340) 2026-03-27 18:59:54 +08:00
YuTengjing d2a16d0714 feat: improve error UI and error handling across chat and image generation (#13302) 2026-03-26 20:09:06 +08:00
YuTengjing c2e9b45d4c feat: add InsufficientBudget error type and Pro badge i18n (#12886) 2026-03-10 23:43:24 +08:00
YuTengjing b91fa68b31 🐛 fix: detect exceeded context window errors from message text (#12788) 2026-03-07 23:26:57 +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 5371507b22 🔥 refactor: remove invite code requirement feature (#12474) 2026-02-25 20:55:39 +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 5b953b15cb feat: share page improvements and pg17 docs update (#11850) 2026-01-26 21:05:47 +08:00
YuTengjing 395595a2c8 feat: remove Clerk authentication code (#11711) 2026-01-23 14:41:22 +08:00
YuTengjing b062f8556f feat: add market registerUser method and invite code i18n (#11614) 2026-01-19 19:51:30 +08:00
YuTengjing 8b67718158 docs: update subscription locale json 2025-12-29 16:48:39 +08:00
arvinxx 7a3d25be7f Revert " feat: add a white waitlist in edge config env (#11009)"
This reverts commit 88f22f4f2d.
2025-12-27 19:07:28 +08:00
Shinji-Li 88f22f4f2d feat: add a white waitlist in edge config env (#11009)
feat: add a white waitlist in edge config
2025-12-27 17:40:36 +08:00
canisminor1990 4f592ce100 style: update i18n 2025-12-26 00:09:41 +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
sxjeru 51ad3998e4 💄 style: improve Gemini error display with promptFeedback (#8707)
* 增加对带有阻止原因(PROHIBITED_CONTENT)的 promptFeedback 的处理

* update

* 增加对 Google AI 阻止原因的本地化处理,更新错误消息以提供更友好的用户反馈
2025-08-12 09:52:05 +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