@lobehub/lobehub 1.143.0-next.2 → 2.0.0-next.10

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 (244) hide show
  1. package/.github/workflows/desktop-pr-build.yml +12 -10
  2. package/.github/workflows/docker.yml +25 -20
  3. package/.github/workflows/e2e.yml +3 -3
  4. package/.github/workflows/release-desktop-beta.yml +8 -8
  5. package/.github/workflows/release.yml +1 -1
  6. package/.github/workflows/test.yml +4 -4
  7. package/CHANGELOG.md +265 -0
  8. package/README.md +7 -0
  9. package/README.zh-CN.md +7 -0
  10. package/apps/desktop/src/main/utils/next-electron-rsc.ts +7 -5
  11. package/changelog/v1.json +85 -0
  12. package/docs/development/database-schema.dbml +11 -1
  13. package/docs/self-hosting/advanced/auth/next-auth/auth0.mdx +2 -2
  14. package/docs/self-hosting/advanced/auth/next-auth/auth0.zh-CN.mdx +2 -2
  15. package/docs/self-hosting/advanced/auth/next-auth/authelia.mdx +2 -2
  16. package/docs/self-hosting/advanced/auth/next-auth/authelia.zh-CN.mdx +2 -2
  17. package/docs/self-hosting/advanced/auth/next-auth/authentik.mdx +2 -2
  18. package/docs/self-hosting/advanced/auth/next-auth/authentik.zh-CN.mdx +2 -2
  19. package/docs/self-hosting/advanced/auth/next-auth/casdoor.mdx +2 -2
  20. package/docs/self-hosting/advanced/auth/next-auth/casdoor.zh-CN.mdx +2 -2
  21. package/docs/self-hosting/advanced/auth/next-auth/cloudflare-zero-trust.mdx +2 -2
  22. package/docs/self-hosting/advanced/auth/next-auth/cloudflare-zero-trust.zh-CN.mdx +2 -2
  23. package/docs/self-hosting/advanced/auth/next-auth/github.mdx +2 -2
  24. package/docs/self-hosting/advanced/auth/next-auth/github.zh-CN.mdx +2 -2
  25. package/docs/self-hosting/advanced/auth/next-auth/google.mdx +32 -29
  26. package/docs/self-hosting/advanced/auth/next-auth/keycloak.mdx +2 -2
  27. package/docs/self-hosting/advanced/auth/next-auth/keycloak.zh-CN.mdx +2 -2
  28. package/docs/self-hosting/advanced/auth/next-auth/logto.mdx +5 -3
  29. package/docs/self-hosting/advanced/auth/next-auth/logto.zh-CN.mdx +5 -3
  30. package/docs/self-hosting/advanced/auth/next-auth/microsoft-entra-id.mdx +2 -2
  31. package/docs/self-hosting/advanced/auth/next-auth/microsoft-entra-id.zh-CN.mdx +2 -2
  32. package/docs/self-hosting/advanced/auth/next-auth/okta.mdx +2 -2
  33. package/docs/self-hosting/advanced/auth/next-auth/okta.zh-CN.mdx +2 -2
  34. package/docs/self-hosting/advanced/auth/next-auth/wechat.mdx +2 -2
  35. package/docs/self-hosting/advanced/auth/next-auth/wechat.zh-CN.mdx +2 -2
  36. package/docs/self-hosting/advanced/auth/next-auth/zitadel.mdx +2 -2
  37. package/docs/self-hosting/advanced/auth/next-auth/zitadel.zh-CN.mdx +2 -2
  38. package/docs/self-hosting/advanced/auth.mdx +32 -21
  39. package/docs/self-hosting/advanced/auth.zh-CN.mdx +30 -19
  40. package/docs/self-hosting/advanced/online-search.mdx +30 -25
  41. package/docs/self-hosting/advanced/online-search.zh-CN.mdx +25 -23
  42. package/locales/ar/models.json +15 -6
  43. package/locales/bg-BG/models.json +15 -6
  44. package/locales/de-DE/models.json +15 -6
  45. package/locales/en-US/models.json +15 -6
  46. package/locales/es-ES/models.json +15 -6
  47. package/locales/fa-IR/models.json +15 -6
  48. package/locales/fr-FR/models.json +15 -6
  49. package/locales/it-IT/models.json +15 -6
  50. package/locales/ja-JP/models.json +15 -6
  51. package/locales/ko-KR/models.json +15 -6
  52. package/locales/nl-NL/models.json +15 -6
  53. package/locales/pl-PL/models.json +15 -6
  54. package/locales/pt-BR/models.json +15 -6
  55. package/locales/ru-RU/models.json +15 -6
  56. package/locales/tr-TR/models.json +15 -6
  57. package/locales/vi-VN/models.json +15 -6
  58. package/locales/zh-CN/models.json +15 -6
  59. package/locales/zh-TW/models.json +15 -6
  60. package/next.config.ts +2 -3
  61. package/package.json +13 -19
  62. package/packages/const/src/index.ts +0 -1
  63. package/packages/const/src/models.ts +13 -0
  64. package/packages/const/src/url.ts +1 -4
  65. package/packages/context-engine/src/index.ts +1 -6
  66. package/packages/context-engine/src/processors/GroupMessageFlatten.ts +12 -2
  67. package/packages/context-engine/src/processors/__tests__/GroupMessageFlatten.test.ts +73 -9
  68. package/packages/context-engine/src/providers/index.ts +0 -2
  69. package/packages/database/migrations/0041_improve_index.sql +10 -0
  70. package/packages/database/migrations/meta/0041_snapshot.json +7784 -0
  71. package/packages/database/migrations/meta/_journal.json +7 -0
  72. package/packages/database/package.json +1 -1
  73. package/packages/database/src/core/migrations.json +17 -0
  74. package/packages/database/src/models/__tests__/message.grouping.test.ts +812 -0
  75. package/packages/database/src/models/__tests__/message.test.ts +322 -170
  76. package/packages/database/src/models/message.ts +62 -24
  77. package/packages/database/src/models/session.ts +60 -19
  78. package/packages/database/src/schemas/agent.ts +10 -11
  79. package/packages/database/src/schemas/message.ts +5 -1
  80. package/packages/database/src/schemas/relations.ts +6 -4
  81. package/packages/database/src/schemas/session.ts +2 -0
  82. package/packages/database/src/schemas/topic.ts +6 -1
  83. package/packages/database/src/utils/__tests__/groupMessages.test.ts +145 -2
  84. package/packages/database/src/utils/groupMessages.ts +7 -5
  85. package/packages/electron-client-ipc/package.json +4 -1
  86. package/packages/file-loaders/package.json +1 -0
  87. package/packages/model-bank/src/aiModels/anthropic.ts +0 -63
  88. package/packages/model-bank/src/aiModels/azure.ts +155 -0
  89. package/packages/model-bank/src/aiModels/bedrock.ts +44 -0
  90. package/packages/model-bank/src/aiModels/higress.ts +0 -55
  91. package/packages/model-bank/src/aiModels/infiniai.ts +21 -0
  92. package/packages/model-bank/src/aiModels/ollamacloud.ts +13 -0
  93. package/packages/model-bank/src/aiModels/siliconcloud.ts +19 -0
  94. package/packages/model-runtime/src/core/openaiCompatibleFactory/createImage.ts +1 -1
  95. package/packages/model-runtime/src/core/openaiCompatibleFactory/index.test.ts +33 -3
  96. package/packages/model-runtime/src/core/parameterResolver.ts +3 -0
  97. package/packages/model-runtime/src/core/streams/openai/__snapshots__/responsesStream.test.ts.snap +0 -38
  98. package/packages/model-runtime/src/providers/azureOpenai/index.ts +2 -1
  99. package/packages/model-runtime/src/providers/minimax/index.ts +5 -5
  100. package/packages/model-runtime/src/providers/search1api/index.test.ts +2 -2
  101. package/packages/types/src/message/common/base.ts +13 -0
  102. package/packages/types/src/message/common/image.ts +8 -0
  103. package/packages/types/src/message/common/metadata.ts +39 -0
  104. package/packages/types/src/message/common/tools.ts +10 -0
  105. package/packages/types/src/message/db/params.ts +47 -1
  106. package/packages/types/src/message/ui/chat.ts +4 -1
  107. package/packages/types/src/search.ts +16 -0
  108. package/packages/web-crawler/src/crawImpl/firecrawl.ts +39 -12
  109. package/scripts/migrateServerDB/index.ts +2 -1
  110. package/src/app/(backend)/oidc/consent/route.ts +0 -1
  111. package/src/app/(backend)/webapi/revalidate/route.ts +1 -1
  112. package/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/V1Mobile/index.tsx +2 -2
  113. package/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/V1Mobile/useSend.ts +6 -4
  114. package/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/useSend.ts +15 -10
  115. package/src/app/[variants]/(main)/chat/@session/features/SessionListContent/List/Item/index.tsx +4 -2
  116. package/src/app/[variants]/(main)/settings/_layout/SettingsContent.tsx +0 -3
  117. package/src/app/[variants]/layout.tsx +1 -0
  118. package/src/app/sitemap.tsx +7 -1
  119. package/src/components/Thinking/index.tsx +4 -3
  120. package/src/config/modelProviders/anthropic.ts +0 -23
  121. package/src/config/modelProviders/higress.ts +0 -23
  122. package/src/config/modelProviders/minimax.ts +1 -1
  123. package/src/config/modelProviders/qiniu.ts +1 -1
  124. package/src/envs/auth.ts +0 -179
  125. package/src/features/AgentSetting/AgentPlugin/index.tsx +21 -13
  126. package/src/features/ChatInput/ActionBar/STT/browser.tsx +2 -2
  127. package/src/features/ChatInput/ActionBar/STT/openai.tsx +2 -2
  128. package/src/features/ChatInput/ActionBar/Tools/useControls.tsx +1 -3
  129. package/src/features/Conversation/Error/ErrorJsonViewer.tsx +4 -3
  130. package/src/features/Conversation/Error/OllamaBizError/index.tsx +7 -2
  131. package/src/features/Conversation/Error/index.tsx +15 -5
  132. package/src/features/Conversation/MarkdownElements/LobeArtifact/Render/index.tsx +2 -2
  133. package/src/features/Conversation/Messages/Assistant/Extra/index.tsx +2 -2
  134. package/src/features/Conversation/Messages/Assistant/MessageContent.tsx +5 -3
  135. package/src/features/Conversation/Messages/Assistant/Tool/Inspector/BuiltinPluginTitle.tsx +2 -2
  136. package/src/features/Conversation/Messages/Assistant/Tool/Inspector/ToolTitle.tsx +4 -2
  137. package/src/features/Conversation/Messages/Assistant/Tool/Render/CustomRender.tsx +2 -2
  138. package/src/features/Conversation/Messages/Assistant/Tool/Render/index.tsx +2 -2
  139. package/src/features/Conversation/Messages/Assistant/Tool/index.tsx +2 -2
  140. package/src/features/Conversation/Messages/Assistant/index.tsx +4 -4
  141. package/src/features/Conversation/Messages/Default.tsx +2 -2
  142. package/src/features/Conversation/Messages/User/Extra.tsx +2 -2
  143. package/src/features/Conversation/Messages/User/index.tsx +4 -4
  144. package/src/features/Conversation/Messages/index.tsx +3 -3
  145. package/src/features/Conversation/components/AutoScroll.tsx +2 -2
  146. package/src/features/Conversation/components/Extras/Usage/UsageDetail/index.tsx +9 -6
  147. package/src/features/PluginTag/index.tsx +1 -3
  148. package/src/features/PluginsUI/Render/BuiltinType/index.test.tsx +37 -28
  149. package/src/features/Portal/Artifacts/Body/index.tsx +2 -2
  150. package/src/libs/next-auth/auth.config.ts +1 -1
  151. package/src/libs/next-auth/sso-providers/auth0.ts +0 -7
  152. package/src/libs/next-auth/sso-providers/authelia.ts +3 -5
  153. package/src/libs/next-auth/sso-providers/authentik.ts +0 -7
  154. package/src/libs/next-auth/sso-providers/cloudflare-zero-trust.ts +3 -6
  155. package/src/libs/next-auth/sso-providers/cognito.ts +1 -5
  156. package/src/libs/next-auth/sso-providers/generic-oidc.ts +3 -5
  157. package/src/libs/next-auth/sso-providers/github.ts +0 -6
  158. package/src/libs/next-auth/sso-providers/google.ts +0 -2
  159. package/src/libs/next-auth/sso-providers/index.ts +0 -2
  160. package/src/libs/next-auth/sso-providers/keycloak.ts +0 -3
  161. package/src/libs/next-auth/sso-providers/logto.ts +3 -5
  162. package/src/libs/next-auth/sso-providers/okta.ts +0 -4
  163. package/src/libs/next-auth/sso-providers/zitadel.ts +0 -7
  164. package/src/libs/oidc-provider/provider.ts +1 -1
  165. package/src/server/modules/AssistantStore/index.ts +1 -1
  166. package/src/server/modules/ModelRuntime/trace.ts +11 -4
  167. package/src/server/routers/lambda/message.ts +14 -3
  168. package/src/server/routers/lambda/session.ts +8 -5
  169. package/src/server/services/search/impls/firecrawl/index.ts +51 -11
  170. package/src/server/services/search/impls/firecrawl/type.ts +60 -9
  171. package/src/services/chat/chat.test.ts +1 -40
  172. package/src/services/chat/contextEngineering.test.ts +0 -30
  173. package/src/services/chat/contextEngineering.ts +1 -12
  174. package/src/services/chat/index.ts +2 -7
  175. package/src/services/chat/types.ts +1 -1
  176. package/src/services/message/_deprecated.ts +1 -1
  177. package/src/services/message/client.ts +8 -2
  178. package/src/services/message/server.ts +7 -2
  179. package/src/services/message/type.ts +6 -1
  180. package/src/services/user/client.test.ts +4 -1
  181. package/src/store/chat/helpers.test.ts +99 -0
  182. package/src/store/chat/helpers.ts +21 -2
  183. package/src/store/chat/selectors.ts +1 -1
  184. package/src/store/chat/slices/aiChat/actions/generateAIChat.ts +3 -3
  185. package/src/store/chat/slices/builtinTool/actions/index.ts +1 -4
  186. package/src/store/chat/slices/message/action.test.ts +5 -1
  187. package/src/store/chat/slices/message/action.ts +102 -14
  188. package/src/store/chat/slices/message/reducer.test.ts +363 -5
  189. package/src/store/chat/slices/message/reducer.ts +87 -3
  190. package/src/store/chat/slices/message/{selectors.test.ts → selectors/chat.test.ts} +266 -30
  191. package/src/store/chat/slices/message/{selectors.ts → selectors/chat.ts} +29 -79
  192. package/src/store/chat/slices/message/selectors/index.ts +2 -0
  193. package/src/store/chat/slices/message/selectors/messageState.test.ts +36 -0
  194. package/src/store/chat/slices/message/selectors/messageState.ts +80 -0
  195. package/src/store/chat/slices/plugin/action.test.ts +34 -132
  196. package/src/store/chat/slices/plugin/action.ts +1 -44
  197. package/src/store/tool/selectors/tool.test.ts +1 -1
  198. package/src/store/tool/selectors/tool.ts +6 -8
  199. package/src/store/tool/slices/builtin/action.test.ts +83 -35
  200. package/src/store/tool/slices/builtin/action.ts +0 -9
  201. package/src/store/tool/slices/builtin/selectors.test.ts +4 -30
  202. package/src/store/tool/slices/builtin/selectors.ts +15 -21
  203. package/src/tools/index.ts +0 -6
  204. package/src/tools/renders.ts +0 -3
  205. package/src/tools/web-browsing/Portal/Search/Footer.tsx +2 -2
  206. package/tsconfig.json +9 -2
  207. package/packages/const/src/guide.ts +0 -89
  208. package/packages/context-engine/src/providers/InboxGuide.ts +0 -102
  209. package/packages/context-engine/src/providers/__tests__/InboxGuideProvider.test.ts +0 -121
  210. package/src/app/[variants]/(main)/settings/llm/ProviderList/Azure/index.tsx +0 -93
  211. package/src/app/[variants]/(main)/settings/llm/ProviderList/Bedrock/index.tsx +0 -70
  212. package/src/app/[variants]/(main)/settings/llm/ProviderList/Cloudflare/index.tsx +0 -39
  213. package/src/app/[variants]/(main)/settings/llm/ProviderList/Github/index.tsx +0 -52
  214. package/src/app/[variants]/(main)/settings/llm/ProviderList/HuggingFace/index.tsx +0 -52
  215. package/src/app/[variants]/(main)/settings/llm/ProviderList/Ollama/index.tsx +0 -20
  216. package/src/app/[variants]/(main)/settings/llm/ProviderList/OpenAI/index.tsx +0 -17
  217. package/src/app/[variants]/(main)/settings/llm/ProviderList/providers.tsx +0 -132
  218. package/src/app/[variants]/(main)/settings/llm/components/Checker.tsx +0 -118
  219. package/src/app/[variants]/(main)/settings/llm/components/ProviderConfig/index.tsx +0 -303
  220. package/src/app/[variants]/(main)/settings/llm/components/ProviderModelList/CustomModelOption.tsx +0 -98
  221. package/src/app/[variants]/(main)/settings/llm/components/ProviderModelList/ModelConfigModal/Form.tsx +0 -104
  222. package/src/app/[variants]/(main)/settings/llm/components/ProviderModelList/ModelConfigModal/index.tsx +0 -77
  223. package/src/app/[variants]/(main)/settings/llm/components/ProviderModelList/ModelFetcher.tsx +0 -105
  224. package/src/app/[variants]/(main)/settings/llm/components/ProviderModelList/Option.tsx +0 -68
  225. package/src/app/[variants]/(main)/settings/llm/components/ProviderModelList/index.tsx +0 -146
  226. package/src/app/[variants]/(main)/settings/llm/const.ts +0 -20
  227. package/src/app/[variants]/(main)/settings/llm/features/Footer.tsx +0 -35
  228. package/src/app/[variants]/(main)/settings/llm/index.tsx +0 -30
  229. package/src/app/[variants]/(main)/settings/llm/type.ts +0 -5
  230. package/src/envs/__tests__/auth.test.ts +0 -200
  231. package/src/libs/next-auth/sso-providers/azure-ad.ts +0 -33
  232. package/src/services/chat/__snapshots__/chat.test.ts.snap +0 -110
  233. package/src/store/chat/slices/builtinTool/actions/__tests__/dalle.test.ts +0 -121
  234. package/src/store/chat/slices/builtinTool/actions/dalle.ts +0 -124
  235. package/src/tools/dalle/Render/GalleyGrid.tsx +0 -60
  236. package/src/tools/dalle/Render/Item/EditMode.tsx +0 -66
  237. package/src/tools/dalle/Render/Item/Error.tsx +0 -49
  238. package/src/tools/dalle/Render/Item/Image.tsx +0 -44
  239. package/src/tools/dalle/Render/Item/ImageFileItem.tsx +0 -57
  240. package/src/tools/dalle/Render/Item/index.tsx +0 -88
  241. package/src/tools/dalle/Render/ToolBar.tsx +0 -56
  242. package/src/tools/dalle/Render/index.tsx +0 -52
  243. package/src/tools/dalle/index.ts +0 -92
  244. /package/src/{middleware.ts → proxy.ts} +0 -0
