@lobehub/lobehub 2.1.1 → 2.1.3

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 (201) hide show
  1. package/.env.example +4 -3
  2. package/.github/workflows/release-desktop-stable.yml +1 -1
  3. package/CHANGELOG.md +50 -0
  4. package/Dockerfile +6 -4
  5. package/README.md +3 -4
  6. package/README.zh-CN.md +3 -4
  7. package/apps/desktop/src/main/controllers/McpInstallCtr.ts +10 -10
  8. package/apps/desktop/src/main/controllers/NetworkProxyCtr.ts +6 -6
  9. package/apps/desktop/src/main/controllers/RemoteServerSyncCtr.ts +2 -2
  10. package/changelog/v2.json +14 -0
  11. package/docs/changelog/2025-03-02-new-models.mdx +1 -1
  12. package/docs/changelog/2025-03-02-new-models.zh-CN.mdx +1 -1
  13. package/docs/changelog/2025-04-06-exports.mdx +1 -1
  14. package/docs/changelog/2025-04-06-exports.zh-CN.mdx +1 -1
  15. package/docs/changelog/2025-05-08-desktop-app.mdx +2 -2
  16. package/docs/changelog/2025-05-08-desktop-app.zh-CN.mdx +2 -2
  17. package/docs/changelog/2025-06-08-claude-4.mdx +1 -1
  18. package/docs/changelog/2025-06-08-claude-4.zh-CN.mdx +1 -1
  19. package/docs/changelog/2025-07-08-mcp-market.mdx +1 -1
  20. package/docs/changelog/2025-07-08-mcp-market.zh-CN.mdx +1 -1
  21. package/docs/changelog/2025-08-08-image-generation.mdx +1 -1
  22. package/docs/changelog/2025-08-08-image-generation.zh-CN.mdx +1 -1
  23. package/docs/changelog/2025-09-08-gemini.mdx +1 -1
  24. package/docs/changelog/2025-09-08-gemini.zh-CN.mdx +1 -1
  25. package/docs/changelog/2025-10-08-python.mdx +1 -1
  26. package/docs/changelog/2025-10-08-python.zh-CN.mdx +1 -1
  27. package/docs/changelog/2025-11-08-comfy-ui.mdx +1 -1
  28. package/docs/changelog/2025-11-08-comfy-ui.zh-CN.mdx +1 -1
  29. package/docs/changelog/2025-12-20-mcp.mdx +1 -1
  30. package/docs/changelog/2025-12-20-mcp.zh-CN.mdx +1 -1
  31. package/docs/development/basic/add-new-authentication-providers.zh-CN.mdx +1 -1
  32. package/docs/development/basic/add-new-image-model.mdx +3 -3
  33. package/docs/development/basic/add-new-image-model.zh-CN.mdx +3 -3
  34. package/docs/development/basic/chat-api.mdx +10 -10
  35. package/docs/development/basic/chat-api.zh-CN.mdx +10 -10
  36. package/docs/development/basic/feature-development.mdx +4 -4
  37. package/docs/development/basic/feature-development.zh-CN.mdx +4 -4
  38. package/docs/development/basic/setup-development.mdx +4 -4
  39. package/docs/development/basic/setup-development.zh-CN.mdx +4 -4
  40. package/docs/development/internationalization/add-new-locale.mdx +1 -1
  41. package/docs/development/internationalization/add-new-locale.zh-CN.mdx +1 -1
  42. package/docs/development/internationalization/internationalization-implementation.mdx +5 -5
  43. package/docs/development/internationalization/internationalization-implementation.zh-CN.mdx +5 -5
  44. package/docs/development/others/lighthouse.mdx +8 -8
  45. package/docs/development/others/lighthouse.zh-CN.mdx +8 -8
  46. package/docs/development/start.mdx +3 -3
  47. package/docs/development/start.zh-CN.mdx +3 -3
  48. package/docs/self-hosting/advanced/feature-flags.mdx +1 -1
  49. package/docs/self-hosting/advanced/feature-flags.zh-CN.mdx +1 -1
  50. package/docs/self-hosting/advanced/knowledge-base.mdx +2 -2
  51. package/docs/self-hosting/advanced/knowledge-base.zh-CN.mdx +2 -2
  52. package/docs/self-hosting/advanced/online-search.mdx +1 -1
  53. package/docs/self-hosting/advanced/online-search.zh-CN.mdx +1 -1
  54. package/docs/self-hosting/advanced/redis/upstash.mdx +3 -3
  55. package/docs/self-hosting/advanced/redis/upstash.zh-CN.mdx +3 -3
  56. package/docs/self-hosting/advanced/redis.mdx +6 -6
  57. package/docs/self-hosting/advanced/redis.zh-CN.mdx +6 -6
  58. package/docs/self-hosting/advanced/s3/rustfs.mdx +116 -116
  59. package/docs/self-hosting/advanced/s3/rustfs.zh-CN.mdx +116 -117
  60. package/docs/self-hosting/advanced/upstream-sync.zh-CN.mdx +5 -5
  61. package/docs/self-hosting/auth/email.mdx +70 -0
  62. package/docs/self-hosting/auth/email.zh-CN.mdx +70 -0
  63. package/docs/self-hosting/{advanced/auth → auth}/legacy.mdx +10 -10
  64. package/docs/self-hosting/{advanced/auth → auth}/legacy.zh-CN.mdx +5 -5
  65. package/docs/self-hosting/{advanced/auth → auth}/next-auth/casdoor.zh-CN.mdx +3 -3
  66. package/docs/self-hosting/{advanced/auth → auth}/next-auth/keycloak.zh-CN.mdx +2 -2
  67. package/docs/self-hosting/{advanced/auth → auth}/next-auth/logto.zh-CN.mdx +2 -2
  68. package/docs/self-hosting/{advanced/auth → auth}/providers/apple.mdx +6 -6
  69. package/docs/self-hosting/{advanced/auth → auth}/providers/apple.zh-CN.mdx +6 -6
  70. package/docs/self-hosting/{advanced/auth → auth}/providers/auth0.mdx +12 -12
  71. package/docs/self-hosting/{advanced/auth → auth}/providers/auth0.zh-CN.mdx +12 -12
  72. package/docs/self-hosting/{advanced/auth → auth}/providers/authelia.mdx +13 -13
  73. package/docs/self-hosting/{advanced/auth → auth}/providers/authelia.zh-CN.mdx +13 -13
  74. package/docs/self-hosting/{advanced/auth → auth}/providers/authentik.mdx +13 -13
  75. package/docs/self-hosting/{advanced/auth → auth}/providers/authentik.zh-CN.mdx +13 -13
  76. package/docs/self-hosting/{advanced/auth → auth}/providers/casdoor.mdx +8 -8
  77. package/docs/self-hosting/{advanced/auth → auth}/providers/casdoor.zh-CN.mdx +7 -7
  78. package/docs/self-hosting/{advanced/auth → auth}/providers/cloudflare-zero-trust.mdx +7 -7
  79. package/docs/self-hosting/{advanced/auth → auth}/providers/cloudflare-zero-trust.zh-CN.mdx +6 -6
  80. package/docs/self-hosting/{advanced/auth → auth}/providers/cognito.mdx +13 -13
  81. package/docs/self-hosting/{advanced/auth → auth}/providers/cognito.zh-CN.mdx +13 -13
  82. package/docs/self-hosting/{advanced/auth → auth}/providers/feishu.mdx +10 -10
  83. package/docs/self-hosting/{advanced/auth → auth}/providers/feishu.zh-CN.mdx +10 -10
  84. package/docs/self-hosting/{advanced/auth → auth}/providers/generic-oidc.mdx +12 -12
  85. package/docs/self-hosting/{advanced/auth → auth}/providers/generic-oidc.zh-CN.mdx +12 -12
  86. package/docs/self-hosting/{advanced/auth → auth}/providers/github.mdx +10 -10
  87. package/docs/self-hosting/{advanced/auth → auth}/providers/github.zh-CN.mdx +10 -10
  88. package/docs/self-hosting/{advanced/auth → auth}/providers/google.mdx +10 -10
  89. package/docs/self-hosting/{advanced/auth → auth}/providers/google.zh-CN.mdx +10 -10
  90. package/docs/self-hosting/{advanced/auth → auth}/providers/keycloak.mdx +11 -11
  91. package/docs/self-hosting/{advanced/auth → auth}/providers/keycloak.zh-CN.mdx +11 -11
  92. package/docs/self-hosting/{advanced/auth → auth}/providers/logto.mdx +8 -8
  93. package/docs/self-hosting/{advanced/auth → auth}/providers/logto.zh-CN.mdx +7 -7
  94. package/docs/self-hosting/{advanced/auth → auth}/providers/microsoft.mdx +11 -11
  95. package/docs/self-hosting/{advanced/auth → auth}/providers/microsoft.zh-CN.mdx +11 -11
  96. package/docs/self-hosting/{advanced/auth → auth}/providers/okta.mdx +13 -13
  97. package/docs/self-hosting/{advanced/auth → auth}/providers/okta.zh-CN.mdx +13 -13
  98. package/docs/self-hosting/auth/providers/password.mdx +112 -0
  99. package/docs/self-hosting/auth/providers/password.zh-CN.mdx +103 -0
  100. package/docs/self-hosting/{advanced/auth → auth}/providers/wechat.mdx +10 -10
  101. package/docs/self-hosting/{advanced/auth → auth}/providers/wechat.zh-CN.mdx +10 -10
  102. package/docs/self-hosting/{advanced/auth → auth}/providers/zitadel.mdx +13 -13
  103. package/docs/self-hosting/{advanced/auth → auth}/providers/zitadel.zh-CN.mdx +13 -13
  104. package/docs/self-hosting/{advanced/auth.mdx → auth.mdx} +24 -81
  105. package/docs/self-hosting/{advanced/auth.zh-CN.mdx → auth.zh-CN.mdx} +23 -80
  106. package/docs/self-hosting/environment-variables/auth.mdx +7 -0
  107. package/docs/self-hosting/environment-variables/auth.zh-CN.mdx +7 -0
  108. package/docs/self-hosting/environment-variables/basic.mdx +0 -7
  109. package/docs/self-hosting/environment-variables/basic.zh-CN.mdx +0 -7
  110. package/docs/self-hosting/environment-variables/redis.mdx +1 -1
  111. package/docs/self-hosting/environment-variables/redis.zh-CN.mdx +1 -1
  112. package/docs/self-hosting/environment-variables.mdx +1 -1
  113. package/docs/self-hosting/examples/azure-openai.mdx +0 -1
  114. package/docs/self-hosting/examples/azure-openai.zh-CN.mdx +0 -1
  115. package/docs/self-hosting/faq/no-v1-suffix.mdx +3 -3
  116. package/docs/self-hosting/faq/no-v1-suffix.zh-CN.mdx +3 -3
  117. package/docs/self-hosting/{advanced → migration/v2}/auth/clerk-to-betterauth.mdx +7 -7
  118. package/docs/self-hosting/{advanced → migration/v2}/auth/clerk-to-betterauth.zh-CN.mdx +7 -7
  119. package/docs/self-hosting/{advanced → migration/v2}/auth/migration-internals.mdx +2 -2
  120. package/docs/self-hosting/{advanced → migration/v2}/auth/migration-internals.zh-CN.mdx +2 -2
  121. package/docs/self-hosting/{advanced → migration/v2}/auth/nextauth-to-betterauth.mdx +11 -11
  122. package/docs/self-hosting/{advanced → migration/v2}/auth/nextauth-to-betterauth.zh-CN.mdx +11 -11
  123. package/docs/self-hosting/migration/v2/breaking-changes.mdx +1 -1
  124. package/docs/self-hosting/migration/v2/breaking-changes.zh-CN.mdx +1 -1
  125. package/docs/self-hosting/platform/docker-compose.zh-CN.mdx +4 -4
  126. package/docs/self-hosting/platform/docker.mdx +5 -5
  127. package/docs/self-hosting/platform/docker.zh-CN.mdx +10 -10
  128. package/docs/self-hosting/platform/dokploy.mdx +1 -1
  129. package/docs/self-hosting/platform/dokploy.zh-CN.mdx +5 -5
  130. package/docs/self-hosting/platform/sealos.mdx +12 -12
  131. package/docs/self-hosting/platform/sealos.zh-CN.mdx +17 -17
  132. package/docs/self-hosting/platform/vercel.zh-CN.mdx +4 -4
  133. package/docs/self-hosting/start.mdx +3 -3
  134. package/docs/self-hosting/start.zh-CN.mdx +4 -4
  135. package/locales/en-US/auth.json +2 -1
  136. package/locales/en-US/authError.json +1 -0
  137. package/locales/en-US/metadata.json +1 -1
  138. package/locales/zh-CN/auth.json +1 -0
  139. package/locales/zh-CN/authError.json +1 -0
  140. package/netlify.toml +0 -1
  141. package/package.json +1 -1
  142. package/packages/types/src/serverConfig.ts +1 -0
  143. package/src/app/[variants]/(auth)/auth-error/page.tsx +4 -2
  144. package/src/app/[variants]/(auth)/signin/SignInEmailStep.tsx +57 -50
  145. package/src/app/[variants]/(auth)/signin/SignInPasswordStep.tsx +1 -1
  146. package/src/app/[variants]/(auth)/signin/page.tsx +2 -0
  147. package/src/app/[variants]/(auth)/signin/useSignIn.ts +2 -0
  148. package/src/app/[variants]/(auth)/signup/[[...signup]]/page.tsx +7 -0
  149. package/src/envs/app.ts +0 -2
  150. package/src/envs/auth.ts +3 -0
  151. package/src/libs/better-auth/define-config.ts +1 -1
  152. package/src/libs/better-auth/sso/providers/feishu.ts +15 -14
  153. package/src/libs/better-auth/sso/providers/wechat.ts +6 -3
  154. package/src/libs/next/proxy/define-config.ts +1 -1
  155. package/src/locales/default/auth.ts +3 -1
  156. package/src/locales/default/authError.ts +2 -0
  157. package/src/locales/default/metadata.ts +1 -1
  158. package/src/server/globalConfig/index.ts +1 -0
  159. package/src/server/ld.ts +1 -1
  160. package/src/store/chat/slices/topic/action.ts +1 -1
  161. package/src/store/electron/actions/settings.ts +7 -7
  162. package/src/store/electron/actions/sync.ts +11 -11
  163. package/src/store/global/actions/general.ts +12 -12
  164. package/src/store/global/initialState.ts +11 -11
  165. package/src/store/global/selectors/clientDB.ts +1 -1
  166. package/src/store/global/selectors/systemStatus.ts +1 -1
  167. package/src/store/image/slices/generationConfig/action.ts +12 -12
  168. package/src/store/image/utils/size.ts +11 -11
  169. package/src/store/library/slices/ragEval/actions/dataset.ts +1 -1
  170. package/src/store/serverConfig/selectors.ts +1 -0
  171. package/src/store/session/slices/session/initialState.ts +6 -6
  172. package/src/store/session/slices/session/reducers.ts +1 -1
  173. package/src/store/session/slices/sessionGroup/initialState.ts +2 -2
  174. package/src/store/tool/slices/customPlugin/action.ts +2 -2
  175. package/src/store/tool/slices/oldStore/action.ts +5 -5
  176. package/src/store/userMemory/slices/preference/action.ts +6 -6
  177. /package/docs/self-hosting/{advanced/auth → auth}/clerk.mdx +0 -0
  178. /package/docs/self-hosting/{advanced/auth → auth}/clerk.zh-CN.mdx +0 -0
  179. /package/docs/self-hosting/{advanced/auth → auth}/next-auth/auth0.mdx +0 -0
  180. /package/docs/self-hosting/{advanced/auth → auth}/next-auth/auth0.zh-CN.mdx +0 -0
  181. /package/docs/self-hosting/{advanced/auth → auth}/next-auth/authelia.mdx +0 -0
  182. /package/docs/self-hosting/{advanced/auth → auth}/next-auth/authelia.zh-CN.mdx +0 -0
  183. /package/docs/self-hosting/{advanced/auth → auth}/next-auth/authentik.mdx +0 -0
  184. /package/docs/self-hosting/{advanced/auth → auth}/next-auth/authentik.zh-CN.mdx +0 -0
  185. /package/docs/self-hosting/{advanced/auth → auth}/next-auth/casdoor.mdx +0 -0
  186. /package/docs/self-hosting/{advanced/auth → auth}/next-auth/cloudflare-zero-trust.mdx +0 -0
  187. /package/docs/self-hosting/{advanced/auth → auth}/next-auth/cloudflare-zero-trust.zh-CN.mdx +0 -0
  188. /package/docs/self-hosting/{advanced/auth → auth}/next-auth/github.mdx +0 -0
  189. /package/docs/self-hosting/{advanced/auth → auth}/next-auth/github.zh-CN.mdx +0 -0
  190. /package/docs/self-hosting/{advanced/auth → auth}/next-auth/google.mdx +0 -0
  191. /package/docs/self-hosting/{advanced/auth → auth}/next-auth/google.zh-CN.mdx +0 -0
  192. /package/docs/self-hosting/{advanced/auth → auth}/next-auth/keycloak.mdx +0 -0
  193. /package/docs/self-hosting/{advanced/auth → auth}/next-auth/logto.mdx +0 -0
  194. /package/docs/self-hosting/{advanced/auth → auth}/next-auth/microsoft-entra-id.mdx +0 -0
  195. /package/docs/self-hosting/{advanced/auth → auth}/next-auth/microsoft-entra-id.zh-CN.mdx +0 -0
  196. /package/docs/self-hosting/{advanced/auth → auth}/next-auth/okta.mdx +0 -0
  197. /package/docs/self-hosting/{advanced/auth → auth}/next-auth/okta.zh-CN.mdx +0 -0
  198. /package/docs/self-hosting/{advanced/auth → auth}/next-auth/wechat.mdx +0 -0
  199. /package/docs/self-hosting/{advanced/auth → auth}/next-auth/wechat.zh-CN.mdx +0 -0
  200. /package/docs/self-hosting/{advanced/auth → auth}/next-auth/zitadel.mdx +0 -0
  201. /package/docs/self-hosting/{advanced/auth → auth}/next-auth/zitadel.zh-CN.mdx +0 -0
