@lobehub/lobehub 2.0.0-next.344 → 2.0.0-next.346

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.
Files changed (185) hide show
  1. package/.cursor/rules/i18n.mdc +1 -1
  2. package/.cursor/rules/modal-imperative.mdc +162 -0
  3. package/.cursor/rules/rules-index.mdc +1 -0
  4. package/.env.example +0 -14
  5. package/.eslintrc.js +8 -1
  6. package/CHANGELOG.md +66 -0
  7. package/CLAUDE.md +4 -2
  8. package/Dockerfile +3 -13
  9. package/README.md +3 -5
  10. package/README.zh-CN.md +3 -5
  11. package/changelog/v1.json +20 -0
  12. package/docs/self-hosting/advanced/auth/clerk-to-betterauth.mdx +11 -42
  13. package/docs/self-hosting/advanced/auth/clerk-to-betterauth.zh-CN.mdx +10 -41
  14. package/e2e/src/support/webServer.ts +2 -0
  15. package/locales/ar/error.json +0 -4
  16. package/locales/bg-BG/error.json +0 -4
  17. package/locales/de-DE/error.json +0 -4
  18. package/locales/en-US/error.json +0 -4
  19. package/locales/es-ES/error.json +0 -4
  20. package/locales/fa-IR/error.json +0 -4
  21. package/locales/fr-FR/error.json +0 -4
  22. package/locales/it-IT/error.json +0 -4
  23. package/locales/ja-JP/error.json +0 -4
  24. package/locales/ko-KR/error.json +0 -4
  25. package/locales/nl-NL/error.json +0 -4
  26. package/locales/pl-PL/error.json +0 -4
  27. package/locales/pt-BR/error.json +0 -4
  28. package/locales/ru-RU/error.json +0 -4
  29. package/locales/tr-TR/error.json +0 -4
  30. package/locales/vi-VN/error.json +0 -4
  31. package/locales/zh-CN/error.json +0 -4
  32. package/locales/zh-TW/error.json +0 -4
  33. package/package.json +12 -12
  34. package/packages/builtin-agents/package.json +2 -0
  35. package/packages/builtin-agents/src/agents/agent-builder/index.ts +4 -2
  36. package/packages/builtin-agents/src/agents/group-agent-builder/index.ts +4 -2
  37. package/packages/builtin-agents/src/agents/page-agent/index.ts +5 -2
  38. package/packages/context-engine/src/engine/messages/MessagesEngine.ts +9 -9
  39. package/packages/context-engine/src/providers/GroupContextInjector.ts +19 -33
  40. package/packages/context-engine/src/providers/__tests__/GroupContextInjector.test.ts +79 -43
  41. package/packages/context-engine/src/providers/__tests__/__snapshots__/GroupContextInjector.test.ts.snap +5 -15
  42. package/packages/database/src/repositories/userMemory/__tests__/UserMemoryTopicRepository.test.ts +24 -3
  43. package/packages/file-loaders/package.json +1 -1
  44. package/packages/file-loaders/src/loadFile.ts +10 -15
  45. package/packages/file-loaders/src/loaders/index.ts +68 -19
  46. package/packages/file-loaders/src/loaders/pdf/__snapshots__/index.test.ts.snap +1 -1
  47. package/packages/file-loaders/test/__snapshots__/loaders.test.ts.snap +1 -1
  48. package/packages/model-bank/src/modelProviders/comfyui.ts +0 -1
  49. package/packages/model-bank/src/modelProviders/fal.ts +0 -1
  50. package/packages/types/src/fetch.ts +1 -2
  51. package/packages/utils/src/server/__tests__/auth.test.ts +0 -47
  52. package/packages/utils/src/server/auth.ts +1 -9
  53. package/pnpm-workspace.yaml +1 -0
  54. package/scripts/_shared/checkDeprecatedClerkEnv.js +42 -0
  55. package/scripts/changelogWorkflow/buildStaticChangelog.ts +2 -1
  56. package/scripts/clerk-to-betterauth/_internal/types.ts +53 -20
  57. package/scripts/clerk-to-betterauth/export-clerk-users-with-api.ts +43 -36
  58. package/scripts/countEnWord.ts +1 -1
  59. package/scripts/electronWorkflow/modifiers/appCode.mts +2 -131
  60. package/scripts/i18nWorkflow/protectedPatterns.ts +1 -2
  61. package/scripts/prebuild.mts +10 -8
  62. package/scripts/serverLauncher/startServer.js +23 -5
  63. package/src/app/(backend)/middleware/auth/index.test.ts +8 -4
  64. package/src/app/(backend)/middleware/auth/index.ts +0 -15
  65. package/src/app/(backend)/middleware/auth/utils.test.ts +0 -28
  66. package/src/app/(backend)/middleware/auth/utils.ts +2 -17
  67. package/src/app/(backend)/webapi/chat/[provider]/route.test.ts +3 -51
  68. package/src/app/(backend)/webapi/models/[provider]/route.test.ts +8 -4
  69. package/src/app/[variants]/(auth)/next-auth/signin/AuthSignInBox.tsx +7 -6
  70. package/src/app/[variants]/(auth)/signup/[[...signup]]/page.tsx +1 -16
  71. package/src/app/[variants]/(main)/home/_layout/Body/Agent/List/index.tsx +1 -1
  72. package/src/app/[variants]/(main)/home/features/InputArea/SkillInstallBanner.tsx +13 -13
  73. package/src/app/[variants]/(main)/home/features/RecentPage/Item.tsx +2 -2
  74. package/src/app/[variants]/(main)/resource/features/store/action.ts +2 -2
  75. package/src/app/[variants]/(main)/resource/features/store/initialState.ts +2 -2
  76. package/src/app/[variants]/(main)/resource/store/action.ts +2 -2
  77. package/src/app/[variants]/(main)/resource/store/initialState.ts +2 -2
  78. package/src/app/[variants]/(main)/settings/hooks/useCategory.tsx +3 -21
  79. package/src/app/[variants]/(main)/settings/profile/features/AvatarRow.tsx +1 -2
  80. package/src/app/[variants]/(main)/settings/security/index.tsx +1 -22
  81. package/src/app/[variants]/(main)/settings/skill/features/KlavisSkillItem.tsx +12 -14
  82. package/src/app/[variants]/(main)/settings/skill/features/LobehubSkillItem.tsx +8 -14
  83. package/src/app/[variants]/(main)/settings/skill/index.tsx +7 -5
  84. package/src/app/[variants]/(mobile)/me/(home)/__tests__/UserBanner.test.tsx +2 -35
  85. package/src/app/[variants]/(mobile)/me/(home)/__tests__/useCategory.test.tsx +0 -20
  86. package/src/app/[variants]/(mobile)/me/(home)/features/UserBanner.tsx +1 -2
  87. package/src/app/[variants]/(mobile)/me/profile/features/Category.tsx +3 -13
  88. package/src/app/[variants]/(mobile)/settings/_layout/Header.tsx +2 -3
  89. package/src/app/[variants]/share/t/[id]/_layout/index.tsx +1 -1
  90. package/src/app/[variants]/share/t/[id]/index.tsx +1 -1
  91. package/src/app/robots.tsx +1 -1
  92. package/src/envs/auth.ts +2 -27
  93. package/src/envs/llm.ts +2 -2
  94. package/src/features/AgentSetting/AgentPlugin/index.tsx +9 -12
  95. package/src/features/ChatInput/ActionBar/Tools/index.tsx +7 -5
  96. package/src/features/ChatMiniMap/utils.ts +1 -1
  97. package/src/features/CommandMenu/SearchResults.tsx +1 -1
  98. package/src/features/Conversation/ChatList/components/AutoScroll/DebugInspector.tsx +166 -0
  99. package/src/features/Conversation/ChatList/components/AutoScroll/index.tsx +86 -0
  100. package/src/features/Conversation/ChatList/components/VirtualizedList.tsx +11 -17
  101. package/src/features/Conversation/Messages/AgentCouncil/components/AutoScrollShadow.tsx +25 -14
  102. package/src/features/Conversation/Messages/AgentCouncil/components/CouncilMember.tsx +1 -1
  103. package/src/features/FileViewer/Renderer/PDF/index.tsx +5 -8
  104. package/src/features/IntegrationDetailModal/IntegrationDetailContent.tsx +305 -0
  105. package/src/features/IntegrationDetailModal/index.tsx +21 -283
  106. package/src/features/MCPPluginDetail/Deployment/index.tsx +1 -1
  107. package/src/features/MCPPluginDetail/Schema/Prompts.tsx +1 -1
  108. package/src/features/MCPPluginDetail/Schema/Tools.tsx +1 -1
  109. package/src/features/ProfileEditor/AgentTool.tsx +14 -20
  110. package/src/features/ResourceManager/components/Explorer/ListView/ListItem/index.tsx +0 -8
  111. package/src/features/ResourceManager/components/Explorer/MasonryView/MasonryFileItem/NoteFileItem.tsx +1 -1
  112. package/src/features/ResourceManager/index.tsx +1 -1
  113. package/src/features/ShareModal/SharePdf/PdfPreview.tsx +4 -4
  114. package/src/features/SkillStore/LobeHubList/index.tsx +50 -87
  115. package/src/features/SkillStore/Search/index.tsx +1 -1
  116. package/src/features/SkillStore/{Content.tsx → SkillStoreContent.tsx} +3 -8
  117. package/src/features/SkillStore/index.tsx +15 -33
  118. package/src/features/User/UserPanel/PanelContent.tsx +0 -8
  119. package/src/features/User/__tests__/PanelContent.test.tsx +1 -35
  120. package/src/features/User/__tests__/UserAvatar.test.tsx +30 -57
  121. package/src/features/User/__tests__/useMenu.test.tsx +2 -43
  122. package/src/layout/AuthProvider/index.tsx +0 -5
  123. package/src/libs/next/config/define-config.ts +20 -15
  124. package/src/libs/next/proxy/createRouteMatcher.test.ts +121 -0
  125. package/src/libs/next/proxy/createRouteMatcher.ts +18 -0
  126. package/src/libs/next/proxy/define-config.ts +4 -53
  127. package/src/libs/next-auth/adapter/index.ts +1 -2
  128. package/src/libs/oidc-provider/provider.test.ts +5 -316
  129. package/src/libs/pdfjs/pdf.worker.ts +1 -0
  130. package/src/libs/pdfjs/worker.ts +12 -0
  131. package/src/libs/trpc/lambda/context.test.ts +0 -13
  132. package/src/libs/trpc/lambda/context.ts +3 -22
  133. package/src/libs/trpc/middleware/userAuth.ts +2 -4
  134. package/src/libs/trusted-client/getSessionUser.ts +2 -17
  135. package/src/locales/default/error.ts +0 -6
  136. package/src/locales/default/index.ts +0 -2
  137. package/src/proxy.ts +0 -1
  138. package/src/server/routers/lambda/__tests__/user.test.ts +0 -71
  139. package/src/server/routers/lambda/user.ts +6 -63
  140. package/src/server/services/changelog/index.test.ts +3 -2
  141. package/src/server/services/changelog/index.ts +1 -1
  142. package/src/server/services/user/index.ts +0 -83
  143. package/src/services/chat/index.ts +1 -2
  144. package/src/services/chat/mecha/agentConfigResolver.test.ts +43 -0
  145. package/src/services/chat/mecha/agentConfigResolver.ts +3 -1
  146. package/src/store/chat/slices/aiChat/actions/__tests__/streamingExecutor.test.ts +58 -14
  147. package/src/store/chat/slices/aiChat/actions/streamingExecutor.ts +10 -2
  148. package/src/store/user/slices/auth/action.test.ts +1 -81
  149. package/src/store/user/slices/auth/action.ts +3 -28
  150. package/src/store/user/slices/auth/initialState.ts +1 -18
  151. package/src/store/user/slices/auth/selectors.test.ts +2 -127
  152. package/src/store/user/slices/auth/selectors.ts +1 -21
  153. package/src/utils/errorResponse.ts +1 -4
  154. package/src/utils/markdownToTxt.ts +20 -0
  155. package/locales/ar/clerk.json +0 -545
  156. package/locales/bg-BG/clerk.json +0 -545
  157. package/locales/de-DE/clerk.json +0 -545
  158. package/locales/en-US/clerk.json +0 -545
  159. package/locales/es-ES/clerk.json +0 -545
  160. package/locales/fa-IR/clerk.json +0 -545
  161. package/locales/fr-FR/clerk.json +0 -545
  162. package/locales/it-IT/clerk.json +0 -545
  163. package/locales/ja-JP/clerk.json +0 -545
  164. package/locales/ko-KR/clerk.json +0 -545
  165. package/locales/nl-NL/clerk.json +0 -545
  166. package/locales/pl-PL/clerk.json +0 -545
  167. package/locales/pt-BR/clerk.json +0 -545
  168. package/locales/ru-RU/clerk.json +0 -545
  169. package/locales/tr-TR/clerk.json +0 -545
  170. package/locales/vi-VN/clerk.json +0 -545
  171. package/locales/zh-CN/clerk.json +0 -545
  172. package/locales/zh-TW/clerk.json +0 -545
  173. package/src/app/(backend)/api/webhooks/clerk/__tests__/fixtures/createUser.json +0 -73
  174. package/src/app/(backend)/api/webhooks/clerk/route.ts +0 -95
  175. package/src/app/(backend)/api/webhooks/clerk/validateRequest.ts +0 -22
  176. package/src/app/[variants]/(auth)/login/[[...login]]/page.tsx +0 -27
  177. package/src/app/[variants]/(main)/settings/security/features/ClerkProfile.tsx +0 -67
  178. package/src/features/Conversation/ChatList/components/AutoScroll.tsx +0 -25
  179. package/src/layout/AuthProvider/Clerk/UserUpdater.tsx +0 -40
  180. package/src/layout/AuthProvider/Clerk/index.tsx +0 -54
  181. package/src/layout/AuthProvider/Clerk/useAppearance.ts +0 -133
  182. package/src/libs/clerk-auth/index.test.ts +0 -216
  183. package/src/libs/clerk-auth/index.ts +0 -80
  184. package/src/locales/default/clerk.ts +0 -677
  185. package/src/server/services/user/index.test.ts +0 -220