@@ -1,7 +1,7 @@
1
1
  name: Desktop PR Build
2
2
 
3
3
  on:
4
- pull_request:
4
+ pull_request_target:
5
5
  types: [synchronize, labeled, unlabeled] # PR 更新或标签变化时触发
6
6
 
7
7
  # 确保同一时间只运行一个相同的 workflow,取消正在进行的旧的运行
@@ -10,7 +10,9 @@ concurrency:
10
10
  cancel-in-progress: true
11
11
 
12
12
  # Add default permissions
13
- permissions: read-all
13
+ permissions:
14
+ contents: write
15
+ pull-requests: write
14
16
 
15
17
  env:
16
18
  PR_TAG_PREFIX: pr- # PR 构建版本的前缀标识
@@ -28,7 +30,7 @@ jobs:
28
30
  fetch-depth: 0
29
31
 
30
32
  - name: Setup Node.js
31
- uses: actions/setup-node@v5
33
+ uses: actions/setup-node@v6
32
34
  with:
33
35
  node-version: 22
34
36
  package-manager-cache: false
@@ -62,7 +64,7 @@ jobs:
62
64
  fetch-depth: 0
63
65
 
64
66
  - name: Setup Node.js
65
- uses: actions/setup-node@v5
67
+ uses: actions/setup-node@v6
66
68
  with:
67
69
  node-version: 22
68
70
  package-manager-cache: false
@@ -107,7 +109,7 @@ jobs:
107
109
  run_install: false
108
110
 
109
111
  - name: Setup Node.js
110
- uses: actions/setup-node@v5
112
+ uses: actions/setup-node@v6
111
113
  with:
112
114
  node-version: 22
113
115
  package-manager-cache: false
@@ -199,7 +201,7 @@ jobs:
199
201
 
200
202
  # 上传构建产物
201
203
  - name: Upload artifact
202
- uses: actions/upload-artifact@v4
204
+ uses: actions/upload-artifact@v5
203
205
  with:
204
206
  name: release-${{ matrix.os }}
205
207
  path: |
@@ -226,7 +228,7 @@ jobs:
226
228
  uses: actions/checkout@v5
227
229
 
228
230
  - name: Setup Node.js
229
- uses: actions/setup-node@v5
231
+ uses: actions/setup-node@v6
230
232
  with:
231
233
  node-version: 22
232
234
  package-manager-cache: false
@@ -238,7 +240,7 @@ jobs:
238
240
 
239
241
  # 下载所有平台的构建产物
240
242
  - name: Download artifacts
241
- uses: actions/download-artifact@v5
243
+ uses: actions/download-artifact@v6
242
244
  with:
243
245
  path: release
244
246
  pattern: release-*
@@ -264,7 +266,7 @@ jobs:
264
266
 
265
267
  # 上传合并后的构建产物
266
268
  - name: Upload artifacts with merged macOS files
267
- uses: actions/upload-artifact@v4
269
+ uses: actions/upload-artifact@v5
268
270
  with:
269
271
  name: merged-release-pr
270
272
  path: release/
@@ -287,7 +289,7 @@ jobs:
287
289
 
288
290
  # 下载合并后的构建产物
289
291
  - name: Download merged artifacts
290
- uses: actions/download-artifact@v5
292
+ uses: actions/download-artifact@v6
291
293
  with:
292
294
  name: merged-release-pr
293
295
  path: release
@@ -1,17 +1,19 @@
1
1
  name: Publish Docker Image
2
2
  permissions:
3
3
  contents: read
4
+ pull-requests: write
4
5
 
5
6
  on:
6
7
  workflow_dispatch:
7
8
  release:
8
9
  types: [published]
9
- pull_request:
10
+ pull_request_target:
10
11
  types: [synchronize, labeled, unlabeled]
11
12
 
12
13
  concurrency:
13
14
  group: ${{ github.ref }}-${{ github.workflow }}
14
- cancel-in-progress: true
15
+ # PR 构建时取消旧的运行,但 release 构建不取消
16
+ cancel-in-progress: ${{ github.event_name != 'release' }}
15
17
 