@@ -93,10 +93,10 @@ export const createCustomPluginSlice: StateCreator<
93
93
 
94
94
  updateCustomPlugin: async (id, value) => {
95
95
  const { reinstallCustomPlugin } = get();
96
- // 1. 更新 list 项信息
96
+ // 1. Update list item information
97
97
  await pluginService.updatePlugin(id, value);
98
98
 
99
- // 2. 重新安装插件
99
+ // 2. Reinstall plugin
100
100
  await reinstallCustomPlugin(id);
101
101
  },
102
102
  updateNewCustomPlugin: (newCustomPlugin) => {
@@ -148,7 +148,7 @@ export const createPluginStoreSlice: StateCreator<
148
148
  loadMorePlugins: () => {
149
149
  const { oldPluginItems, pluginTotalCount, currentPluginPage } = get();
150
150
 
151
- // 检查是否还有更多数据可以加载
151
+ // Check if there is more data to load
152
152
  if (oldPluginItems.length < (pluginTotalCount || 0)) {
153
153
  set(
154
154
  produce((draft: PluginStoreState) => {
@@ -234,19 +234,19 @@ export const createPluginStoreSlice: StateCreator<
234
234
  produce((draft: PluginStoreState) => {
235
235
  draft.pluginSearchLoading = false;
236
236
 
237
- // 设置基础信息
237
+ // Set basic information
238
238
  if (!draft.isPluginListInit) {
239
239
  draft.activePluginIdentifier = data.items?.[0]?.identifier;
240
240
  draft.isPluginListInit = true;
241
241
  draft.pluginTotalCount = data.totalCount;
242
242
  }
243
243
 
244
- // 累积数据逻辑
244
+ // Accumulate data logic
245
245
  if (params.page === 1) {
246
- // 第一页,直接设置
246
+ // First page, set directly
247
247
  draft.oldPluginItems = uniqBy(data.items, 'identifier');
248
248
  } else {
249
- // 后续页面,累积数据
249
+ // Subsequent pages, accumulate data
250
250
  draft.oldPluginItems = uniqBy(
251
251
  [...draft.oldPluginItems, ...data.items],
252
252
  'identifier',
@@ -97,28 +97,28 @@ export const createPreferenceSlice: StateCreator<
97
97
  produce((draft) => {
98
98
  draft.preferencesSearchLoading = false;
99
99
 
100
- // 设置基础信息
100
+ // Set basic information
101
101
  if (!draft.preferencesInit) {
102
102
  draft.preferencesInit = true;
103
103
  draft.preferencesTotal = data.total;
104
104
  }
105
105
 
106
- // 转换数据结构
106
+ // Transform data structure
107
107
  const transformedItems = data.items.map((item: any) => ({
108
108
  ...item.memory,
109
109
  ...item.preference,
110
110
  }));
111
111
 
112
- // 累积数据逻辑
112
+ // Accumulate data logic
113
113
  if (page === 1) {
114
- // 第一页,直接设置
114
+ // First page, set directly
115
115
  draft.preferences = uniqBy(transformedItems, 'id');
116
116
  } else {
117
- // 后续页面,累积数据
117
+ // Subsequent pages, accumulate data
118
118
  draft.preferences = uniqBy([...draft.preferences, ...transformedItems], 'id');
119
119
  }
120
120
 
121
- // 更新 hasMore
121
+ // Update hasMore
122
122
  draft.preferencesHasMore = data.items.length >= (params.pageSize || 20);
123
123
  }),
124
124
  false,