@@ -79,6 +79,6 @@ t('common:save')
79
79
 
80
80
  ## Available Namespaces
81
81
 
82
- auth, authError, changelog, chat, clerk, 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
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.346](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.345...v2.0.0-next.346)
6
+
7
+ <sup>Released on **2026-01-23**</sup>
8
+
9
+ #### 🐛 Bug Fixes
10
+
11
+ - **pdf**: Upgrade pdfjs-dist and react-pdf to v5.x.
12
+
13
+ <br/>
14
+
15
+ <details>
16
+ <summary><kbd>Improvements and Fixes</kbd></summary>
17
+
18
+ #### What's fixed
19
+
20
+ - **pdf**: Upgrade pdfjs-dist and react-pdf to v5.x, closes [#11686](https://github.com/lobehub/lobe-chat/issues/11686) ([2b620df](https://github.com/lobehub/lobe-chat/commit/2b620df))
21
+
22
+ </details>
23
+
24
+ <div align="right">
25
+
26
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
27
+
28
+ </div>
29
+
30
+ ## [Version 2.0.0-next.345](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.344...v2.0.0-next.345)
31
+
32
+ <sup>Released on **2026-01-23**</sup>
33
+
34
+ #### ✨ Features
35
+
36
+ - **misc**: Remove Clerk authentication code.
37
+
38
+ #### 🐛 Bug Fixes
39
+
40
+ - **misc**: Slove the agents header switch agents the lobeAI not show problem.
41
+
42
+ #### 💄 Styles
43
+
44
+ - **misc**: Improve auto scroll and group profile.
45
+
46
+ <br/>
47
+
48
+ <details>
49
+ <summary><kbd>Improvements and Fixes</kbd></summary>
50
+
51
+ #### What's improved
52
+
53
+ - **misc**: Remove Clerk authentication code, closes [#11711](https://github.com/lobehub/lobe-chat/issues/11711) ([395595a](https://github.com/lobehub/lobe-chat/commit/395595a))
54
+
55
+ #### What's fixed
56
+
57
+ - **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))
58
+
59
+ #### Styles
60
+
61
+ - **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))
62
+
63
+ </details>
64
+
65
+ <div align="right">
66
+
67
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
68
+
69
+ </div>
70
+
5
71
  ## [Version 2.0.0-next.344](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.343...v2.0.0-next.344)