16
18
  env:
17
19
  REGISTRY_IMAGE: lobehub/lobehub
@@ -21,9 +23,10 @@ jobs:
21
23
  build:
22
24
  # 添加 PR label 触发条件
23
25
  if: |
24
- (github.event_name == 'pull_request' &&
25
- contains(github.event.pull_request.labels.*.name, 'trigger:build-docker')) ||
26
- github.event_name != 'pull_request'
26
+ github.event_name == 'release' ||
27
+ github.event_name == 'workflow_dispatch' ||
28
+ (github.event_name == 'pull_request_target' &&
29
+ contains(github.event.pull_request.labels.*.name, 'trigger:build-docker'))
27
30
 
28
31
  strategy:
29
32
  matrix:
@@ -50,11 +53,12 @@ jobs:
50
53
 
51
54
  # 为 PR 生成特殊的 tag
52
55
  - name: Generate PR metadata
53
- if: github.event_name == 'pull_request'
56
+ if: github.event_name == 'pull_request_target'
54
57
  id: pr_meta
58
+ env:
59
+ BRANCH_NAME: ${{ github.head_ref }}
55
60
  run: |
56
- branch_name="${{ github.head_ref }}"
57
- sanitized_branch=$(echo "${branch_name}" | sed -E 's/[^a-zA-Z0-9_.-]+/-/g')
61
+ sanitized_branch=$(echo "${BRANCH_NAME}" | sed -E 's/[^a-zA-Z0-9_.-]+/-/g')
58
62
  echo "pr_tag=${sanitized_branch}-$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
59
63
 
60
64
  - name: Docker meta
@@ -64,10 +68,10 @@ jobs:
64
68
  images: ${{ env.REGISTRY_IMAGE }}
65
69
  tags: |
66
70
  # PR 构建使用特殊的 tag
67
- type=raw,value=${{ env.PR_TAG_PREFIX }}${{ steps.pr_meta.outputs.pr_tag }},enable=${{ github.event_name == 'pull_request' }}
71
+ type=raw,value=${{ env.PR_TAG_PREFIX }}${{ steps.pr_meta.outputs.pr_tag }},enable=${{ github.event_name == 'pull_request_target' }}
68
72
  # release 构建使用版本号
69
- type=semver,pattern={{version}},enable=${{ github.event_name != 'pull_request' }}
70
- type=raw,value=latest,enable=${{ github.event_name != 'pull_request' }}
73
+ type=semver,pattern={{version}},enable=${{ github.event_name != 'pull_request_target' }}
74
+ type=raw,value=latest,enable=${{ github.event_name != 'pull_request_target' }}
71
75
 
72
76
  - name: Docker login
73
77
  uses: docker/login-action@v3
@@ -100,7 +104,7 @@ jobs:
100
104
  touch "/tmp/digests/${digest#sha256:}"
101
105
 
102
106
  - name: Upload artifact
103
- uses: actions/upload-artifact@v4
107
+ uses: actions/upload-artifact@v5
104
108
  with:
105
109
  name: digest-${{ env.PLATFORM_PAIR }}
