@lobehub/lobehub 2.0.0-next.343 → 2.0.0-next.345
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cursor/rules/i18n.mdc +1 -1
- package/.cursor/rules/modal-imperative.mdc +162 -0
- package/.cursor/rules/rules-index.mdc +1 -0
- package/.env.example +0 -14
- package/.eslintrc.js +8 -1
- package/CHANGELOG.md +66 -0
- package/Dockerfile +3 -13
- package/README.md +3 -5
- package/README.zh-CN.md +3 -5
- package/changelog/v1.json +24 -0
- package/docs/self-hosting/advanced/auth/clerk-to-betterauth.mdx +11 -42
- package/docs/self-hosting/advanced/auth/clerk-to-betterauth.zh-CN.mdx +10 -41
- package/e2e/src/support/webServer.ts +2 -0
- package/locales/ar/error.json +0 -4
- package/locales/bg-BG/error.json +0 -4
- package/locales/de-DE/error.json +0 -4
- package/locales/en-US/error.json +0 -4
- package/locales/es-ES/error.json +0 -4
- package/locales/fa-IR/error.json +0 -4
- package/locales/fr-FR/error.json +0 -4
- package/locales/it-IT/error.json +0 -4
- package/locales/ja-JP/error.json +0 -4
- package/locales/ko-KR/error.json +0 -4
- package/locales/nl-NL/error.json +0 -4
- package/locales/pl-PL/error.json +0 -4
- package/locales/pt-BR/error.json +0 -4
- package/locales/ru-RU/error.json +0 -4
- package/locales/tr-TR/error.json +0 -4
- package/locales/vi-VN/error.json +0 -4
- package/locales/zh-CN/error.json +0 -4
- package/locales/zh-TW/error.json +0 -4
- package/package.json +7 -9
- package/packages/builtin-agents/package.json +2 -0
- package/packages/builtin-agents/src/agents/agent-builder/index.ts +4 -2
- package/packages/builtin-agents/src/agents/group-agent-builder/index.ts +4 -2
- package/packages/builtin-agents/src/agents/page-agent/index.ts +5 -2
- package/packages/builtin-tool-cloud-sandbox/src/ExecutionRuntime/index.ts +161 -12
- package/packages/context-engine/src/engine/messages/MessagesEngine.ts +9 -9
- package/packages/context-engine/src/providers/GroupContextInjector.ts +19 -33
- package/packages/context-engine/src/providers/__tests__/GroupContextInjector.test.ts +79 -43
- package/packages/context-engine/src/providers/__tests__/__snapshots__/GroupContextInjector.test.ts.snap +5 -15
- package/packages/database/src/repositories/userMemory/__tests__/UserMemoryTopicRepository.test.ts +24 -3
- package/packages/model-bank/src/modelProviders/comfyui.ts +0 -1
- package/packages/model-bank/src/modelProviders/fal.ts +0 -1
- package/packages/types/src/fetch.ts +1 -2
- package/packages/utils/src/server/__tests__/auth.test.ts +0 -47
- package/packages/utils/src/server/auth.ts +1 -9
- package/scripts/_shared/checkDeprecatedClerkEnv.js +42 -0
- package/scripts/changelogWorkflow/buildStaticChangelog.ts +2 -1
- package/scripts/clerk-to-betterauth/_internal/types.ts +53 -20
- package/scripts/clerk-to-betterauth/export-clerk-users-with-api.ts +43 -36
- package/scripts/countEnWord.ts +1 -1
- package/scripts/electronWorkflow/modifiers/appCode.mts +2 -131
- package/scripts/i18nWorkflow/protectedPatterns.ts +1 -2
- package/scripts/prebuild.mts +10 -8
- package/scripts/serverLauncher/startServer.js +23 -5
- package/src/app/(backend)/middleware/auth/index.test.ts +8 -4
- package/src/app/(backend)/middleware/auth/index.ts +0 -15
- package/src/app/(backend)/middleware/auth/utils.test.ts +0 -28
- package/src/app/(backend)/middleware/auth/utils.ts +2 -17
- package/src/app/(backend)/webapi/chat/[provider]/route.test.ts +3 -51
- package/src/app/(backend)/webapi/models/[provider]/route.test.ts +8 -4
- package/src/app/[variants]/(auth)/next-auth/signin/AuthSignInBox.tsx +7 -6
- package/src/app/[variants]/(auth)/signup/[[...signup]]/page.tsx +1 -16
- package/src/app/[variants]/(main)/home/_layout/Body/Agent/List/index.tsx +1 -1
- package/src/app/[variants]/(main)/home/features/InputArea/SkillInstallBanner.tsx +13 -13
- package/src/app/[variants]/(main)/home/features/RecentPage/Item.tsx +2 -2
- package/src/app/[variants]/(main)/settings/hooks/useCategory.tsx +3 -21
- package/src/app/[variants]/(main)/settings/profile/features/AvatarRow.tsx +1 -2
- package/src/app/[variants]/(main)/settings/security/index.tsx +1 -22
- package/src/app/[variants]/(main)/settings/skill/features/KlavisSkillItem.tsx +12 -14
- package/src/app/[variants]/(main)/settings/skill/features/LobehubSkillItem.tsx +8 -14
- package/src/app/[variants]/(main)/settings/skill/index.tsx +7 -5
- package/src/app/[variants]/(mobile)/me/(home)/__tests__/UserBanner.test.tsx +2 -35
- package/src/app/[variants]/(mobile)/me/(home)/__tests__/useCategory.test.tsx +0 -20
- package/src/app/[variants]/(mobile)/me/(home)/features/UserBanner.tsx +1 -2
- package/src/app/[variants]/(mobile)/me/profile/features/Category.tsx +3 -13
- package/src/app/[variants]/(mobile)/settings/_layout/Header.tsx +2 -3
- package/src/app/[variants]/share/t/[id]/_layout/index.tsx +1 -1
- package/src/app/[variants]/share/t/[id]/index.tsx +1 -1
- package/src/app/robots.tsx +1 -1
- package/src/envs/auth.ts +2 -27
- package/src/envs/llm.ts +2 -2
- package/src/features/AgentSetting/AgentPlugin/index.tsx +9 -12
- package/src/features/ChatInput/ActionBar/Tools/index.tsx +7 -5
- package/src/features/ChatMiniMap/utils.ts +1 -1
- package/src/features/CommandMenu/SearchResults.tsx +1 -1
- package/src/features/Conversation/ChatList/components/AutoScroll/DebugInspector.tsx +166 -0
- package/src/features/Conversation/ChatList/components/AutoScroll/index.tsx +86 -0
- package/src/features/Conversation/ChatList/components/VirtualizedList.tsx +11 -17
- package/src/features/Conversation/Messages/AgentCouncil/components/AutoScrollShadow.tsx +25 -14
- package/src/features/Conversation/Messages/AgentCouncil/components/CouncilMember.tsx +1 -1
- package/src/features/IntegrationDetailModal/IntegrationDetailContent.tsx +305 -0
- package/src/features/IntegrationDetailModal/index.tsx +21 -283
- package/src/features/MCPPluginDetail/Deployment/index.tsx +1 -1
- package/src/features/MCPPluginDetail/Schema/Prompts.tsx +1 -1
- package/src/features/MCPPluginDetail/Schema/Tools.tsx +1 -1
- package/src/features/ProfileEditor/AgentTool.tsx +14 -20
- package/src/features/ResourceManager/components/Explorer/MasonryView/MasonryFileItem/NoteFileItem.tsx +1 -1
- package/src/features/SkillStore/LobeHubList/index.tsx +50 -87
- package/src/features/SkillStore/Search/index.tsx +1 -1
- package/src/features/SkillStore/{Content.tsx → SkillStoreContent.tsx} +3 -8
- package/src/features/SkillStore/index.tsx +15 -33
- package/src/features/User/UserPanel/PanelContent.tsx +0 -8
- package/src/features/User/__tests__/PanelContent.test.tsx +1 -35
- package/src/features/User/__tests__/UserAvatar.test.tsx +30 -57
- package/src/features/User/__tests__/useMenu.test.tsx +2 -43
- package/src/layout/AuthProvider/index.tsx +0 -5
- package/src/libs/next/config/define-config.ts +6 -0
- package/src/libs/next/proxy/createRouteMatcher.test.ts +121 -0
- package/src/libs/next/proxy/createRouteMatcher.ts +18 -0
- package/src/libs/next/proxy/define-config.ts +4 -53
- package/src/libs/next-auth/adapter/index.ts +1 -2
- package/src/libs/oidc-provider/provider.test.ts +5 -316
- package/src/libs/trpc/lambda/context.test.ts +0 -13
- package/src/libs/trpc/lambda/context.ts +3 -22
- package/src/libs/trpc/middleware/userAuth.ts +2 -4
- package/src/libs/trusted-client/getSessionUser.ts +2 -17
- package/src/locales/default/error.ts +0 -6
- package/src/locales/default/index.ts +0 -2
- package/src/proxy.ts +0 -1
- package/src/server/routers/lambda/__tests__/user.test.ts +0 -71
- package/src/server/routers/lambda/user.ts +6 -63
- package/src/server/services/changelog/index.test.ts +3 -2
- package/src/server/services/changelog/index.ts +1 -1
- package/src/server/services/user/index.ts +0 -83
- package/src/services/chat/index.ts +1 -2
- package/src/services/chat/mecha/agentConfigResolver.test.ts +43 -0
- package/src/services/chat/mecha/agentConfigResolver.ts +3 -1
- package/src/store/chat/slices/aiChat/actions/__tests__/streamingExecutor.test.ts +58 -14
- package/src/store/chat/slices/aiChat/actions/streamingExecutor.ts +10 -2
- package/src/store/user/slices/auth/action.test.ts +1 -81
- package/src/store/user/slices/auth/action.ts +3 -28
- package/src/store/user/slices/auth/initialState.ts +1 -18
- package/src/store/user/slices/auth/selectors.test.ts +2 -127
- package/src/store/user/slices/auth/selectors.ts +1 -21
- package/src/utils/errorResponse.ts +1 -4
- package/src/utils/markdownToTxt.ts +20 -0
- package/locales/ar/clerk.json +0 -545
- package/locales/bg-BG/clerk.json +0 -545
- package/locales/de-DE/clerk.json +0 -545
- package/locales/en-US/clerk.json +0 -545
- package/locales/es-ES/clerk.json +0 -545
- package/locales/fa-IR/clerk.json +0 -545
- package/locales/fr-FR/clerk.json +0 -545
- package/locales/it-IT/clerk.json +0 -545
- package/locales/ja-JP/clerk.json +0 -545
- package/locales/ko-KR/clerk.json +0 -545
- package/locales/nl-NL/clerk.json +0 -545
- package/locales/pl-PL/clerk.json +0 -545
- package/locales/pt-BR/clerk.json +0 -545
- package/locales/ru-RU/clerk.json +0 -545
- package/locales/tr-TR/clerk.json +0 -545
- package/locales/vi-VN/clerk.json +0 -545
- package/locales/zh-CN/clerk.json +0 -545
- package/locales/zh-TW/clerk.json +0 -545
- package/src/app/(backend)/api/webhooks/clerk/__tests__/fixtures/createUser.json +0 -73
- package/src/app/(backend)/api/webhooks/clerk/route.ts +0 -95
- package/src/app/(backend)/api/webhooks/clerk/validateRequest.ts +0 -22
- package/src/app/[variants]/(auth)/login/[[...login]]/page.tsx +0 -27
- package/src/app/[variants]/(main)/settings/security/features/ClerkProfile.tsx +0 -67
- package/src/features/Conversation/ChatList/components/AutoScroll.tsx +0 -25
- package/src/layout/AuthProvider/Clerk/UserUpdater.tsx +0 -40
- package/src/layout/AuthProvider/Clerk/index.tsx +0 -54
- package/src/layout/AuthProvider/Clerk/useAppearance.ts +0 -133
- package/src/libs/clerk-auth/index.test.ts +0 -216
- package/src/libs/clerk-auth/index.ts +0 -80
- package/src/locales/default/clerk.ts +0 -677
- package/src/server/services/user/index.test.ts +0 -220
package/.cursor/rules/i18n.mdc
CHANGED
|
@@ -79,6 +79,6 @@ t('common:save')
|
|
|
79
79
|
|
|
80
80
|
## Available Namespaces
|
|
81
81
|
|
|
82
|
-
auth, authError, changelog, chat,
|
|
82
|
+
auth, authError, changelog, chat, color, **common**, components, discover, editor, electron, error, file, home, hotkey, image, knowledgeBase, labs, marketAuth, memory, metadata, migration, modelProvider, models, oauth, onboarding, plugin, portal, providers, ragEval, **setting**, subscription, thread, tool, topic, welcome
|
|
83
83
|
|
|
84
84
|
**Most used:** `common` (shared UI), `chat` (chat features), `setting` (settings)
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Modal 命令式调用指南
|
|
3
|
+
globs: "**/features/**/*.tsx"
|
|
4
|
+
alwaysApply: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Modal 命令式调用指南
|
|
8
|
+
|
|
9
|
+
当需要创建可命令式调用的 Modal 组件时,使用 `@lobehub/ui` 提供的 `createModal` API。
|
|
10
|
+
|
|
11
|
+
## 核心理念
|
|
12
|
+
|
|
13
|
+
**命令式调用** vs **声明式调用**:
|
|
14
|
+
|
|
15
|
+
| 模式 | 特点 | 适用场景 |
|
|
16
|
+
|------|------|----------|
|
|
17
|
+
| 声明式 | 需要维护 `open` state,渲染 `<Modal />` 组件 | ❌ 不推荐 |
|
|
18
|
+
| 命令式 | 直接调用函数打开,无需 state 管理 | ✅ 推荐 |
|
|
19
|
+
|
|
20
|
+
## 文件组织结构
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
features/
|
|
24
|
+
└── MyFeatureModal/
|
|
25
|
+
├── index.tsx # 导出 createXxxModal 函数
|
|
26
|
+
├── MyFeatureContent.tsx # Modal 内容组件
|
|
27
|
+
└── ...其他子组件
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## createModal 用法(推荐)
|
|
31
|
+
|
|
32
|
+
### 1. 定义 Content 组件 (`MyFeatureContent.tsx`)
|
|
33
|
+
|
|
34
|
+
```tsx
|
|
35
|
+
'use client';
|
|
36
|
+
|
|
37
|
+
import { useModalContext } from '@lobehub/ui';
|
|
38
|
+
import { useTranslation } from 'react-i18next';
|
|
39
|
+
|
|
40
|
+
export const MyFeatureContent = () => {
|
|
41
|
+
const { t } = useTranslation('namespace');
|
|
42
|
+
const { close } = useModalContext(); // 可选:获取关闭方法
|
|
43
|
+
|
|
44
|
+
return (
|
|
45
|
+
<div>
|
|
46
|
+
{/* Modal 内容 */}
|
|
47
|
+
</div>
|
|
48
|
+
);
|
|
49
|
+
};
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### 2. 导出 createModal 函数 (`index.tsx`)
|
|
53
|
+
|
|
54
|
+
```tsx
|
|
55
|
+
'use client';
|
|
56
|
+
|
|
57
|
+
import { createModal } from '@lobehub/ui';
|
|
58
|
+
import { t } from 'i18next'; // 注意:使用 i18next 而非 react-i18next
|
|
59
|
+
|
|
60
|
+
import { MyFeatureContent } from './MyFeatureContent';
|
|
61
|
+
|
|
62
|
+
export const createMyFeatureModal = () =>
|
|
63
|
+
createModal({
|
|
64
|
+
allowFullscreen: true,
|
|
65
|
+
children: <MyFeatureContent />,
|
|
66
|
+
destroyOnHidden: false,
|
|
67
|
+
footer: null,
|
|
68
|
+
styles: {
|
|
69
|
+
body: { overflow: 'hidden', padding: 0 },
|
|
70
|
+
},
|
|
71
|
+
title: t('myFeature.title', { ns: 'setting' }),
|
|
72
|
+
width: 'min(80%, 800px)',
|
|
73
|
+
});
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### 3. 调用方使用
|
|
77
|
+
|
|
78
|
+
```tsx
|
|
79
|
+
import { useCallback } from 'react';
|
|
80
|
+
import { createMyFeatureModal } from '@/features/MyFeatureModal';
|
|
81
|
+
|
|
82
|
+
const MyComponent = () => {
|
|
83
|
+
const handleOpenModal = useCallback(() => {
|
|
84
|
+
createMyFeatureModal();
|
|
85
|
+
}, []);
|
|
86
|
+
|
|
87
|
+
return <Button onClick={handleOpenModal}>打开</Button>;
|
|
88
|
+
};
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## 关键要点
|
|
92
|
+
|
|
93
|
+
### i18n 处理
|
|
94
|
+
|
|
95
|
+
- **Content 组件内**:使用 `useTranslation` hook(React 上下文)
|
|
96
|
+
- **createModal 参数中**:使用 `import { t } from 'i18next'`(非 hook,支持命令式调用)
|
|
97
|
+
|
|
98
|
+
```tsx
|
|
99
|
+
// index.tsx - 命令式上下文
|
|
100
|
+
import { t } from 'i18next';
|
|
101
|
+
title: t('key', { ns: 'namespace' })
|
|
102
|
+
|
|
103
|
+
// Content.tsx - React 组件上下文
|
|
104
|
+
import { useTranslation } from 'react-i18next';
|
|
105
|
+
const { t } = useTranslation('namespace');
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### useModalContext Hook
|
|
109
|
+
|
|
110
|
+
在 Content 组件内可使用 `useModalContext` 获取 Modal 控制方法:
|
|
111
|
+
|
|
112
|
+
```tsx
|
|
113
|
+
const { close, setCanDismissByClickOutside } = useModalContext();
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### ModalHost
|
|
117
|
+
|
|
118
|
+
`createModal` 依赖全局 `<ModalHost />` 组件。项目中已在 `src/layout/GlobalProvider/index.tsx` 配置,无需额外添加。
|
|
119
|
+
|
|
120
|
+
## 常用配置项
|
|
121
|
+
|
|
122
|
+
| 属性 | 类型 | 说明 |
|
|
123
|
+
|------|------|------|
|
|
124
|
+
| `allowFullscreen` | `boolean` | 允许全屏模式 |
|
|
125
|
+
| `destroyOnHidden` | `boolean` | 关闭时是否销毁内容(`destroyOnClose` 已废弃) |
|
|
126
|
+
| `footer` | `ReactNode \| null` | 底部内容,`null` 表示无底部 |
|
|
127
|
+
| `width` | `string \| number` | Modal 宽度 |
|
|
128
|
+
| `styles.body` | `CSSProperties` | body 区域样式 |
|
|
129
|
+
|
|
130
|
+
## 迁移指南
|
|
131
|
+
|
|
132
|
+
### Before(声明式)
|
|
133
|
+
|
|
134
|
+
```tsx
|
|
135
|
+
// 调用方需要维护 state
|
|
136
|
+
const [open, setOpen] = useState(false);
|
|
137
|
+
|
|
138
|
+
return (
|
|
139
|
+
<>
|
|
140
|
+
<Button onClick={() => setOpen(true)}>打开</Button>
|
|
141
|
+
<MyModal open={open} setOpen={setOpen} />
|
|
142
|
+
</>
|
|
143
|
+
);
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### After(命令式)
|
|
147
|
+
|
|
148
|
+
```tsx
|
|
149
|
+
// 调用方无需 state,直接调用函数
|
|
150
|
+
const handleOpen = useCallback(() => {
|
|
151
|
+
createMyModal();
|
|
152
|
+
}, []);
|
|
153
|
+
|
|
154
|
+
return <Button onClick={handleOpen}>打开</Button>;
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## 示例参考
|
|
158
|
+
|
|
159
|
+
- `src/features/SkillStore/index.tsx` - createModal 标准用法
|
|
160
|
+
- `src/features/SkillStore/SkillStoreContent.tsx` - Content 组件示例
|
|
161
|
+
- `src/features/LibraryModal/CreateNew/index.tsx` - 带回调的 createModal 用法
|
|
162
|
+
- `src/features/Electron/updater/UpdateModal.tsx` - 复杂 Modal 控制示例
|
|
@@ -18,6 +18,7 @@ All following rules are saved under `.cursor/rules/` directory:
|
|
|
18
18
|
- `i18n.mdc` – Internationalization guide using react-i18next
|
|
19
19
|
- `typescript.mdc` – TypeScript code style guide
|
|
20
20
|
- `packages/react-layout-kit.mdc` – Usage guide for react-layout-kit
|
|
21
|
+
- `modal-imperative.mdc` – Modal imperative API usage guide (createRawModal/createModal)
|
|
21
22
|
|
|
22
23
|
## State Management
|
|
23
24
|
|
package/.env.example
CHANGED
|
@@ -277,20 +277,6 @@ OPENAI_API_KEY=sk-xxxxxxxxx
|
|
|
277
277
|
# ########### Auth Service ##############
|
|
278
278
|
# #######################################
|
|
279
279
|
|
|
280
|
-
|
|
281
|
-
# Clerk related configurations
|
|
282
|
-
|
|
283
|
-
# Clerk public key and secret key
|
|
284
|
-
# NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_live_xxxxxxxxxxx
|
|
285
|
-
# CLERK_SECRET_KEY=sk_live_xxxxxxxxxxxxxxxxxxxxxx
|
|
286
|
-
|
|
287
|
-
# you need to config the clerk webhook secret key if you want to use the clerk with database
|
|
288
|
-
# CLERK_WEBHOOK_SECRET=whsec_xxxxxxxxxxxxxxxxxxxxxx
|
|
289
|
-
|
|
290
|
-
# Clear allow origin https://clerk.com/docs/guides/dashboard/dns-domains/satellite-domains
|
|
291
|
-
# Authentication across different domains , use,to splite different origin
|
|
292
|
-
# NEXT_PUBLIC_CLERK_AUTH_ALLOW_ORIGINS='https://market.lobehub.com,https://lobehub.com'
|
|
293
|
-
|
|
294
280
|
# NextAuth related configurations
|
|
295
281
|
# NEXT_PUBLIC_ENABLE_NEXT_AUTH=1
|
|
296
282
|
# NEXT_AUTH_SECRET=
|
package/.eslintrc.js
CHANGED
|
@@ -38,7 +38,6 @@ config.overrides = [
|
|
|
38
38
|
'mdx/code-blocks': false,
|
|
39
39
|
},
|
|
40
40
|
},
|
|
41
|
-
|
|
42
41
|
{
|
|
43
42
|
files: ['src/store/image/**/*', 'src/types/generation/**/*'],
|
|
44
43
|
rules: {
|
|
@@ -48,6 +47,14 @@ config.overrides = [
|
|
|
48
47
|
'typescript-sort-keys/string-enum': 0,
|
|
49
48
|
},
|
|
50
49
|
},
|
|
50
|
+
// CLI scripts legitimately use process.exit() and async IIFE patterns
|
|
51
|
+
{
|
|
52
|
+
files: ['scripts/**/*'],
|
|
53
|
+
rules: {
|
|
54
|
+
'unicorn/no-process-exit': 0,
|
|
55
|
+
'unicorn/prefer-top-level-await': 0,
|
|
56
|
+
},
|
|
57
|
+
},
|
|
51
58
|
];
|
|
52
59
|
|
|
53
60
|
module.exports = config;
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,72 @@
|
|
|
2
2
|
|
|
3
3
|
# Changelog
|
|
4
4
|
|
|
5
|
+
## [Version 2.0.0-next.345](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.344...v2.0.0-next.345)
|
|
6
|
+
|
|
7
|
+
<sup>Released on **2026-01-23**</sup>
|
|
8
|
+
|
|
9
|
+
#### ✨ Features
|
|
10
|
+
|
|
11
|
+
- **misc**: Remove Clerk authentication code.
|
|
12
|
+
|
|
13
|
+
#### 🐛 Bug Fixes
|
|
14
|
+
|
|
15
|
+
- **misc**: Slove the agents header switch agents the lobeAI not show problem.
|
|
16
|
+
|
|
17
|
+
#### 💄 Styles
|
|
18
|
+
|
|
19
|
+
- **misc**: Improve auto scroll and group profile.
|
|
20
|
+
|
|
21
|
+
<br/>
|
|
22
|
+
|
|
23
|
+
<details>
|
|
24
|
+
<summary><kbd>Improvements and Fixes</kbd></summary>
|
|
25
|
+
|
|
26
|
+
#### What's improved
|
|
27
|
+
|
|
28
|
+
- **misc**: Remove Clerk authentication code, closes [#11711](https://github.com/lobehub/lobe-chat/issues/11711) ([395595a](https://github.com/lobehub/lobe-chat/commit/395595a))
|
|
29
|
+
|
|
30
|
+
#### What's fixed
|
|
31
|
+
|
|
32
|
+
- **misc**: Slove the agents header switch agents the lobeAI not show problem, closes [#11726](https://github.com/lobehub/lobe-chat/issues/11726) ([f45f508](https://github.com/lobehub/lobe-chat/commit/f45f508))
|
|
33
|
+
|
|
34
|
+
#### Styles
|
|
35
|
+
|
|
36
|
+
- **misc**: Improve auto scroll and group profile, closes [#11725](https://github.com/lobehub/lobe-chat/issues/11725) ([550acc2](https://github.com/lobehub/lobe-chat/commit/550acc2))
|
|
37
|
+
|
|
38
|
+
</details>
|
|
39
|
+
|
|
40
|
+
<div align="right">
|
|
41
|
+
|
|
42
|
+
[](#readme-top)
|
|
43
|
+
|
|
44
|
+
</div>
|
|
45
|
+
|
|
46
|
+
## [Version 2.0.0-next.344](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.343...v2.0.0-next.344)
|
|
47
|
+
|
|
48
|
+
<sup>Released on **2026-01-23**</sup>
|
|
49
|
+
|
|
50
|
+
#### 🐛 Bug Fixes
|
|
51
|
+
|
|
52
|
+
- **misc**: Fixed the sandbox tools call when error should use right callback.
|
|
53
|
+
|
|
54
|
+
<br/>
|
|
55
|
+
|
|
56
|
+
<details>
|
|
57
|
+
<summary><kbd>Improvements and Fixes</kbd></summary>
|
|
58
|
+
|
|
59
|
+
#### What's fixed
|
|
60
|
+
|
|
61
|
+
- **misc**: Fixed the sandbox tools call when error should use right callback, closes [#11721](https://github.com/lobehub/lobe-chat/issues/11721) ([e8fce68](https://github.com/lobehub/lobe-chat/commit/e8fce68))
|
|
62
|
+
|
|
63
|
+
</details>
|
|
64
|
+
|
|
65
|
+
<div align="right">
|
|
66
|
+
|
|
67
|
+
[](#readme-top)
|
|
68
|
+
|
|
69
|
+
</div>
|
|
70
|
+
|
|
5
71
|
## [Version 2.0.0-next.343](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.342...v2.0.0-next.343)
|
|
6
72
|
|
|
7
73
|
<sup>Released on **2026-01-23**</sup>
|
package/Dockerfile
CHANGED
|
@@ -32,10 +32,7 @@ FROM base AS builder
|
|
|
32
32
|
|
|
33
33
|
ARG USE_CN_MIRROR
|
|
34
34
|
ARG NEXT_PUBLIC_BASE_PATH
|
|
35
|
-
ARG NEXT_PUBLIC_ENABLE_BETTER_AUTH
|
|
36
35
|
ARG NEXT_PUBLIC_ENABLE_NEXT_AUTH
|
|
37
|
-
ARG NEXT_PUBLIC_ENABLE_CLERK_AUTH
|
|
38
|
-
ARG NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY
|
|
39
36
|
ARG NEXT_PUBLIC_SENTRY_DSN
|
|
40
37
|
ARG NEXT_PUBLIC_ANALYTICS_POSTHOG
|
|
41
38
|
ARG NEXT_PUBLIC_POSTHOG_HOST
|
|
@@ -48,11 +45,7 @@ ARG FEATURE_FLAGS
|
|
|
48
45
|
ENV NEXT_PUBLIC_BASE_PATH="${NEXT_PUBLIC_BASE_PATH}" \
|
|
49
46
|
FEATURE_FLAGS="${FEATURE_FLAGS}"
|
|
50
47
|
|
|
51
|
-
ENV
|
|
52
|
-
NEXT_PUBLIC_ENABLE_NEXT_AUTH="${NEXT_PUBLIC_ENABLE_NEXT_AUTH:-1}" \
|
|
53
|
-
NEXT_PUBLIC_ENABLE_CLERK_AUTH="${NEXT_PUBLIC_ENABLE_CLERK_AUTH:-0}" \
|
|
54
|
-
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY="${NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY}" \
|
|
55
|
-
CLERK_WEBHOOK_SECRET="whsec_xxx" \
|
|
48
|
+
ENV NEXT_PUBLIC_ENABLE_NEXT_AUTH="${NEXT_PUBLIC_ENABLE_NEXT_AUTH:-0}" \
|
|
56
49
|
APP_URL="http://app.com" \
|
|
57
50
|
DATABASE_DRIVER="node" \
|
|
58
51
|
DATABASE_URL="postgres://postgres:password@localhost:5432/postgres" \
|
|
@@ -142,8 +135,9 @@ COPY --from=builder /deps/node_modules/.pnpm /app/node_modules/.pnpm
|
|
|
142
135
|
COPY --from=builder /deps/node_modules/pg /app/node_modules/pg
|
|
143
136
|
COPY --from=builder /deps/node_modules/drizzle-orm /app/node_modules/drizzle-orm
|
|
144
137
|
|
|
145
|
-
# Copy server launcher
|
|
138
|
+
# Copy server launcher and shared scripts
|
|
146
139
|
COPY --from=builder /app/scripts/serverLauncher/startServer.js /app/startServer.js
|
|
140
|
+
COPY --from=builder /app/scripts/_shared /app/scripts/_shared
|
|
147
141
|
|
|
148
142
|
RUN <<'EOF'
|
|
149
143
|
set -e
|
|
@@ -191,10 +185,6 @@ ENV KEY_VAULTS_SECRET="" \
|
|
|
191
185
|
ENV AUTH_SECRET="" \
|
|
192
186
|
AUTH_SSO_PROVIDERS=""
|
|
193
187
|
|
|
194
|
-
# Clerk
|
|
195
|
-
ENV CLERK_SECRET_KEY="" \
|
|
196
|
-
CLERK_WEBHOOK_SECRET=""
|
|
197
|
-
|
|
198
188
|
# S3
|
|
199
189
|
ENV NEXT_PUBLIC_S3_DOMAIN="" \
|
|
200
190
|
S3_PUBLIC_DOMAIN="" \
|
package/README.md
CHANGED
|
@@ -422,13 +422,11 @@ Regardless of which database you choose, LobeChat can provide you with an excell
|
|
|
422
422
|
|
|
423
423
|
### [Support Multi-User Management][docs-feat-auth]
|
|
424
424
|
|
|
425
|
-
LobeChat supports multi-user management and provides
|
|
425
|
+
LobeChat supports multi-user management and provides flexible user authentication solutions:
|
|
426
426
|
|
|
427
|
-
- **
|
|
427
|
+
- **Better Auth**: LobeChat integrates `Better Auth`, a modern and flexible authentication library that supports multiple authentication methods, including OAuth, email login, credential login, magic link, and more. With `Better Auth`, you can easily implement user registration, login, session management, social login, multi-factor authentication (MFA), and other functions to ensure the security and privacy of user data.
|
|
428
428
|
|
|
429
|
-
-
|
|
430
|
-
|
|
431
|
-
Regardless of which user management solution you choose, LobeChat can provide you with an excellent user experience and powerful functional support.
|
|
429
|
+
- **next-auth**: LobeChat also supports `next-auth`, a widely-used identity verification library with extensive OAuth provider support and flexible session management options.
|
|
432
430
|
|
|
433
431
|
<div align="right">
|
|
434
432
|
|
package/README.zh-CN.md
CHANGED
|
@@ -411,13 +411,11 @@ LobeChat 支持同时使用服务端数据库和本地数据库。根据您的
|
|
|
411
411
|
|
|
412
412
|
### [支持多用户管理][docs-feat-auth]
|
|
413
413
|
|
|
414
|
-
LobeChat
|
|
414
|
+
LobeChat 支持多用户管理,提供了灵活的用户认证方案:
|
|
415
415
|
|
|
416
|
-
- **
|
|
416
|
+
- **Better Auth**:LobeChat 集成了 `Better Auth`,一个现代化且灵活的身份验证库,支持多种身份验证方式,包括 OAuth、邮件登录、凭证登录、魔法链接等。通过 `Better Auth`,您可以轻松实现用户的注册、登录、会话管理、社交登录、多因素认证 (MFA) 等功能,确保用户数据的安全性和隐私性。
|
|
417
417
|
|
|
418
|
-
-
|
|
419
|
-
|
|
420
|
-
您可以根据自己的需求,选择合适的用户管理方案。
|
|
418
|
+
- **next-auth**:LobeChat 还支持 `next-auth`,一个广泛使用的身份验证库,具有丰富的 OAuth 提供商支持和灵活的会话管理选项。
|
|
421
419
|
|
|
422
420
|
<div align="right">
|
|
423
421
|
|
package/changelog/v1.json
CHANGED
|
@@ -1,4 +1,28 @@
|
|
|
1
1
|
[
|
|
2
|
+
{
|
|
3
|
+
"children": {
|
|
4
|
+
"features": [
|
|
5
|
+
"Remove Clerk authentication code."
|
|
6
|
+
],
|
|
7
|
+
"fixes": [
|
|
8
|
+
"Slove the agents header switch agents the lobeAI not show problem."
|
|
9
|
+
],
|
|
10
|
+
"improvements": [
|
|
11
|
+
"Improve auto scroll and group profile."
|
|
12
|
+
]
|
|
13
|
+
},
|
|
14
|
+
"date": "2026-01-23",
|
|
15
|
+
"version": "2.0.0-next.345"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"children": {
|
|
19
|
+
"fixes": [
|
|
20
|
+
"Fixed the sandbox tools call when error should use right callback."
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
"date": "2026-01-23",
|
|
24
|
+
"version": "2.0.0-next.344"
|
|
25
|
+
},
|
|
2
26
|
{
|
|
3
27
|
"children": {
|
|
4
28
|
"improvements": [
|
|
@@ -24,15 +24,15 @@ This guide helps you migrate your existing Clerk-based LobeChat deployment to Be
|
|
|
24
24
|
- **Always backup your database first!** For Neon users, create a backup via [Fork Branch](https://neon.tech/docs/manage/branches#create-a-branch)
|
|
25
25
|
- LobeChat is not responsible for any data loss or issues that may occur during the migration process
|
|
26
26
|
- This guide is intended for users with development experience; not recommended for users without technical background
|
|
27
|
-
- If you have any questions, feel free to ask in our [Discord](https://discord.com/invite/AYFPHvv2jT) community
|
|
27
|
+
- If you have any questions, feel free to ask in our [Discord](https://discord.com/invite/AYFPHvv2jT) community or [GitHub Issue](https://github.com/lobehub/lobe-chat/issues/11707)
|
|
28
28
|
</Callout>
|
|
29
29
|
|
|
30
30
|
## Choose Your Migration Path
|
|
31
31
|
|
|
32
|
-
| Method | Best For
|
|
33
|
-
| ------------------------------------- |
|
|
34
|
-
| [Simple Migration](#simple-migration) | Small deployments (
|
|
35
|
-
| [Full Migration](#full-migration) | Large deployments
|
|
32
|
+
| Method | Best For | User Impact | Data Preserved |
|
|
33
|
+
| ------------------------------------- | ------------------------------ | --------------------- | ------------------------------ |
|
|
34
|
+
| [Simple Migration](#simple-migration) | Small deployments (≤ 10 users) | Users reset passwords | Chat history, settings |
|
|
35
|
+
| [Full Migration](#full-migration) | Large deployments | Seamless for users | Everything including passwords |
|
|
36
36
|
|
|
37
37
|
## Simple Migration
|
|
38
38
|
|
|
@@ -41,6 +41,8 @@ For small self-hosted deployments, the simplest approach is to let users reset t
|
|
|
41
41
|
<Callout type={'warning'}>
|
|
42
42
|
**Limitation**: This method loses SSO connection data. Use [Full Migration](#full-migration) to preserve SSO connections.
|
|
43
43
|
|
|
44
|
+
Although SSO connections are lost, users can manually re-link their social accounts from the Profile page after logging in with email and password.
|
|
45
|
+
|
|
44
46
|
**Example scenario**: If your previous account had two SSO accounts linked:
|
|
45
47
|
|
|
46
48
|
- Primary email (Google): `mail1@google.com`
|
|
@@ -118,19 +120,13 @@ For larger deployments or when you need to preserve user passwords and SSO conne
|
|
|
118
120
|
<Callout type={'error'}>
|
|
119
121
|
**Important Notice**:
|
|
120
122
|
|
|
123
|
+
- **Always backup your database first!** For Neon users, create a backup via [Fork Branch](https://neon.tech/docs/manage/branches#create-a-branch)
|
|
121
124
|
- Migration scripts must be **run locally after cloning the repository**, not in the deployment environment
|
|
122
125
|
- Due to the high-risk nature of user data migration, **we do not provide automatic migration during deployment**
|
|
126
|
+
- Always use dry-run mode first to verify the script runs successfully before executing
|
|
123
127
|
- Always verify in a test environment before operating on production database
|
|
124
128
|
</Callout>
|
|
125
129
|
|
|
126
|
-
<Callout type={'warning'}>
|
|
127
|
-
**Before Migration**:
|
|
128
|
-
|
|
129
|
-
- Use a [Neon Fork Branch](https://neon.tech/docs/manage/branches#create-a-branch) to create a test database
|
|
130
|
-
- Use Clerk Development environment API keys
|
|
131
|
-
- Verify in test mode first, then switch to prod mode after confirming success
|
|
132
|
-
</Callout>
|
|
133
|
-
|
|
134
130
|
### Prerequisites
|
|
135
131
|
|
|
136
132
|
**Environment Requirements:**
|
|
@@ -288,37 +284,10 @@ npx tsx scripts/clerk-to-betterauth/verify.ts
|
|
|
288
284
|
|
|
289
285
|
### Step 7: Configure Better Auth and Redeploy
|
|
290
286
|
|
|
291
|
-
After migration is complete, configure Better Auth environment variables and redeploy
|
|
292
|
-
|
|
293
|
-
1. **Remove Clerk environment variables**:
|
|
294
|
-
|
|
295
|
-
```bash
|
|
296
|
-
# Remove these
|
|
297
|
-
# NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=xxx
|
|
298
|
-
# CLERK_SECRET_KEY=xxx
|
|
299
|
-
```
|
|
300
|
-
|
|
301
|
-
2. **Add Better Auth environment variables**:
|
|
302
|
-
|
|
303
|
-
```bash
|
|
304
|
-
# Required
|
|
305
|
-
AUTH_SECRET=your-secret-key # openssl rand -base64 32
|
|
306
|
-
|
|
307
|
-
# Optional: Configure SSO providers (example)
|
|
308
|
-
AUTH_SSO_PROVIDERS=google,github
|
|
309
|
-
AUTH_GOOGLE_ID=your-google-client-id
|
|
310
|
-
AUTH_GOOGLE_SECRET=your-google-client-secret
|
|
311
|
-
AUTH_GITHUB_ID=your-github-client-id
|
|
312
|
-
AUTH_GITHUB_SECRET=your-github-client-secret
|
|
313
|
-
|
|
314
|
-
# Optional: Configure email service (for password reset, email verification, etc.)
|
|
315
|
-
# See Authentication Service Configuration documentation for details
|
|
316
|
-
```
|
|
317
|
-
|
|
318
|
-
3. **Redeploy LobeChat**
|
|
287
|
+
After migration is complete, follow [Simple Migration - Step 2](#steps) to configure Better Auth environment variables and redeploy.
|
|
319
288
|
|
|
320
289
|
<Callout type={'tip'}>
|
|
321
|
-
For complete Better Auth configuration, see [Authentication Service Configuration](/docs/self-hosting/advanced/auth)
|
|
290
|
+
For complete Better Auth configuration, see [Authentication Service Configuration](/docs/self-hosting/advanced/auth).
|
|
322
291
|
</Callout>
|
|
323
292
|
|
|
324
293
|
## What Gets Migrated
|
|
@@ -22,15 +22,15 @@ tags:
|
|
|
22
22
|
- **务必先备份数据库**!如使用 Neon,可通过 [Fork 分支](https://neon.tech/docs/manage/branches#create-a-branch) 创建备份
|
|
23
23
|
- 迁移过程中可能出现的任何数据丢失或问题,LobeChat 概不负责
|
|
24
24
|
- 本指南适合有一定开发背景的用户,不建议无技术经验的用户自行操作
|
|
25
|
-
- 如有任何疑问,欢迎到 [Discord](https://discord.com/invite/AYFPHvv2jT)
|
|
25
|
+
- 如有任何疑问,欢迎到 [Discord](https://discord.com/invite/AYFPHvv2jT) 社区或 [GitHub Issue](https://github.com/lobehub/lobe-chat/issues/11707) 提问
|
|
26
26
|
</Callout>
|
|
27
27
|
|
|
28
28
|
## 选择迁移方式
|
|
29
29
|
|
|
30
|
-
| 方式 | 适用场景
|
|
31
|
-
| ------------- |
|
|
32
|
-
| [简单迁移](#简单迁移) |
|
|
33
|
-
| [完整迁移](#完整迁移) | 大型部署
|
|
30
|
+
| 方式 | 适用场景 | 用户影响 | 数据保留 |
|
|
31
|
+
| ------------- | ------------- | ------- | -------- |
|
|
32
|
+
| [简单迁移](#简单迁移) | 小型部署(≤ 10 用户) | 用户需重置密码 | 聊天记录、设置 |
|
|
33
|
+
| [完整迁移](#完整迁移) | 大型部署 | 对用户无感知 | 全部数据包括密码 |
|
|
34
34
|
|
|
35
35
|
## 简单迁移
|
|
36
36
|
|
|
@@ -39,6 +39,8 @@ tags:
|
|
|
39
39
|
<Callout type={'warning'}>
|
|
40
40
|
**限制**:此方法会丢失 SSO 连接数据。如需保留 SSO 连接,请使用 [完整迁移](#完整迁移)。
|
|
41
41
|
|
|
42
|
+
虽然 SSO 连接会丢失,但用户可以在使用邮箱密码登录后,通过个人资料页手动重新绑定社交账号。
|
|
43
|
+
|
|
42
44
|
**示例场景**:假设你之前的账户绑定了两个 SSO 账户:
|
|
43
45
|
|
|
44
46
|
- 主邮箱(Google):`mail1@google.com`
|
|
@@ -113,19 +115,13 @@ tags:
|
|
|
113
115
|
<Callout type={'error'}>
|
|
114
116
|
**重要说明**:
|
|
115
117
|
|
|
118
|
+
- **务必先备份数据库**!如使用 Neon,可通过 [Fork 分支](https://neon.tech/docs/manage/branches#create-a-branch) 创建备份
|
|
116
119
|
- 迁移脚本需要 **clone 仓库后在本地运行**,不是在部署环境中执行
|
|
117
120
|
- 由于迁移涉及用户数据,风险较高,**官方不提供部署时自动迁移功能**
|
|
121
|
+
- 请务必先使用 dry-run 模式测试脚本能够顺利运行再正式执行
|
|
118
122
|
- 请务必在测试环境验证后再操作生产数据库
|
|
119
123
|
</Callout>
|
|
120
124
|
|
|
121
|
-
<Callout type={'warning'}>
|
|
122
|
-
**迁移前准备**:
|
|
123
|
-
|
|
124
|
-
- 使用 [Neon Fork 分支](https://neon.tech/docs/manage/branches#create-a-branch) 创建测试数据库
|
|
125
|
-
- 使用 Clerk Development 环境的 API 密钥
|
|
126
|
-
- 先在 test 模式下验证,确认成功后再切换到 prod 模式
|
|
127
|
-
</Callout>
|
|
128
|
-
|
|
129
125
|
### 前置条件
|
|
130
126
|
|
|
131
127
|
**环境要求:**
|
|
@@ -282,34 +278,7 @@ npx tsx scripts/clerk-to-betterauth/verify.ts
|
|
|
282
278
|
|
|
283
279
|
### 步骤 7:配置 Better Auth 并重新部署
|
|
284
280
|
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
1. **移除 Clerk 环境变量**:
|
|
288
|
-
|
|
289
|
-
```bash
|
|
290
|
-
# 移除这些
|
|
291
|
-
# NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=xxx
|
|
292
|
-
# CLERK_SECRET_KEY=xxx
|
|
293
|
-
```
|
|
294
|
-
|
|
295
|
-
2. **添加 Better Auth 环境变量**:
|
|
296
|
-
|
|
297
|
-
```bash
|
|
298
|
-
# 必需
|
|
299
|
-
AUTH_SECRET=your-secret-key # openssl rand -base64 32
|
|
300
|
-
|
|
301
|
-
# 可选:配置 SSO 提供商(示例)
|
|
302
|
-
AUTH_SSO_PROVIDERS=google,github
|
|
303
|
-
AUTH_GOOGLE_ID=your-google-client-id
|
|
304
|
-
AUTH_GOOGLE_SECRET=your-google-client-secret
|
|
305
|
-
AUTH_GITHUB_ID=your-github-client-id
|
|
306
|
-
AUTH_GITHUB_SECRET=your-github-client-secret
|
|
307
|
-
|
|
308
|
-
# 可选:配置邮件服务(用于密码重置、邮箱验证等)
|
|
309
|
-
# 参阅身份验证服务配置文档了解详情
|
|
310
|
-
```
|
|
311
|
-
|
|
312
|
-
3. **重新部署 LobeChat**
|
|
281
|
+
迁移完成后,参照 [简单迁移 - 步骤 2](#步骤) 配置 Better Auth 环境变量并重新部署。
|
|
313
282
|
|
|
314
283
|
<Callout type={'tip'}>
|
|
315
284
|
完整的 Better Auth 配置请参阅 [身份验证服务配置](/zh/docs/self-hosting/advanced/auth),包括所有支持的 SSO 提供商和邮件服务配置。
|
|
@@ -133,6 +133,8 @@ export async function startWebServer(options: WebServerOptions): Promise<void> {
|
|
|
133
133
|
|
|
134
134
|
const serverEnv = {
|
|
135
135
|
...process.env,
|
|
136
|
+
// APP_URL is required for Better Auth to recognize localhost as a trusted origin
|
|
137
|
+
APP_URL: `http://localhost:${port}`,
|
|
136
138
|
// E2E test secret keys
|
|
137
139
|
BETTER_AUTH_SECRET: 'e2e-test-secret-key-for-better-auth-32chars!',
|
|
138
140
|
KEY_VAULTS_SECRET: 'LA7n9k3JdEcbSgml2sxfw+4TV1AzaaFU5+R176aQz4s=',
|
package/locales/ar/error.json
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
{
|
|
2
|
-
"clerkAuth.loginSuccess.action": "متابعة الجلسة",
|
|
3
|
-
"clerkAuth.loginSuccess.desc": "{{greeting}}، يسعدنا الاستمرار في خدمتك. لنكمل من حيث توقفنا.",
|
|
4
|
-
"clerkAuth.loginSuccess.title": "مرحبًا بعودتك، {{nickName}}",
|
|
5
2
|
"error.backHome": "العودة إلى الصفحة الرئيسية",
|
|
6
3
|
"error.desc": "حاول مرة أخرى لاحقًا، أو عد إلى العالم المعروف.",
|
|
7
4
|
"error.retry": "إعادة التحميل",
|
|
@@ -87,7 +84,6 @@
|
|
|
87
84
|
"response.InsufficientQuota": "عذرًا، تم استهلاك الحصة المخصصة لهذا المفتاح. يرجى التحقق من رصيد حسابك أو زيادة الحصة والمحاولة مجددًا.",
|
|
88
85
|
"response.InvalidAccessCode": "رمز الوصول غير صالح أو فارغ. يرجى إدخال رمز الوصول الصحيح أو إضافة مفتاح API مخصص.",
|
|
89
86
|
"response.InvalidBedrockCredentials": "فشل التوثيق مع Bedrock. يرجى التحقق من AccessKeyId/SecretAccessKey والمحاولة مجددًا.",
|
|
90
|
-
"response.InvalidClerkUser": "عذرًا، لم تقم بتسجيل الدخول حاليًا. يرجى تسجيل الدخول أو إنشاء حساب للمتابعة.",
|
|
91
87
|
"response.InvalidComfyUIArgs": "إعدادات ComfyUI غير صالحة. يرجى التحقق من الإعدادات والمحاولة مجددًا.",
|
|
92
88
|
"response.InvalidGithubToken": "رمز GitHub الشخصي غير صحيح أو فارغ. يرجى التحقق من الرمز والمحاولة مجددًا.",
|
|
93
89
|
"response.InvalidOllamaArgs": "إعدادات Ollama غير صالحة، يرجى التحقق منها والمحاولة مجددًا.",
|
package/locales/bg-BG/error.json
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
{
|
|
2
|
-
"clerkAuth.loginSuccess.action": "Продължи сесията",
|
|
3
|
-
"clerkAuth.loginSuccess.desc": "{{greeting}}, радваме се да продължим да ви обслужваме. Нека продължим оттам, откъдето спряхме.",
|
|
4
|
-
"clerkAuth.loginSuccess.title": "Добре дошъл отново, {{nickName}}",
|
|
5
2
|
"error.backHome": "Обратно към началната страница",
|
|
6
3
|
"error.desc": "Опитайте отново по-късно или се върнете към познатия свят.",
|
|
7
4
|
"error.retry": "Презареди",
|
|
@@ -87,7 +84,6 @@
|
|
|
87
84
|
"response.InsufficientQuota": "Съжаляваме, достигнат е лимитът за този ключ. Проверете баланса си или увеличете квотата.",
|
|
88
85
|
"response.InvalidAccessCode": "Невалиден или празен код за достъп. Въведете правилния код или добавете персонализиран API ключ.",
|
|
89
86
|
"response.InvalidBedrockCredentials": "Неуспешна автентикация с Bedrock. Проверете AccessKeyId/SecretAccessKey и опитайте отново.",
|
|
90
|
-
"response.InvalidClerkUser": "Съжаляваме, не сте влезли. Влезте или се регистрирайте, за да продължите.",
|
|
91
87
|
"response.InvalidComfyUIArgs": "Невалидна конфигурация на ComfyUI. Проверете настройките и опитайте отново.",
|
|
92
88
|
"response.InvalidGithubToken": "Невалиден или празен GitHub токен. Проверете го и опитайте отново.",
|
|
93
89
|
"response.InvalidOllamaArgs": "Невалидна конфигурация на Ollama. Проверете настройките и опитайте отново.",
|
package/locales/de-DE/error.json
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
{
|
|
2
|
-
"clerkAuth.loginSuccess.action": "Sitzung fortsetzen",
|
|
3
|
-
"clerkAuth.loginSuccess.desc": "{{greeting}}, schön, Sie wiederzusehen. Lassen Sie uns dort weitermachen, wo wir aufgehört haben.",
|
|
4
|
-
"clerkAuth.loginSuccess.title": "Willkommen zurück, {{nickName}}",
|
|
5
2
|
"error.backHome": "Zurück zur Startseite",
|
|
6
3
|
"error.desc": "Versuchen Sie es später erneut oder kehren Sie in die bekannte Welt zurück.",
|
|
7
4
|
"error.retry": "Neu laden",
|
|
@@ -87,7 +84,6 @@
|
|
|
87
84
|
"response.InsufficientQuota": "Das Kontingent für diesen Schlüssel ist aufgebraucht. Bitte prüfen Sie Ihr Guthaben.",
|
|
88
85
|
"response.InvalidAccessCode": "Ungültiger oder leerer Zugangscode. Bitte geben Sie den richtigen Code ein.",
|
|
89
86
|
"response.InvalidBedrockCredentials": "Bedrock-Authentifizierung fehlgeschlagen. Bitte überprüfen Sie Ihre Zugangsdaten.",
|
|
90
|
-
"response.InvalidClerkUser": "Sie sind nicht angemeldet. Bitte melden Sie sich an oder registrieren Sie sich.",
|
|
91
87
|
"response.InvalidComfyUIArgs": "Ungültige ComfyUI-Konfiguration. Bitte prüfen Sie die Einstellungen.",
|
|
92
88
|
"response.InvalidGithubToken": "Ungültiger oder leerer GitHub-Personal-Access-Token.",
|
|
93
89
|
"response.InvalidOllamaArgs": "Ungültige Ollama-Konfiguration. Bitte prüfen Sie die Einstellungen.",
|