6
72
 
7
73
  <sup>Released on **2026-01-23**</sup>
package/CLAUDE.md CHANGED
@@ -61,9 +61,11 @@ see @.cursor/rules/typescript.mdc
61
61
  - **Dev**: Translate `locales/zh-CN/namespace.json` and `locales/en-US/namespace.json` locales file only for dev preview
62
62
  - DON'T run `pnpm i18n`, let CI auto handle it
63
63
 
64
- ## Linear Issue Management(ignore if not installed linear mcp)
64
+ ## Linear Issue Management (search tools first; ignore if not installed)
65
65
 
66
- Read @.cursor/rules/linear.mdc when working with Linear issues.
66
+ ClaudeCode may not inject MCP tools until they are discovered/used.\
67
+ Before applying Linear workflows, **use tool search** to confirm `linear-server` exists (e.g. search `linear` / `mcp__linear-server__`). If not found, treat it as not installed.\
68
+ Then read `@.cursor/rules/linear.mdc` when working with Linear issues.
67
69
 
68
70
  ## Rules Index
69
71
 
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 NEXT_PUBLIC_ENABLE_BETTER_AUTH="${NEXT_PUBLIC_ENABLE_BETTER_AUTH:-0}" \
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 two main user authentication and management solutions to meet different needs:
425
+ LobeChat supports multi-user management and provides flexible user authentication solutions:
426
426
 