106
110
  path: /tmp/digests/*
@@ -118,7 +122,7 @@ jobs:
118
122
  fetch-depth: 0
119
123
 
120
124
  - name: Download digests
121
- uses: actions/download-artifact@v5
125
+ uses: actions/download-artifact@v6
122
126
  with:
123
127
  path: /tmp/digests
124
128
  pattern: digest-*
@@ -129,11 +133,12 @@ jobs:
129
133
 
130
134
  # 为 merge job 添加 PR metadata 生成
131
135
  - name: Generate PR metadata
132
- if: github.event_name == 'pull_request'
136
+ if: github.event_name == 'pull_request_target'
133
137
  id: pr_meta
138
+ env:
139
+ BRANCH_NAME: ${{ github.head_ref }}
134
140
  run: |
135
- branch_name="${{ github.head_ref }}"
136
- sanitized_branch=$(echo "${branch_name}" | sed -E 's/[^a-zA-Z0-9_.-]+/-/g')
141
+ sanitized_branch=$(echo "${BRANCH_NAME}" | sed -E 's/[^a-zA-Z0-9_.-]+/-/g')
137
142
  echo "pr_tag=${sanitized_branch}-$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
138
143
 
139
144
  - name: Docker meta
@@ -142,9 +147,9 @@ jobs:
142
147
  with:
143
148
  images: ${{ env.REGISTRY_IMAGE }}
144
149
  tags: |
145
- type=raw,value=${{ env.PR_TAG_PREFIX }}${{ steps.pr_meta.outputs.pr_tag }},enable=${{ github.event_name == 'pull_request' }}
146
- type=semver,pattern={{version}},enable=${{ github.event_name != 'pull_request' }}
147
- type=raw,value=latest,enable=${{ github.event_name != 'pull_request' }}
150
+ type=raw,value=${{ env.PR_TAG_PREFIX }}${{ steps.pr_meta.outputs.pr_tag }},enable=${{ github.event_name == 'pull_request_target' }}
151
+ type=semver,pattern={{version}},enable=${{ github.event_name != 'pull_request_target' }}
152
+ type=raw,value=latest,enable=${{ github.event_name != 'pull_request_target' }}
148
153
 
149
154
  - name: Docker login
150
155
  uses: docker/login-action@v3
@@ -163,7 +168,7 @@ jobs:
163
168
  docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:${{ steps.meta.outputs.version }}
164
169
 
165
170
  - name: Comment on PR with Docker build info
166
- if: github.event_name == 'pull_request'
171
+ if: github.event_name == 'pull_request_target'
167
172
  uses: actions/github-script@v8
168
173
  with:
169
174
  github-token: ${{ secrets.GITHUB_TOKEN }}
@@ -17,7 +17,7 @@ jobs:
17
17
  timeout-minutes: 25
18
18
  steps:
19
19
  - name: Checkout
20
- uses: actions/checkout@v4
20
+ uses: actions/checkout@v5
21
21
 
22
22
  - name: Setup Bun
23
23
  uses: oven-sh/setup-bun@v2
@@ -37,7 +37,7 @@ jobs:
37
37
 
38
38
  - name: Upload Cucumber HTML report (on failure)
39
39
  if: failure()
40
- uses: actions/upload-artifact@v4
40
+ uses: actions/upload-artifact@v5
41
41
  with:
42
42
  name: cucumber-report
43
43
  path: e2e/reports
@@ -45,7 +45,7 @@ jobs:
45
45
 
46
46
  - name: Upload screenshots (on failure)
47
47
  if: failure()
48
- uses: actions/upload-artifact@v4
48
+ uses: actions/upload-artifact@v5
49
49
  with:
50
50
  name: test-screenshots
51
51
  path: e2e/screenshots
@@ -24,7 +24,7 @@ jobs:
24
24
  fetch-depth: 0
25
25
 
26
26
  - name: Setup Node.js
27
- uses: actions/setup-node@v5
27
+ uses: actions/setup-node@v6
28
28
  with:
29
29
  node-version: 22
30
30
  package-manager-cache: false
@@ -53,7 +53,7 @@ jobs:
53
53
  fetch-depth: 0
54
54
 
55
55
  - name: Setup Node.js
56
- uses: actions/setup-node@v5
56
+ uses: actions/setup-node@v6
57
57
  with:
58
58
  node-version: 22
59
59
  package-manager-cache: false
@@ -94,7 +94,7 @@ jobs:
94
94
  run_install: false
95
95
 
96
96
  - name: Setup Node.js
97
- uses: actions/setup-node@v5
97
+ uses: actions/setup-node@v6
98
98
  with:
99
99
  node-version: 22
100
100
  package-manager-cache: false
@@ -181,7 +181,7 @@ jobs:
181
181
 
182
182
  # 上传构建产物 (工作流处理重命名,不依赖 electron-builder 钩子)
183
183
  - name: Upload artifact
184
- uses: actions/upload-artifact@v4
184
+ uses: actions/upload-artifact@v5
185
185
  with:
186
186
  name: release-${{ matrix.os }}
187
187
  path: |
@@ -208,7 +208,7 @@ jobs:
208
208
  uses: actions/checkout@v5
209
209
 
210
210
  - name: Setup Node.js
211
- uses: actions/setup-node@v5
211
+ uses: actions/setup-node@v6
212
212
  with:
213
213
  node-version: 22
214
214
  package-manager-cache: false
@@ -220,7 +220,7 @@ jobs:
220
220
 
221
221
  # 下载所有平台的构建产物
222
222
  - name: Download artifacts
223
- uses: actions/download-artifact@v5
223
+ uses: actions/download-artifact@v6
224
224
  with:
225
225
  path: release
226
226
  pattern: release-*
@@ -246,7 +246,7 @@ jobs:
246
246
 
247
247
  # 上传合并后的构建产物
248
248
  - name: Upload artifacts with merged macOS files
249
- uses: actions/upload-artifact@v4
249
+ uses: actions/upload-artifact@v5
250
250
  with:
251
251
  name: merged-release
252
252
  path: release/
@@ -262,7 +262,7 @@ jobs:
262
262
  steps:
263
263
  # 下载合并后的构建产物
264
264
  - name: Download merged artifacts
265
- uses: actions/download-artifact@v5
265
+ uses: actions/download-artifact@v6
266
266
  with:
267
267
  name: merged-release
268
268
  path: release
@@ -34,7 +34,7 @@ jobs:
34
34
  token: ${{ secrets.GH_TOKEN }}
35
35
 
36
36
  - name: Setup Node.js
37
- uses: actions/setup-node@v5
37
+ uses: actions/setup-node@v6
38
38
  with:
39
39
  node-version: 22
40
40
  package-manager-cache: false
@@ -28,7 +28,7 @@ jobs:
28
28
  - uses: actions/checkout@v5
29
29
 
30
30
  - name: Setup Node.js
31
- uses: actions/setup-node@v5
31
+ uses: actions/setup-node@v6
32
32
  with:
33
33
  node-version: 22
34
34
  package-manager-cache: false
@@ -63,7 +63,7 @@ jobs:
63
63
  - uses: actions/checkout@v5
64
64
 
65
65
  - name: Setup Node.js
66
- uses: actions/setup-node@v5
66
+ uses: actions/setup-node@v6
67
67
  with:
68
68
  node-version: 22
69
69
  package-manager-cache: false
@@ -96,7 +96,7 @@ jobs:
96
96
  - uses: actions/checkout@v5
97
97
 
98
98
  - name: Setup Node.js
99
- uses: actions/setup-node@v5
99
+ uses: actions/setup-node@v6
100
100
  with:
101
101
  node-version: 22
102
102
  package-manager-cache: false
@@ -140,7 +140,7 @@ jobs:
140
140
  - uses: actions/checkout@v5
141
141
 
142
142
  - name: Setup Node.js
143
- uses: actions/setup-node@v5
143
+ uses: actions/setup-node@v6
144
144
  with:
145
145
  node-version: 22
146
146
  package-manager-cache: false
package/CHANGELOG.md CHANGED
@@ -2,6 +2,271 @@
2
2
 
3
3
  # Changelog
4
4
 
5
+ ## [Version 2.0.0-next.10](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.9...v2.0.0-next.10)
6
+
7
+ <sup>Released on **2025-11-02**</sup>
8
+
9
+ <br/>
10
+
11
+ <details>
12
+ <summary><kbd>Improvements and Fixes</kbd></summary>
13
+
14
+ </details>
15
+
16
+ <div align="right">
17
+
18
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
19
+
20
+ </div>
21
+
22
+ ## [Version 2.0.0-next.9](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.8...v2.0.0-next.9)
23
+
24
+ <sup>Released on **2025-11-02**</sup>
25
+
26
+ #### ♻ Code Refactoring
27
+
28
+ - **misc**: Remove dalle builtin plugin.
29
+
30
+ <br/>
31
+
32
+ <details>
33
+ <summary><kbd>Improvements and Fixes</kbd></summary>
34
+
35
+ #### Code refactoring
36
+
37
+ - **misc**: Remove dalle builtin plugin, closes [#9952](https://github.com/lobehub/lobe-chat/issues/9952) ([2d4d70a](https://github.com/lobehub/lobe-chat/commit/2d4d70a))
38
+
39
+ </details>
40
+
41
+ <div align="right">
42
+
43
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
44
+
45
+ </div>
46
+
47
+ ## [Version 2.0.0-next.8](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.7...v2.0.0-next.8)
48
+
49
+ <sup>Released on **2025-11-02**</sup>
50
+
51
+ #### 💄 Styles
52
+
53
+ - **misc**: Update i18n.
54
+
55
+ <br/>
56
+
57
+ <details>
58
+ <summary><kbd>Improvements and Fixes</kbd></summary>
59
+
60
+ #### Styles
61
+
62
+ - **misc**: Update i18n, closes [#9958](https://github.com/lobehub/lobe-chat/issues/9958) ([f49996c](https://github.com/lobehub/lobe-chat/commit/f49996c))
63
+
64
+ </details>
65
+
66
+ <div align="right">
67
+
68
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
69
+
70
+ </div>
71
+
72
+ ## [Version 2.0.0-next.7](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.6...v2.0.0-next.7)
73
+
74
+ <sup>Released on **2025-11-01**</sup>
75
+
76
+ #### ✨ Features
77
+
78
+ - **misc**: Upgrade to Next 16.
79
+
80
+ <br/>
81
+
82
+ <details>
83
+ <summary><kbd>Improvements and Fixes</kbd></summary>
84
+
85
+ #### What's improved
86
+
87
+ - **misc**: Upgrade to Next 16, closes [#9851](https://github.com/lobehub/lobe-chat/issues/9851) ([abb71ec](https://github.com/lobehub/lobe-chat/commit/abb71ec))
88
+
89
+ </details>
90
+
91
+ <div align="right">
92
+
93
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
94
+
95
+ </div>
96
+
97
+ ## [Version 2.0.0-next.6](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.5...v2.0.0-next.6)
98
+
99
+ <sup>Released on **2025-10-31**</sup>
100
+
101
+ #### 🐛 Bug Fixes
102
+
103
+ - **AssistantStore**: Add missing identifier parameter.
104
+
105
+ <br/>
106
+
107
+ <details>
108
+ <summary><kbd>Improvements and Fixes</kbd></summary>
109
+
110
+ #### What's fixed
111
+
112
+ - **AssistantStore**: Add missing identifier parameter, closes [#9948](https://github.com/lobehub/lobe-chat/issues/9948) ([2e40855](https://github.com/lobehub/lobe-chat/commit/2e40855))
113
+
114
+ </details>
115
+
116
+ <div align="right">
117
+
118
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
119
+
120
+ </div>
121
+
122
+ ## [Version 2.0.0-next.5](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.4...v2.0.0-next.5)
123
+
124
+ <sup>Released on **2025-10-31**</sup>
125
+
126
+ #### ♻ Code Refactoring
127
+
128
+ - **misc**: Migrating Firecrawl to v2.
129
+
130
+ <br/>
131
+
132
+ <details>
133
+ <summary><kbd>Improvements and Fixes</kbd></summary>
134
+
135
+ #### Code refactoring
136
+
137
+ - **misc**: Migrating Firecrawl to v2, closes [#9850](https://github.com/lobehub/lobe-chat/issues/9850) ([efb4c22](https://github.com/lobehub/lobe-chat/commit/efb4c22))
138
+
139
+ </details>
140
+
141
+ <div align="right">
142
+
143
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
144
+
145
+ </div>
146
+
147
+ ## [Version 2.0.0-next.4](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.3...v2.0.0-next.4)
148
+
149
+ <sup>Released on **2025-10-31**</sup>
150
+
151
+ #### ♻ Code Refactoring
152
+
153
+ - **misc**: Remove azure-ad auth provider.
154
+
155
+ #### 💄 Styles
156
+
157
+ - **misc**: Update i18n.
158
+
159
+ <br/>
160
+
161
+ <details>
162
+ <summary><kbd>Improvements and Fixes</kbd></summary>
163
+
164
+ #### Code refactoring
165
+
166
+ - **misc**: Remove azure-ad auth provider, closes [#9942](https://github.com/lobehub/lobe-chat/issues/9942) ([103c4d7](https://github.com/lobehub/lobe-chat/commit/103c4d7))
167
+
168
+ #### Styles
169
+
170
+ - **misc**: Update i18n, closes [#9944](https://github.com/lobehub/lobe-chat/issues/9944) ([3a6468f](https://github.com/lobehub/lobe-chat/commit/3a6468f))
171
+
172
+ </details>
173
+
174
+ <div align="right">
175
+
176
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
177
+
178
+ </div>
179
+
180
+ ## [Version 2.0.0-next.3](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.2...v2.0.0-next.3)
181
+
182
+ <sup>Released on **2025-10-30**</sup>
183
+
184
+ #### ♻ Code Refactoring
185
+
186
+ - **misc**: Remove llm page.
187
+
188
+ #### 💄 Styles
189
+
190
+ - **misc**: Add new bedrock model support, add pricing info for Azure GPT-5 series models.
191
+
192
+ <br/>
193
+
194
+ <details>
195
+ <summary><kbd>Improvements and Fixes</kbd></summary>
196
+
197
+ #### Code refactoring
198
+
199
+ - **misc**: Remove llm page, closes [#9940](https://github.com/lobehub/lobe-chat/issues/9940) ([6ec01a3](https://github.com/lobehub/lobe-chat/commit/6ec01a3))
200
+
201
+ #### Styles
202
+
203
+ - **misc**: Add new bedrock model support, closes [#9826](https://github.com/lobehub/lobe-chat/issues/9826) ([1b8a981](https://github.com/lobehub/lobe-chat/commit/1b8a981))
204
+ - **misc**: Add pricing info for Azure GPT-5 series models, closes [#9833](https://github.com/lobehub/lobe-chat/issues/9833) ([39a80c5](https://github.com/lobehub/lobe-chat/commit/39a80c5))
205
+
206
+ </details>
207
+
208
+ <div align="right">
209
+
210
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
211
+
212
+ </div>
213
+
214
+ ## [Version 2.0.0-next.2](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.1...v2.0.0-next.2)
215
+
216
+ <sup>Released on **2025-10-30**</sup>
217
+
218
+ #### 🐛 Bug Fixes
219
+
220
+ - **misc**: Hide marketplace link from Plugin List when market disabled, OIDC error when connecting to self-host instance, only include input_fidelity parameter for gpt-image-1..
221
+
222
+ <br/>
223
+
224
+ <details>
225
+ <summary><kbd>Improvements and Fixes</kbd></summary>
226
+
227
+ #### What's fixed
228
+
229
+ - **misc**: Hide marketplace link from Plugin List when market disabled, closes [#9929](https://github.com/lobehub/lobe-chat/issues/9929) ([e303979](https://github.com/lobehub/lobe-chat/commit/e303979))
230
+ - **misc**: OIDC error when connecting to self-host instance, closes [#9916](https://github.com/lobehub/lobe-chat/issues/9916) ([7a2ca19](https://github.com/lobehub/lobe-chat/commit/7a2ca19))
231
+ - **misc**: Only include input_fidelity parameter for gpt-image-1., closes [#9920](https://github.com/lobehub/lobe-chat/issues/9920) ([65dbc63](https://github.com/lobehub/lobe-chat/commit/65dbc63))
232
+
233
+ </details>
234
+
235
+ <div align="right">
236
+
237
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
238
+
239
+ </div>
240
+
241
+ ## [Version 2.0.0-next.1](https://github.com/lobehub/lobe-chat/compare/v1.143.0-next.2...v2.0.0-next.1)
242
+
243
+ <sup>Released on **2025-10-30**</sup>
244
+
245
+ #### ✨ Features
246
+
247
+ - **misc**: 2.0 next baseline.
248
+
249
+ <br/>
250
+
251
+ <details>
252
+ <summary><kbd>Improvements and Fixes</kbd></summary>
253
+
254
+ #### What's improved
255
+
256
+ - **misc**: 2.0 next baseline ([8c57dfd](https://github.com/lobehub/lobe-chat/commit/8c57dfd))
257
+
258
+ </details>
259
+
260
+ #### 💥 BREAKING CHANGES
261
+
262
+ - **misc**: starting V2
263
+
264
+ <div align="right">
265
+
266
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
267
+
268
+ </div>
269
+
5
270
  ## [Version 1.143.0-next.2](https://github.com/lobehub/lobe-chat/compare/v1.143.0-next.1...v1.143.0-next.2)
6
271
 
7
272
  <sup>Released on **2025-10-30**</sup>
package/README.md CHANGED
@@ -1,3 +1,10 @@
1
+ > \[!NOTE]
2
+ >
3
+ > **Version Information**
4
+ >
5
+ > - **v1.x** (Stable): Available on the [`main`](https://github.com/lobehub/lobe-chat/tree/main) branch
6
+ > - **v2.x** (In Development): Currently being actively developed on the [`next`](https://github.com/lobehub/lobe-chat/tree/next) branch 🔥
7
+
1
8
  <div align="center"><a name="readme-top"></a>
2
9
 
3
10
  [![][image-banner]][vercel-link]
package/README.zh-CN.md CHANGED
@@ -1,3 +1,10 @@
1
+ > \[!NOTE]
2
+ >
3
+ > **版本信息**
4
+ >
5
+ > - **v1.x** (稳定版):位于 [`main`](https://github.com/lobehub/lobe-chat/tree/main) 分支
6
+ > - **v2.x** (开发中):正在 [`next`](https://github.com/lobehub/lobe-chat/tree/next) 分支火热开发中 🔥
7
+
1
8
  <div align="center"><a name="readme-top"></a>
2
9
 
3
10
  [![][image-banner]][vercel-link]
@@ -1,6 +1,6 @@
1
1
  // copy from https://github.com/kirill-konshin/next-electron-rsc
2
2
  import { serialize as serializeCookie } from 'cookie';
3
- import { type Protocol, type Session, protocol } from 'electron';
3
+ import { type Protocol, type Session } from 'electron';
4
4
  import type { NextConfig } from 'next';
5
5
  import type NextNodeServer from 'next/dist/server/next-server';
6
6
  import assert from 'node:assert';
@@ -202,6 +202,11 @@ export function createHandler({
202
202
 
203
203
  if (!isDev) {
204
204
  logger.info('Initializing Next.js app for production');
205
+
206
+ // https://github.com/lobehub/lobe-chat/pull/9851
207
+ // @ts-expect-error
208
+ // noinspection JSConstantReassignment
209
+ process.env.NODE_ENV = 'production';
205
210
  const next = require(resolve.sync('next', { basedir: standaloneDir }));
206
211
 
207
212
  // @see https://github.com/vercel/next.js/issues/64031#issuecomment-2078708340
@@ -209,10 +214,7 @@ export function createHandler({
209
214
  .config as NextConfig;
210
215
  process.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(config);
211
216
 
212
- app = next({
213
- dev: false,
214
- dir: standaloneDir,
215
- }) as NextNodeServer;
217
+ app = next({ dir: standaloneDir }) as NextNodeServer;
216
218
 
217
219
  handler = app.getRequestHandler();
218
220
  preparePromise = app.prepare();