427
- - **next-auth**: LobeChat integrates `next-auth`, a flexible and powerful identity verification library that supports multiple authentication methods, including OAuth, email login, credential login, etc. With `next-auth`, you can easily implement user registration, login, session management, social login, and other functions to ensure the security and privacy of user data.
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
- - [**Clerk**](https://go.clerk.com/exgqLG0): For users who need more advanced user management features, LobeChat also supports `Clerk`, a modern user management platform. `Clerk` provides richer functions, such as multi-factor authentication (MFA), user profile management, login activity monitoring, etc. With `Clerk`, you can get higher security and flexibility, and easily cope with complex user management needs.
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
- - **next-auth**:LobeChat 集成了 `next-auth`,一个灵活且强大的身份验证库,支持多种身份验证方式,包括 OAuth、邮件登录、凭证登录等。通过 `next-auth`,您可以轻松实现用户的注册、登录、会话管理以及社交登录等功能,确保用户数据的安全性和隐私性。
416
+ - **Better Auth**:LobeChat 集成了 `Better Auth`,一个现代化且灵活的身份验证库,支持多种身份验证方式,包括 OAuth、邮件登录、凭证登录、魔法链接等。通过 `Better Auth`,您可以轻松实现用户的注册、登录、会话管理、社交登录、多因素认证 (MFA) 等功能,确保用户数据的安全性和隐私性。
417
417
 
418
- - [**Clerk**](https://go.clerk.com/exgqLG0):对于需要更高级用户管理功能的用户,LobeChat 还支持 `Clerk`,一个现代化的用户管理平台。`Clerk` 提供了更丰富的功能,如多因素认证 (MFA)、白名单、用户管理、登录活动监控等。通过 `Clerk`,您可以获得更高的安全性和灵活性,轻松应对生产级的用户管理需求。
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,24 @@
1
1
  [
2
+ {
3
+ "children": {},
4
+ "date": "2026-01-23",
5
+ "version": "2.0.0-next.346"
6
+ },
7
+ {
8
+ "children": {
9
+ "features": [
10
+ "Remove Clerk authentication code."
11
+ ],
12
+ "fixes": [
13
+ "Slove the agents header switch agents the lobeAI not show problem."
14
+ ],
15
+ "improvements": [
16
+ "Improve auto scroll and group profile."
17
+ ]
18
+ },
19
+ "date": "2026-01-23",
20
+ "version": "2.0.0-next.345"
21
+ },
2
22
  {
3
23
  "children": {
4
24
  "fixes": [
@@ -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 | User Impact | Data Preserved |
33
- | ------------------------------------- | -------------------------------- | --------------------- | ------------------------------ |
34
- | [Simple Migration](#simple-migration) | Small deployments (\< 100 users) | Users reset passwords | Chat history, settings |
35
- | [Full Migration](#full-migration) | Large deployments | Seamless for users | Everything including passwords |
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), including all supported SSO providers and email service configuration.
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
- | [简单迁移](#简单迁移) | 小型部署(\< 100 用户) | 用户需重置密码 | 聊天记录、设置 |
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
- 迁移完成后,需要配置 Better Auth 环境变量并重新部署:
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=',
@@ -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 غير صالحة، يرجى التحقق منها والمحاولة مجددًا.",
@@ -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. Проверете настройките и опитайте отново.",
@@ -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.",