@lobehub/lobehub 2.0.0-next.3 → 2.0.0-next.30

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 (726) hide show
  1. package/.env.desktop +1 -2
  2. package/.env.example +0 -3
  3. package/.env.example.development +0 -2
  4. package/.github/workflows/claude-auto-testing.yml +73 -0
  5. package/.github/workflows/claude-translate-comments.yml +67 -0
  6. package/.github/workflows/desktop-pr-build.yml +18 -16
  7. package/.github/workflows/docker.yml +25 -20
  8. package/.github/workflows/e2e.yml +17 -3
  9. package/.github/workflows/release-desktop-beta.yml +12 -12
  10. package/.github/workflows/release.yml +3 -5
  11. package/.github/workflows/test.yml +47 -12
  12. package/.nvmrc +1 -1
  13. package/CHANGELOG.md +667 -0
  14. package/Dockerfile +1 -3
  15. package/README.md +2 -45
  16. package/README.zh-CN.md +2 -45
  17. package/apps/desktop/src/main/controllers/AuthCtr.ts +53 -39
  18. package/apps/desktop/src/main/controllers/MenuCtr.ts +5 -5
  19. package/apps/desktop/src/main/controllers/NotificationCtr.ts +29 -29
  20. package/apps/desktop/src/main/controllers/RemoteServerConfigCtr.ts +16 -16
  21. package/apps/desktop/src/main/controllers/ShortcutCtr.ts +2 -2
  22. package/apps/desktop/src/main/controllers/TrayMenuCtr.ts +18 -18
  23. package/apps/desktop/src/main/controllers/UpdaterCtr.ts +4 -4
  24. package/apps/desktop/src/main/controllers/__tests__/AuthCtr.test.ts +706 -0
  25. package/apps/desktop/src/main/controllers/__tests__/TrayMenuCtr.test.ts +5 -5
  26. package/apps/desktop/src/main/controllers/index.ts +4 -4
  27. package/apps/desktop/src/main/utils/next-electron-rsc.ts +7 -5
  28. package/apps/desktop/tsconfig.json +0 -1
  29. package/changelog/v1.json +227 -0
  30. package/docs/development/database-schema.dbml +12 -0
  31. package/docs/self-hosting/advanced/auth/next-auth/auth0.mdx +2 -2
  32. package/docs/self-hosting/advanced/auth/next-auth/auth0.zh-CN.mdx +2 -2
  33. package/docs/self-hosting/advanced/auth/next-auth/authelia.mdx +2 -2
  34. package/docs/self-hosting/advanced/auth/next-auth/authelia.zh-CN.mdx +2 -2
  35. package/docs/self-hosting/advanced/auth/next-auth/authentik.mdx +2 -2
  36. package/docs/self-hosting/advanced/auth/next-auth/authentik.zh-CN.mdx +2 -2
  37. package/docs/self-hosting/advanced/auth/next-auth/casdoor.mdx +2 -2
  38. package/docs/self-hosting/advanced/auth/next-auth/casdoor.zh-CN.mdx +2 -2
  39. package/docs/self-hosting/advanced/auth/next-auth/cloudflare-zero-trust.mdx +2 -2
  40. package/docs/self-hosting/advanced/auth/next-auth/cloudflare-zero-trust.zh-CN.mdx +2 -2
  41. package/docs/self-hosting/advanced/auth/next-auth/github.mdx +2 -2
  42. package/docs/self-hosting/advanced/auth/next-auth/github.zh-CN.mdx +2 -2
  43. package/docs/self-hosting/advanced/auth/next-auth/google.mdx +32 -29
  44. package/docs/self-hosting/advanced/auth/next-auth/keycloak.mdx +2 -2
  45. package/docs/self-hosting/advanced/auth/next-auth/keycloak.zh-CN.mdx +2 -2
  46. package/docs/self-hosting/advanced/auth/next-auth/logto.mdx +5 -3
  47. package/docs/self-hosting/advanced/auth/next-auth/logto.zh-CN.mdx +5 -3
  48. package/docs/self-hosting/advanced/auth/next-auth/microsoft-entra-id.mdx +2 -2
  49. package/docs/self-hosting/advanced/auth/next-auth/microsoft-entra-id.zh-CN.mdx +2 -2
  50. package/docs/self-hosting/advanced/auth/next-auth/okta.mdx +2 -2
  51. package/docs/self-hosting/advanced/auth/next-auth/okta.zh-CN.mdx +2 -2
  52. package/docs/self-hosting/advanced/auth/next-auth/wechat.mdx +2 -2
  53. package/docs/self-hosting/advanced/auth/next-auth/wechat.zh-CN.mdx +2 -2
  54. package/docs/self-hosting/advanced/auth/next-auth/zitadel.mdx +2 -2
  55. package/docs/self-hosting/advanced/auth/next-auth/zitadel.zh-CN.mdx +2 -2
  56. package/docs/self-hosting/advanced/auth.mdx +32 -21
  57. package/docs/self-hosting/advanced/auth.zh-CN.mdx +30 -19
  58. package/docs/self-hosting/advanced/feature-flags.mdx +0 -1
  59. package/docs/self-hosting/advanced/feature-flags.zh-CN.mdx +0 -1
  60. package/docs/self-hosting/advanced/online-search.mdx +30 -25
  61. package/docs/self-hosting/advanced/online-search.zh-CN.mdx +25 -23
  62. package/e2e/src/features/discover/detail-pages.feature +95 -0
  63. package/e2e/src/features/discover/interactions.feature +113 -0
  64. package/e2e/src/features/discover/smoke.feature +34 -1
  65. package/e2e/src/steps/discover/detail-pages.steps.ts +295 -0
  66. package/e2e/src/steps/discover/interactions.steps.ts +451 -0
  67. package/e2e/src/steps/discover/smoke.steps.ts +116 -4
  68. package/e2e/tsconfig.json +0 -1
  69. package/locales/ar/labs.json +4 -0
  70. package/locales/ar/models.json +15 -6
  71. package/locales/ar/oauth.json +1 -0
  72. package/locales/bg-BG/labs.json +4 -0
  73. package/locales/bg-BG/models.json +15 -6
  74. package/locales/bg-BG/oauth.json +1 -0
  75. package/locales/de-DE/labs.json +4 -0
  76. package/locales/de-DE/models.json +15 -6
  77. package/locales/de-DE/oauth.json +1 -0
  78. package/locales/en-US/labs.json +4 -0
  79. package/locales/en-US/models.json +15 -6
  80. package/locales/en-US/oauth.json +1 -0
  81. package/locales/es-ES/labs.json +4 -0
  82. package/locales/es-ES/models.json +15 -6
  83. package/locales/es-ES/oauth.json +1 -0
  84. package/locales/fa-IR/labs.json +4 -0
  85. package/locales/fa-IR/models.json +15 -6
  86. package/locales/fa-IR/oauth.json +1 -0
  87. package/locales/fr-FR/labs.json +4 -0
  88. package/locales/fr-FR/models.json +15 -6
  89. package/locales/fr-FR/oauth.json +1 -0
  90. package/locales/it-IT/labs.json +4 -0
  91. package/locales/it-IT/models.json +15 -6
  92. package/locales/it-IT/oauth.json +1 -0
  93. package/locales/ja-JP/labs.json +4 -0
  94. package/locales/ja-JP/models.json +15 -6
  95. package/locales/ja-JP/oauth.json +1 -0
  96. package/locales/ko-KR/labs.json +4 -0
  97. package/locales/ko-KR/models.json +21 -12
  98. package/locales/ko-KR/oauth.json +1 -0
  99. package/locales/nl-NL/labs.json +4 -0
  100. package/locales/nl-NL/models.json +15 -6
  101. package/locales/nl-NL/oauth.json +1 -0
  102. package/locales/pl-PL/labs.json +4 -0
  103. package/locales/pl-PL/models.json +15 -6
  104. package/locales/pl-PL/oauth.json +1 -0
  105. package/locales/pt-BR/labs.json +4 -0
  106. package/locales/pt-BR/models.json +15 -6
  107. package/locales/pt-BR/oauth.json +1 -0
  108. package/locales/ru-RU/labs.json +4 -0
  109. package/locales/ru-RU/models.json +15 -6
  110. package/locales/ru-RU/oauth.json +1 -0
  111. package/locales/tr-TR/labs.json +4 -0
  112. package/locales/tr-TR/models.json +15 -6
  113. package/locales/tr-TR/oauth.json +1 -0
  114. package/locales/vi-VN/labs.json +4 -0
  115. package/locales/vi-VN/models.json +15 -6
  116. package/locales/vi-VN/oauth.json +1 -0
  117. package/locales/zh-CN/labs.json +4 -0
  118. package/locales/zh-CN/models.json +15 -6
  119. package/locales/zh-CN/oauth.json +1 -0
  120. package/locales/zh-TW/labs.json +4 -0
  121. package/locales/zh-TW/models.json +15 -6
  122. package/locales/zh-TW/oauth.json +1 -0
  123. package/next.config.ts +2 -3
  124. package/package.json +74 -80
  125. package/packages/const/src/index.ts +0 -1
  126. package/packages/const/src/url.ts +1 -4
  127. package/packages/const/src/user.ts +5 -2
  128. package/packages/const/src/version.ts +3 -3
  129. package/packages/context-engine/src/index.ts +1 -6
  130. package/packages/context-engine/src/processors/GroupMessageFlatten.ts +12 -2
  131. package/packages/context-engine/src/processors/__tests__/GroupMessageFlatten.test.ts +73 -9
  132. package/packages/context-engine/src/providers/index.ts +0 -2
  133. package/packages/database/migrations/0041_improve_index.sql +10 -0
  134. package/packages/database/migrations/0042_improve_agent_index.sql +1 -0
  135. package/packages/database/migrations/0043_add_ai_model_settings.sql +1 -0
  136. package/packages/database/migrations/meta/0041_snapshot.json +7784 -0
  137. package/packages/database/migrations/meta/0042_snapshot.json +7800 -0
  138. package/packages/database/migrations/meta/0043_snapshot.json +8419 -0
  139. package/packages/database/migrations/meta/_journal.json +21 -0
  140. package/packages/database/package.json +2 -2
  141. package/packages/database/src/core/migrations.json +33 -0
  142. package/packages/database/src/core/web-server.ts +2 -1
  143. package/packages/database/src/models/__tests__/message.grouping.test.ts +812 -0
  144. package/packages/database/src/models/__tests__/message.test.ts +256 -233
  145. package/packages/database/src/models/agent.ts +16 -13
  146. package/packages/database/src/models/message.ts +90 -74
  147. package/packages/database/src/models/session.ts +80 -28
  148. package/packages/database/src/models/user.ts +2 -1
  149. package/packages/database/src/repositories/aiInfra/index.test.ts +198 -0
  150. package/packages/database/src/repositories/aiInfra/index.ts +2 -1
  151. package/packages/database/src/repositories/dataImporter/deprecated/__tests__/index.test.ts +2 -1
  152. package/packages/database/src/repositories/dataImporter/deprecated/index.ts +7 -1
  153. package/packages/database/src/schemas/agent.ts +13 -11
  154. package/packages/database/src/schemas/aiInfra.ts +2 -0
  155. package/packages/database/src/schemas/message.ts +5 -1
  156. package/packages/database/src/schemas/relations.ts +6 -4
  157. package/packages/database/src/schemas/session.ts +2 -0
  158. package/packages/database/src/schemas/topic.ts +6 -1
  159. package/packages/database/src/utils/__tests__/groupMessages.test.ts +145 -2
  160. package/packages/database/src/utils/groupMessages.ts +7 -5
  161. package/packages/electron-client-ipc/package.json +4 -1
  162. package/packages/file-loaders/package.json +1 -0
  163. package/packages/memory-extract/package.json +2 -2
  164. package/packages/model-bank/src/aiModels/anthropic.ts +0 -63
  165. package/packages/model-bank/src/aiModels/higress.ts +0 -55
  166. package/packages/model-bank/src/aiModels/infiniai.ts +21 -0
  167. package/packages/model-bank/src/aiModels/ollamacloud.ts +13 -0
  168. package/packages/model-bank/src/aiModels/siliconcloud.ts +19 -0
  169. package/packages/model-runtime/src/core/streams/openai/__snapshots__/responsesStream.test.ts.snap +0 -38
  170. package/packages/model-runtime/src/providers/minimax/index.ts +5 -5
  171. package/packages/model-runtime/src/providers/search1api/index.test.ts +2 -2
  172. package/packages/model-runtime/src/utils/googleErrorParser.test.ts +125 -0
  173. package/packages/model-runtime/src/utils/googleErrorParser.ts +103 -77
  174. package/packages/types/src/discover/mcp.ts +6 -0
  175. package/packages/types/src/index.ts +0 -1
  176. package/packages/types/src/message/common/base.ts +13 -0
  177. package/packages/types/src/message/common/image.ts +8 -0
  178. package/packages/types/src/message/common/metadata.ts +39 -0
  179. package/packages/types/src/message/common/tools.ts +10 -0
  180. package/packages/types/src/message/db/params.ts +47 -1
  181. package/packages/types/src/message/ui/chat.ts +4 -1
  182. package/packages/types/src/message/ui/params.ts +49 -4
  183. package/packages/types/src/plugins/mcp.ts +4 -1
  184. package/packages/types/src/search.ts +16 -0
  185. package/packages/types/src/serverConfig.ts +2 -6
  186. package/packages/types/src/topic/topic.ts +14 -0
  187. package/packages/types/src/user/index.ts +2 -76
  188. package/packages/types/src/user/preference.ts +105 -0
  189. package/packages/types/src/user/settings/index.ts +22 -0
  190. package/packages/utils/src/apiKey.test.ts +139 -0
  191. package/packages/utils/src/client/clipboard.ts +2 -2
  192. package/packages/utils/src/client/exportFile.ts +10 -10
  193. package/packages/utils/src/client/parserPlaceholder.ts +18 -18
  194. package/packages/utils/src/client/topic.ts +10 -10
  195. package/packages/utils/src/client/xor-obfuscation.ts +11 -11
  196. package/packages/utils/src/server/auth.ts +6 -6
  197. package/packages/utils/src/server/geo.ts +9 -9
  198. package/packages/utils/src/server/xor.ts +7 -7
  199. package/packages/web-crawler/src/crawImpl/firecrawl.ts +39 -12
  200. package/packages/web-crawler/tsconfig.json +0 -1
  201. package/renovate.json +23 -1
  202. package/scripts/migrateServerDB/errorHint.js +1 -7
  203. package/scripts/migrateServerDB/index.ts +2 -1
  204. package/src/app/(backend)/webapi/revalidate/route.ts +1 -1
  205. package/src/app/[variants]/(auth)/signup/[[...signup]]/page.tsx +1 -8
  206. package/src/app/[variants]/(main)/(mobile)/me/(home)/__tests__/useCategory.test.tsx +9 -0
  207. package/src/app/[variants]/(main)/(mobile)/me/(home)/features/UserBanner.tsx +3 -6
  208. package/src/app/[variants]/(main)/(mobile)/me/(home)/layout.tsx +0 -2
  209. package/src/app/[variants]/(main)/_layout/Desktop/SideBar/TopActions.tsx +1 -4
  210. package/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/V1Mobile/index.tsx +2 -2
  211. package/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/V1Mobile/useSend.ts +6 -4
  212. package/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/useSend.ts +15 -10
  213. package/src/app/[variants]/(main)/chat/@session/features/SessionListContent/List/Item/Actions.tsx +3 -28
  214. package/src/app/[variants]/(main)/chat/@session/features/SessionListContent/List/Item/index.tsx +4 -2
  215. package/src/app/[variants]/(main)/chat/_layout/Desktop/index.tsx +0 -2
  216. package/src/app/[variants]/(main)/chat/_layout/Mobile.tsx +1 -5
  217. package/src/app/[variants]/(main)/chat/settings/features/HeaderContent.tsx +2 -62
  218. package/src/app/[variants]/(main)/discover/(list)/features/Pagination.tsx +1 -0
  219. package/src/app/[variants]/(main)/discover/(list)/features/SortButton/index.tsx +1 -1
  220. package/src/app/[variants]/(main)/discover/(list)/mcp/features/List/Item.tsx +1 -0
  221. package/src/app/[variants]/(main)/discover/(list)/model/features/List/Item.tsx +1 -0
  222. package/src/app/[variants]/(main)/discover/(list)/provider/features/List/Item.tsx +1 -0
  223. package/src/app/[variants]/(main)/discover/components/CategoryMenu.tsx +9 -1
  224. package/src/app/[variants]/(main)/image/@topic/features/Topics/TopicList.tsx +1 -0
  225. package/src/app/[variants]/(main)/image/features/PromptInput/index.tsx +1 -1
  226. package/src/app/[variants]/(main)/image/page.tsx +0 -2
  227. package/src/app/[variants]/(main)/labs/components/LabCard.tsx +8 -6
  228. package/src/app/[variants]/(main)/labs/page.tsx +19 -22
  229. package/src/app/[variants]/(main)/profile/_layout/Desktop/index.tsx +23 -24
  230. package/src/app/[variants]/(main)/profile/_layout/Mobile/index.tsx +5 -9
  231. package/src/app/[variants]/(main)/settings/_layout/Desktop/index.tsx +0 -2
  232. package/src/app/[variants]/(main)/settings/_layout/Mobile/index.tsx +0 -2
  233. package/src/app/[variants]/(main)/settings/provider/(list)/ProviderGrid/Card.tsx +1 -1
  234. package/src/app/[variants]/(main)/settings/provider/detail/azure/index.tsx +6 -8
  235. package/src/app/[variants]/(main)/settings/provider/detail/azureai/index.tsx +1 -1
  236. package/src/app/[variants]/(main)/settings/provider/detail/bedrock/index.tsx +1 -1
  237. package/src/app/[variants]/(main)/settings/provider/detail/cloudflare/index.tsx +1 -1
  238. package/src/app/[variants]/(main)/settings/provider/detail/comfyui/index.tsx +1 -1
  239. package/src/app/[variants]/(main)/settings/provider/detail/github/index.tsx +1 -1
  240. package/src/app/[variants]/(main)/settings/provider/detail/vertexai/index.tsx +1 -1
  241. package/src/app/[variants]/(main)/settings/provider/features/ProviderConfig/index.tsx +2 -4
  242. package/src/app/[variants]/layout.tsx +1 -0
  243. package/src/app/[variants]/loading/index.tsx +1 -10
  244. package/src/app/[variants]/oauth/ResultLayout.tsx +47 -0
  245. package/src/app/[variants]/oauth/callback/error/page.tsx +20 -33
  246. package/src/app/[variants]/oauth/callback/layout.tsx +1 -0
  247. package/src/app/[variants]/oauth/callback/success/page.tsx +8 -22
  248. package/src/app/[variants]/oauth/consent/[uid]/Consent/BuiltinConsent.tsx +47 -0
  249. package/src/app/[variants]/oauth/consent/[uid]/{Consent.tsx → Consent/index.tsx} +12 -1
  250. package/src/app/[variants]/oauth/consent/[uid]/Login.tsx +19 -2
  251. package/src/app/sitemap.tsx +7 -1
  252. package/src/components/InvalidAPIKey/APIKeyForm/Bedrock.tsx +8 -13
  253. package/src/components/Link.tsx +12 -0
  254. package/src/components/Skeleton/SkeletonSwitch.tsx +13 -0
  255. package/src/components/Skeleton/index.ts +2 -0
  256. package/src/components/Thinking/index.tsx +4 -3
  257. package/src/config/db.ts +0 -5
  258. package/src/config/featureFlags/schema.test.ts +0 -2
  259. package/src/config/featureFlags/schema.ts +0 -6
  260. package/src/config/modelProviders/ai21.ts +1 -16
  261. package/src/config/modelProviders/ai302.ts +1 -128
  262. package/src/config/modelProviders/ai360.ts +1 -32
  263. package/src/config/modelProviders/anthropic.ts +1 -94
  264. package/src/config/modelProviders/azure.ts +1 -51
  265. package/src/config/modelProviders/baichuan.ts +1 -57
  266. package/src/config/modelProviders/bedrock.ts +1 -276
  267. package/src/config/modelProviders/cloudflare.ts +1 -64
  268. package/src/config/modelProviders/deepseek.ts +1 -19
  269. package/src/config/modelProviders/fireworksai.ts +1 -174
  270. package/src/config/modelProviders/giteeai.ts +1 -135
  271. package/src/config/modelProviders/github.ts +1 -254
  272. package/src/config/modelProviders/google.ts +1 -130
  273. package/src/config/modelProviders/groq.ts +1 -119
  274. package/src/config/modelProviders/higress.ts +1 -1736
  275. package/src/config/modelProviders/huggingface.ts +1 -54
  276. package/src/config/modelProviders/hunyuan.ts +1 -83
  277. package/src/config/modelProviders/infiniai.ts +1 -74
  278. package/src/config/modelProviders/internlm.ts +1 -20
  279. package/src/config/modelProviders/minimax.ts +1 -1
  280. package/src/config/modelProviders/mistral.ts +1 -95
  281. package/src/config/modelProviders/modelscope.ts +1 -27
  282. package/src/config/modelProviders/moonshot.ts +1 -29
  283. package/src/config/modelProviders/novita.ts +1 -105
  284. package/src/config/modelProviders/ollama.ts +1 -325
  285. package/src/config/modelProviders/openai.ts +1 -242
  286. package/src/config/modelProviders/openrouter.ts +1 -240
  287. package/src/config/modelProviders/perplexity.ts +1 -45
  288. package/src/config/modelProviders/ppio.ts +1 -152
  289. package/src/config/modelProviders/qiniu.ts +2 -19
  290. package/src/config/modelProviders/qwen.ts +1 -245
  291. package/src/config/modelProviders/search1api.ts +1 -34
  292. package/src/config/modelProviders/sensenova.ts +1 -69
  293. package/src/config/modelProviders/siliconcloud.ts +1 -417
  294. package/src/config/modelProviders/spark.ts +1 -59
  295. package/src/config/modelProviders/stepfun.ts +1 -98
  296. package/src/config/modelProviders/taichu.ts +1 -18
  297. package/src/config/modelProviders/togetherai.ts +1 -274
  298. package/src/config/modelProviders/upstage.ts +1 -28
  299. package/src/config/modelProviders/wenxin.ts +1 -140
  300. package/src/config/modelProviders/xai.ts +1 -38
  301. package/src/config/modelProviders/zeroone.ts +1 -81
  302. package/src/config/modelProviders/zhipu.ts +1 -108
  303. package/src/envs/app.ts +5 -8
  304. package/src/envs/auth.ts +0 -179
  305. package/src/features/AgentSetting/AgentPlugin/index.tsx +2 -2
  306. package/src/features/ChatInput/ActionBar/STT/browser.tsx +2 -2
  307. package/src/features/ChatInput/ActionBar/STT/openai.tsx +2 -2
  308. package/src/features/ChatInput/ActionBar/Tools/useControls.tsx +1 -3
  309. package/src/features/ChatInput/ActionBar/index.tsx +2 -2
  310. package/src/features/ChatInput/InputEditor/index.tsx +2 -2
  311. package/src/features/Conversation/Error/ErrorJsonViewer.tsx +4 -3
  312. package/src/features/Conversation/Error/OllamaBizError/index.tsx +7 -2
  313. package/src/features/Conversation/Error/index.tsx +15 -5
  314. package/src/features/Conversation/MarkdownElements/LobeArtifact/Render/index.tsx +2 -2
  315. package/src/features/Conversation/Messages/Assistant/Extra/index.tsx +2 -2
  316. package/src/features/Conversation/Messages/Assistant/MessageContent.tsx +5 -3
  317. package/src/features/Conversation/Messages/Assistant/Tool/Inspector/BuiltinPluginTitle.tsx +2 -2
  318. package/src/features/Conversation/Messages/Assistant/Tool/Inspector/ToolTitle.tsx +4 -2
  319. package/src/features/Conversation/Messages/Assistant/Tool/Render/CustomRender.tsx +2 -2
  320. package/src/features/Conversation/Messages/Assistant/Tool/Render/index.tsx +2 -2
  321. package/src/features/Conversation/Messages/Assistant/Tool/index.tsx +2 -2
  322. package/src/features/Conversation/Messages/Assistant/index.tsx +4 -4
  323. package/src/features/Conversation/Messages/Default.tsx +2 -2
  324. package/src/features/Conversation/Messages/Group/Actions/WithContentId.tsx +152 -0
  325. package/src/features/Conversation/Messages/Group/Actions/WithoutContentId.tsx +70 -0
  326. package/src/features/Conversation/Messages/Group/Actions/index.tsx +21 -0
  327. package/src/features/Conversation/Messages/Group/ContentBlock.tsx +91 -0
  328. package/src/features/Conversation/Messages/Group/EditState.tsx +51 -0
  329. package/src/features/Conversation/Messages/Group/Error/index.tsx +53 -0
  330. package/src/features/Conversation/Messages/Group/GroupChildren.tsx +73 -0
  331. package/src/features/Conversation/Messages/Group/MessageContent.tsx +39 -0
  332. package/src/features/Conversation/Messages/Group/Tool/Inspector/BuiltinPluginTitle.tsx +49 -0
  333. package/src/features/Conversation/Messages/Group/Tool/Inspector/Debug.tsx +70 -0
  334. package/src/features/Conversation/Messages/Group/Tool/Inspector/PluginResult.tsx +34 -0
  335. package/src/features/Conversation/Messages/Group/Tool/Inspector/PluginState.tsx +18 -0
  336. package/src/features/Conversation/Messages/Group/Tool/Inspector/Settings.tsx +40 -0
  337. package/src/features/Conversation/Messages/Group/Tool/Inspector/ToolTitle.tsx +92 -0
  338. package/src/features/Conversation/Messages/Group/Tool/Inspector/index.tsx +176 -0
  339. package/src/features/Conversation/Messages/Group/Tool/Render/Arguments/ObjectEntity.tsx +81 -0
  340. package/src/features/Conversation/Messages/Group/Tool/Render/Arguments/ValueCell.tsx +43 -0
  341. package/src/features/Conversation/Messages/Group/Tool/Render/Arguments/index.tsx +134 -0
  342. package/src/features/Conversation/Messages/Group/Tool/Render/CustomRender.tsx +88 -0
  343. package/src/features/Conversation/Messages/Group/Tool/Render/ErrorResponse.tsx +35 -0
  344. package/src/features/Conversation/Messages/Group/Tool/Render/LoadingPlaceholder/index.tsx +29 -0
  345. package/src/features/Conversation/Messages/Group/Tool/Render/PluginSettings.tsx +66 -0
  346. package/src/features/Conversation/Messages/Group/Tool/Render/index.tsx +105 -0
  347. package/src/features/Conversation/Messages/Group/Tool/index.tsx +75 -0
  348. package/src/features/Conversation/Messages/Group/Tools.tsx +46 -0
  349. package/src/features/Conversation/Messages/Group/index.tsx +140 -0
  350. package/src/features/Conversation/Messages/User/Extra.tsx +2 -2
  351. package/src/features/Conversation/Messages/User/index.tsx +4 -4
  352. package/src/features/Conversation/Messages/index.tsx +15 -3
  353. package/src/features/Conversation/components/AutoScroll.tsx +2 -2
  354. package/src/features/Conversation/components/Extras/Usage/UsageDetail/index.tsx +9 -6
  355. package/src/features/Conversation/components/ShareMessageModal/ShareImage/Preview.tsx +2 -2
  356. package/src/features/DataImporter/index.tsx +15 -60
  357. package/src/features/DevPanel/PostgresViewer/usePgTable.ts +3 -2
  358. package/src/features/MCP/utils.test.ts +91 -0
  359. package/src/features/MCP/utils.ts +20 -2
  360. package/src/features/PluginStore/Content.tsx +2 -3
  361. package/src/features/PluginStore/McpList/index.tsx +6 -2
  362. package/src/features/PluginTag/index.tsx +1 -3
  363. package/src/features/PluginsUI/Render/BuiltinType/index.test.tsx +37 -28
  364. package/src/features/Portal/Artifacts/Body/index.tsx +2 -2
  365. package/src/helpers/isCanUseFC.ts +0 -8
  366. package/src/hooks/useEnabledChatModels.ts +0 -8
  367. package/src/hooks/useInterceptingRoutes.test.ts +21 -3
  368. package/src/hooks/useModelContextWindowTokens.ts +0 -8
  369. package/src/hooks/useModelHasContextWindowToken.ts +1 -10
  370. package/src/hooks/useModelSupportFiles.ts +1 -11
  371. package/src/hooks/useModelSupportReasoning.ts +1 -11
  372. package/src/hooks/useModelSupportToolUse.ts +1 -11
  373. package/src/hooks/useModelSupportVision.ts +1 -11
  374. package/src/layout/AuthProvider/Clerk/index.tsx +2 -16
  375. package/src/libs/next-auth/auth.config.ts +3 -6
  376. package/src/libs/next-auth/sso-providers/auth0.ts +0 -7
  377. package/src/libs/next-auth/sso-providers/authelia.ts +3 -5
  378. package/src/libs/next-auth/sso-providers/authentik.ts +0 -7
  379. package/src/libs/next-auth/sso-providers/cloudflare-zero-trust.ts +3 -6
  380. package/src/libs/next-auth/sso-providers/cognito.ts +1 -5
  381. package/src/libs/next-auth/sso-providers/generic-oidc.ts +3 -5
  382. package/src/libs/next-auth/sso-providers/github.ts +0 -6
  383. package/src/libs/next-auth/sso-providers/google.ts +0 -2
  384. package/src/libs/next-auth/sso-providers/index.ts +0 -2
  385. package/src/libs/next-auth/sso-providers/keycloak.ts +0 -3
  386. package/src/libs/next-auth/sso-providers/logto.ts +3 -5
  387. package/src/libs/next-auth/sso-providers/okta.ts +0 -4
  388. package/src/libs/next-auth/sso-providers/zitadel.ts +0 -7
  389. package/src/libs/oidc-provider/provider.ts +1 -1
  390. package/src/libs/trpc/client/index.ts +0 -1
  391. package/src/libs/trpc/client/lambda.ts +8 -5
  392. package/src/libs/trpc/lambda/context.ts +4 -1
  393. package/src/locales/default/labs.ts +4 -0
  394. package/src/locales/default/oauth.ts +1 -0
  395. package/src/server/globalConfig/index.ts +0 -23
  396. package/src/server/modules/AssistantStore/index.ts +1 -1
  397. package/src/server/modules/ModelRuntime/trace.ts +11 -4
  398. package/src/server/routers/desktop/mcp.ts +1 -3
  399. package/src/server/routers/lambda/__tests__/integration/message.integration.test.ts +810 -70
  400. package/src/server/routers/lambda/config/__snapshots__/index.test.ts.snap +175 -12
  401. package/src/server/routers/lambda/config/index.test.ts +38 -30
  402. package/src/server/routers/lambda/market/index.ts +4 -2
  403. package/src/server/routers/lambda/message.ts +60 -52
  404. package/src/server/routers/lambda/session.ts +8 -5
  405. package/src/server/routers/lambda/topic.ts +7 -1
  406. package/src/server/routers/lambda/user.ts +32 -31
  407. package/src/server/routers/tools/mcp.ts +2 -3
  408. package/src/server/routers/tools/search.test.ts +1 -7
  409. package/src/server/routers/tools/search.ts +1 -4
  410. package/src/server/services/mcp/deps/MCPSystemDepsCheckService.test.ts +541 -0
  411. package/src/server/services/message/__tests__/index.test.ts +348 -0
  412. package/src/server/services/message/index.ts +159 -0
  413. package/src/server/services/search/impls/firecrawl/index.ts +51 -11
  414. package/src/server/services/search/impls/firecrawl/type.ts +60 -9
  415. package/src/services/__tests__/tool.test.ts +0 -3
  416. package/src/services/aiModel/index.test.ts +3 -6
  417. package/src/services/aiModel/index.ts +55 -7
  418. package/src/services/aiProvider/index.test.ts +2 -5
  419. package/src/services/aiProvider/index.ts +47 -7
  420. package/src/services/chat/chat.test.ts +13 -40
  421. package/src/services/chat/contextEngineering.test.ts +0 -30
  422. package/src/services/chat/contextEngineering.ts +7 -17
  423. package/src/services/chat/helper.ts +7 -31
  424. package/src/services/chat/index.ts +5 -10
  425. package/src/services/chat/types.ts +1 -1
  426. package/src/services/chatGroup/index.ts +64 -9
  427. package/src/services/config.ts +1 -65
  428. package/src/services/export/index.ts +9 -4
  429. package/src/services/file/index.ts +59 -10
  430. package/src/services/import/index.ts +132 -7
  431. package/src/services/mcp.test.ts +777 -0
  432. package/src/services/mcp.ts +40 -6
  433. package/src/services/message/index.ts +203 -10
  434. package/src/services/message/{__tests__/server.test.ts → server.test.ts} +3 -3
  435. package/src/services/models.ts +2 -11
  436. package/src/services/plugin/index.test.ts +8 -0
  437. package/src/services/plugin/index.ts +51 -10
  438. package/src/services/session/index.test.ts +8 -0
  439. package/src/services/session/index.ts +143 -10
  440. package/src/services/tableViewer/client.ts +12 -15
  441. package/src/services/thread/index.test.ts +8 -0
  442. package/src/services/thread/index.ts +37 -7
  443. package/src/services/topic/index.test.ts +8 -0
  444. package/src/services/topic/index.ts +74 -10
  445. package/src/services/user/index.test.ts +8 -0
  446. package/src/services/user/index.ts +50 -11
  447. package/src/store/aiInfra/slices/aiModel/action.test.ts +17 -9
  448. package/src/store/chat/helpers.test.ts +99 -0
  449. package/src/store/chat/helpers.ts +21 -2
  450. package/src/store/chat/selectors.ts +1 -1
  451. package/src/store/chat/slices/aiChat/actions/__tests__/generateAIChat.test.ts +17 -251
  452. package/src/store/chat/slices/aiChat/actions/__tests__/generateAIChatV2.test.ts +339 -7
  453. package/src/store/chat/slices/aiChat/actions/__tests__/helpers.ts +9 -5
  454. package/src/store/chat/slices/aiChat/actions/generateAIChat.ts +49 -178
  455. package/src/store/chat/slices/aiChat/actions/generateAIChatV2.ts +272 -14
  456. package/src/store/chat/slices/aiChat/actions/generateAIGroupChat.ts +7 -2
  457. package/src/store/chat/slices/builtinTool/actions/index.ts +1 -4
  458. package/src/store/chat/slices/builtinTool/actions/search.ts +3 -3
  459. package/src/store/chat/slices/message/action.test.ts +157 -16
  460. package/src/store/chat/slices/message/action.ts +153 -77
  461. package/src/store/chat/slices/message/reducer.test.ts +363 -5
  462. package/src/store/chat/slices/message/reducer.ts +87 -3
  463. package/src/store/chat/slices/message/{selectors.test.ts → selectors/chat.test.ts} +266 -30
  464. package/src/store/chat/slices/message/{selectors.ts → selectors/chat.ts} +29 -79
  465. package/src/store/chat/slices/message/selectors/index.ts +2 -0
  466. package/src/store/chat/slices/message/selectors/messageState.test.ts +36 -0
  467. package/src/store/chat/slices/message/selectors/messageState.ts +80 -0
  468. package/src/store/chat/slices/plugin/action.test.ts +118 -157
  469. package/src/store/chat/slices/plugin/action.ts +53 -68
  470. package/src/store/chat/slices/thread/action.test.ts +13 -4
  471. package/src/store/chat/slices/thread/action.ts +3 -1
  472. package/src/store/chat/slices/topic/action.test.ts +1 -1
  473. package/src/store/chat/slices/topic/action.ts +1 -2
  474. package/src/store/chat/slices/topic/reducer.ts +1 -2
  475. package/src/store/file/slices/chat/action.ts +1 -4
  476. package/src/store/file/slices/fileManager/action.ts +2 -3
  477. package/src/store/global/store.ts +1 -7
  478. package/src/store/session/slices/sessionGroup/action.test.ts +5 -5
  479. package/src/store/tool/selectors/tool.test.ts +1 -1
  480. package/src/store/tool/selectors/tool.ts +6 -8
  481. package/src/store/tool/slices/builtin/action.test.ts +83 -35
  482. package/src/store/tool/slices/builtin/action.ts +0 -9
  483. package/src/store/tool/slices/builtin/selectors.test.ts +4 -30
  484. package/src/store/tool/slices/builtin/selectors.ts +15 -21
  485. package/src/store/tool/slices/mcpStore/action.test.ts +95 -3
  486. package/src/store/tool/slices/mcpStore/action.ts +177 -53
  487. package/src/store/tool/slices/oldStore/initialState.ts +1 -2
  488. package/src/store/user/initialState.ts +1 -7
  489. package/src/store/user/selectors.ts +1 -5
  490. package/src/store/user/slices/common/action.test.ts +1 -4
  491. package/src/store/user/slices/common/action.ts +5 -4
  492. package/src/store/user/slices/preference/action.ts +8 -1
  493. package/src/store/user/slices/preference/selectors/index.ts +2 -0
  494. package/src/store/user/slices/preference/selectors/labPrefer.ts +13 -0
  495. package/src/store/user/slices/preference/{selectors.ts → selectors/preference.ts} +0 -2
  496. package/src/store/user/slices/settings/selectors/index.ts +1 -0
  497. package/src/store/user/slices/settings/selectors/keyVaults.ts +21 -0
  498. package/src/store/user/store.ts +0 -3
  499. package/src/tools/index.ts +0 -6
  500. package/src/tools/renders.ts +0 -3
  501. package/src/tools/web-browsing/Portal/Search/Footer.tsx +2 -2
  502. package/src/tools/web-browsing/Render/Search/ConfigForm/Form.tsx +1 -1
  503. package/tsconfig.json +9 -3
  504. package/packages/const/src/guide.ts +0 -89
  505. package/packages/context-engine/src/providers/InboxGuide.ts +0 -102
  506. package/packages/context-engine/src/providers/__tests__/InboxGuideProvider.test.ts +0 -121
  507. package/packages/utils/src/_deprecated/__snapshots__/parseModels.test.ts.snap +0 -104
  508. package/packages/utils/src/_deprecated/parseModels.test.ts +0 -287
  509. package/packages/utils/src/_deprecated/parseModels.ts +0 -165
  510. package/src/app/(backend)/trpc/edge/[trpc]/route.ts +0 -26
  511. package/src/app/[variants]/(main)/(mobile)/me/data/features/Category.tsx +0 -48
  512. package/src/app/[variants]/(main)/(mobile)/me/data/features/Header.tsx +0 -33
  513. package/src/app/[variants]/(main)/(mobile)/me/data/layout.tsx +0 -13
  514. package/src/app/[variants]/(main)/(mobile)/me/data/loading.tsx +0 -5
  515. package/src/app/[variants]/(main)/(mobile)/me/data/page.tsx +0 -29
  516. package/src/app/[variants]/(main)/chat/features/Migration/DBReader.ts +0 -290
  517. package/src/app/[variants]/(main)/chat/features/Migration/ExportConfigButton.tsx +0 -35
  518. package/src/app/[variants]/(main)/chat/features/Migration/Failed.tsx +0 -120
  519. package/src/app/[variants]/(main)/chat/features/Migration/Modal.tsx +0 -81
  520. package/src/app/[variants]/(main)/chat/features/Migration/Start.tsx +0 -108
  521. package/src/app/[variants]/(main)/chat/features/Migration/UpgradeButton.tsx +0 -71
  522. package/src/app/[variants]/(main)/chat/features/Migration/const.ts +0 -15
  523. package/src/app/[variants]/(main)/chat/features/Migration/index.tsx +0 -50
  524. package/src/app/[variants]/loading/Client/Content.tsx +0 -48
  525. package/src/app/[variants]/loading/Client/Error.tsx +0 -27
  526. package/src/app/[variants]/loading/Client/Redirect.tsx +0 -47
  527. package/src/app/[variants]/loading/Client/index.tsx +0 -22
  528. package/src/components/InnerLink.tsx +0 -20
  529. package/src/database/_deprecated/core/__tests__/db-upgrade.test.ts +0 -42
  530. package/src/database/_deprecated/core/__tests__/db.test.ts +0 -79
  531. package/src/database/_deprecated/core/__tests__/model.test.ts +0 -55
  532. package/src/database/_deprecated/core/db.ts +0 -246
  533. package/src/database/_deprecated/core/index.ts +0 -2
  534. package/src/database/_deprecated/core/migrations/migrateSettingsToUser/fixtures/input.json +0 -55
  535. package/src/database/_deprecated/core/migrations/migrateSettingsToUser/fixtures/output.json +0 -60
  536. package/src/database/_deprecated/core/migrations/migrateSettingsToUser/index.test.ts +0 -14
  537. package/src/database/_deprecated/core/migrations/migrateSettingsToUser/index.ts +0 -22
  538. package/src/database/_deprecated/core/migrations/migrateSettingsToUser/type.ts +0 -105
  539. package/src/database/_deprecated/core/model.ts +0 -218
  540. package/src/database/_deprecated/core/schemas.ts +0 -88
  541. package/src/database/_deprecated/core/types/db.ts +0 -15
  542. package/src/database/_deprecated/models/__DEBUG.ts +0 -124
  543. package/src/database/_deprecated/models/__tests__/file.test.ts +0 -83
  544. package/src/database/_deprecated/models/__tests__/message.test.ts +0 -426
  545. package/src/database/_deprecated/models/__tests__/plugin.test.ts +0 -81
  546. package/src/database/_deprecated/models/__tests__/session.test.ts +0 -253
  547. package/src/database/_deprecated/models/__tests__/sessionGroup.test.ts +0 -220
  548. package/src/database/_deprecated/models/__tests__/topic.test.ts +0 -523
  549. package/src/database/_deprecated/models/__tests__/user.test.ts +0 -82
  550. package/src/database/_deprecated/models/file.ts +0 -51
  551. package/src/database/_deprecated/models/message.ts +0 -277
  552. package/src/database/_deprecated/models/plugin.ts +0 -62
  553. package/src/database/_deprecated/models/session.ts +0 -271
  554. package/src/database/_deprecated/models/sessionGroup.ts +0 -93
  555. package/src/database/_deprecated/models/topic.ts +0 -250
  556. package/src/database/_deprecated/models/user.ts +0 -69
  557. package/src/database/_deprecated/schemas/files.ts +0 -39
  558. package/src/database/_deprecated/schemas/message.ts +0 -50
  559. package/src/database/_deprecated/schemas/plugin.ts +0 -12
  560. package/src/database/_deprecated/schemas/session.ts +0 -54
  561. package/src/database/_deprecated/schemas/sessionGroup.ts +0 -8
  562. package/src/database/_deprecated/schemas/topic.ts +0 -12
  563. package/src/database/_deprecated/schemas/user.ts +0 -40
  564. package/src/envs/__tests__/auth.test.ts +0 -200
  565. package/src/features/DataImporter/_deprecated.ts +0 -43
  566. package/src/features/InitClientDB/EnableModal.tsx +0 -118
  567. package/src/features/InitClientDB/ErrorResult.tsx +0 -143
  568. package/src/features/InitClientDB/InitIndicator.tsx +0 -124
  569. package/src/features/InitClientDB/PGliteIcon.tsx +0 -28
  570. package/src/features/InitClientDB/features/DatabaseRepair/Backup.tsx +0 -75
  571. package/src/features/InitClientDB/features/DatabaseRepair/Diagnosis.tsx +0 -98
  572. package/src/features/InitClientDB/features/DatabaseRepair/Repair.tsx +0 -218
  573. package/src/features/InitClientDB/features/DatabaseRepair/index.tsx +0 -91
  574. package/src/features/InitClientDB/index.tsx +0 -37
  575. package/src/hooks/_header.ts +0 -23
  576. package/src/libs/next-auth/sso-providers/azure-ad.ts +0 -33
  577. package/src/libs/trpc/client/edge.ts +0 -26
  578. package/src/libs/trpc/edge/context.ts +0 -71
  579. package/src/libs/trpc/edge/index.ts +0 -45
  580. package/src/libs/trpc/edge/init.ts +0 -26
  581. package/src/libs/trpc/edge/middleware/jwtPayload.test.ts +0 -75
  582. package/src/libs/trpc/edge/middleware/jwtPayload.ts +0 -14
  583. package/src/migrations/FromV0ToV1.ts +0 -10
  584. package/src/migrations/FromV1ToV2/fixtures/input-v1-session.json +0 -191
  585. package/src/migrations/FromV1ToV2/fixtures/output-v2.json +0 -202
  586. package/src/migrations/FromV1ToV2/index.ts +0 -82
  587. package/src/migrations/FromV1ToV2/migrations.test.ts +0 -224
  588. package/src/migrations/FromV1ToV2/types/v1.ts +0 -78
  589. package/src/migrations/FromV1ToV2/types/v2.ts +0 -52
  590. package/src/migrations/FromV2ToV3/fixtures/input-v2-session.json +0 -72
  591. package/src/migrations/FromV2ToV3/fixtures/output-v3-from-v1.json +0 -203
  592. package/src/migrations/FromV2ToV3/fixtures/output-v3.json +0 -74
  593. package/src/migrations/FromV2ToV3/index.ts +0 -30
  594. package/src/migrations/FromV2ToV3/migrations.test.ts +0 -42
  595. package/src/migrations/FromV2ToV3/types/v3.ts +0 -27
  596. package/src/migrations/FromV3ToV4/fixtures/azure-input-v3.json +0 -79
  597. package/src/migrations/FromV3ToV4/fixtures/azure-output-v4.json +0 -75
  598. package/src/migrations/FromV3ToV4/fixtures/ollama-input-v3.json +0 -85
  599. package/src/migrations/FromV3ToV4/fixtures/ollama-output-v4.json +0 -86
  600. package/src/migrations/FromV3ToV4/fixtures/openai-input-v3.json +0 -77
  601. package/src/migrations/FromV3ToV4/fixtures/openai-output-v4.json +0 -77
  602. package/src/migrations/FromV3ToV4/fixtures/openrouter-input-v3.json +0 -82
  603. package/src/migrations/FromV3ToV4/fixtures/openrouter-output-v4.json +0 -85
  604. package/src/migrations/FromV3ToV4/fixtures/output-v4-from-v1.json +0 -203
  605. package/src/migrations/FromV3ToV4/index.ts +0 -102
  606. package/src/migrations/FromV3ToV4/migrations.test.ts +0 -195
  607. package/src/migrations/FromV3ToV4/types/v3.ts +0 -52
  608. package/src/migrations/FromV3ToV4/types/v4.ts +0 -37
  609. package/src/migrations/FromV4ToV5/fixtures/from-v1-to-v5-output.json +0 -245
  610. package/src/migrations/FromV4ToV5/fixtures/function-input-v4.json +0 -96
  611. package/src/migrations/FromV4ToV5/fixtures/function-output-v5.json +0 -120
  612. package/src/migrations/FromV4ToV5/index.ts +0 -58
  613. package/src/migrations/FromV4ToV5/migrations.test.ts +0 -49
  614. package/src/migrations/FromV4ToV5/types/v4.ts +0 -21
  615. package/src/migrations/FromV4ToV5/types/v5.ts +0 -27
  616. package/src/migrations/FromV5ToV6/fixtures/from-v1-to-v6-output.json +0 -247
  617. package/src/migrations/FromV5ToV6/fixtures/session-input-v5.json +0 -81
  618. package/src/migrations/FromV5ToV6/fixtures/session-output-v6.json +0 -85
  619. package/src/migrations/FromV5ToV6/index.ts +0 -61
  620. package/src/migrations/FromV5ToV6/migrations.test.ts +0 -50
  621. package/src/migrations/FromV5ToV6/types/v5.ts +0 -48
  622. package/src/migrations/FromV5ToV6/types/v6.ts +0 -63
  623. package/src/migrations/FromV6ToV7/fixtures/output-v7-from-v1.json +0 -203
  624. package/src/migrations/FromV6ToV7/fixtures/provider-input-v6.json +0 -103
  625. package/src/migrations/FromV6ToV7/fixtures/provider-output-v7.json +0 -118
  626. package/src/migrations/FromV6ToV7/index.ts +0 -101
  627. package/src/migrations/FromV6ToV7/migrations.test.ts +0 -64
  628. package/src/migrations/FromV6ToV7/types/v6.ts +0 -61
  629. package/src/migrations/FromV6ToV7/types/v7.ts +0 -69
  630. package/src/migrations/VersionController.test.ts +0 -88
  631. package/src/migrations/VersionController.ts +0 -67
  632. package/src/migrations/index.ts +0 -61
  633. package/src/server/globalConfig/_deprecated.test.ts +0 -92
  634. package/src/server/globalConfig/_deprecated.ts +0 -41
  635. package/src/server/routers/edge/appStatus.ts +0 -3
  636. package/src/server/routers/edge/index.ts +0 -14
  637. package/src/server/routers/edge/upload.ts +0 -16
  638. package/src/services/aiModel/client.ts +0 -70
  639. package/src/services/aiModel/server.test.ts +0 -122
  640. package/src/services/aiModel/server.ts +0 -51
  641. package/src/services/aiModel/type.ts +0 -32
  642. package/src/services/aiProvider/client.ts +0 -58
  643. package/src/services/aiProvider/server.ts +0 -43
  644. package/src/services/aiProvider/type.ts +0 -27
  645. package/src/services/baseClientService/index.ts +0 -9
  646. package/src/services/chat/__snapshots__/chat.test.ts.snap +0 -110
  647. package/src/services/chatGroup/client.ts +0 -63
  648. package/src/services/chatGroup/server.ts +0 -67
  649. package/src/services/chatGroup/type.ts +0 -22
  650. package/src/services/export/_deprecated.ts +0 -155
  651. package/src/services/export/client.ts +0 -15
  652. package/src/services/export/server.ts +0 -9
  653. package/src/services/export/type.ts +0 -5
  654. package/src/services/file/_deprecated.test.ts +0 -119
  655. package/src/services/file/_deprecated.ts +0 -80
  656. package/src/services/file/client.test.ts +0 -199
  657. package/src/services/file/client.ts +0 -85
  658. package/src/services/file/server.ts +0 -53
  659. package/src/services/file/type.ts +0 -13
  660. package/src/services/import/_deprecated.ts +0 -115
  661. package/src/services/import/client.test.ts +0 -1015
  662. package/src/services/import/client.ts +0 -64
  663. package/src/services/import/server.ts +0 -133
  664. package/src/services/import/type.ts +0 -17
  665. package/src/services/message/_deprecated.test.ts +0 -398
  666. package/src/services/message/_deprecated.ts +0 -168
  667. package/src/services/message/client.test.ts +0 -410
  668. package/src/services/message/client.ts +0 -186
  669. package/src/services/message/server.ts +0 -150
  670. package/src/services/message/type.ts +0 -54
  671. package/src/services/plugin/_deprecated.test.ts +0 -162
  672. package/src/services/plugin/_deprecated.ts +0 -42
  673. package/src/services/plugin/client.test.ts +0 -177
  674. package/src/services/plugin/client.ts +0 -46
  675. package/src/services/plugin/server.ts +0 -42
  676. package/src/services/plugin/type.ts +0 -23
  677. package/src/services/session/_deprecated.test.ts +0 -440
  678. package/src/services/session/_deprecated.ts +0 -190
  679. package/src/services/session/client.test.ts +0 -413
  680. package/src/services/session/client.ts +0 -193
  681. package/src/services/session/server.test.ts +0 -260
  682. package/src/services/session/server.ts +0 -125
  683. package/src/services/session/type.ts +0 -82
  684. package/src/services/thread/client.ts +0 -51
  685. package/src/services/thread/server.ts +0 -32
  686. package/src/services/thread/type.ts +0 -21
  687. package/src/services/topic/_deprecated.test.ts +0 -245
  688. package/src/services/topic/_deprecated.ts +0 -75
  689. package/src/services/topic/client.ts +0 -89
  690. package/src/services/topic/pglite.test.ts +0 -212
  691. package/src/services/topic/server.ts +0 -57
  692. package/src/services/topic/type.ts +0 -40
  693. package/src/services/user/_deprecated.test.ts +0 -101
  694. package/src/services/user/_deprecated.ts +0 -70
  695. package/src/services/user/client.test.ts +0 -108
  696. package/src/services/user/client.ts +0 -104
  697. package/src/services/user/server.test.ts +0 -149
  698. package/src/services/user/server.ts +0 -47
  699. package/src/services/user/type.ts +0 -21
  700. package/src/store/chat/slices/builtinTool/actions/__tests__/dalle.test.ts +0 -121
  701. package/src/store/chat/slices/builtinTool/actions/dalle.ts +0 -124
  702. package/src/store/global/actions/clientDb.ts +0 -67
  703. package/src/store/user/slices/modelList/__snapshots__/action.test.ts.snap +0 -12
  704. package/src/store/user/slices/modelList/action.test.ts +0 -359
  705. package/src/store/user/slices/modelList/action.ts +0 -223
  706. package/src/store/user/slices/modelList/initialState.ts +0 -15
  707. package/src/store/user/slices/modelList/reducers/customModelCard.test.ts +0 -204
  708. package/src/store/user/slices/modelList/reducers/customModelCard.ts +0 -64
  709. package/src/store/user/slices/modelList/selectors/index.ts +0 -3
  710. package/src/store/user/slices/modelList/selectors/keyVaults.test.ts +0 -201
  711. package/src/store/user/slices/modelList/selectors/keyVaults.ts +0 -50
  712. package/src/store/user/slices/modelList/selectors/modelConfig.test.ts +0 -219
  713. package/src/store/user/slices/modelList/selectors/modelConfig.ts +0 -95
  714. package/src/store/user/slices/modelList/selectors/modelProvider.test.ts +0 -138
  715. package/src/store/user/slices/modelList/selectors/modelProvider.ts +0 -170
  716. package/src/tools/dalle/Render/GalleyGrid.tsx +0 -60
  717. package/src/tools/dalle/Render/Item/EditMode.tsx +0 -66
  718. package/src/tools/dalle/Render/Item/Error.tsx +0 -49
  719. package/src/tools/dalle/Render/Item/Image.tsx +0 -44
  720. package/src/tools/dalle/Render/Item/ImageFileItem.tsx +0 -57
  721. package/src/tools/dalle/Render/Item/index.tsx +0 -88
  722. package/src/tools/dalle/Render/ToolBar.tsx +0 -56
  723. package/src/tools/dalle/Render/index.tsx +0 -52
  724. package/src/tools/dalle/index.ts +0 -92
  725. /package/src/{app/[variants]/(main)/settings/provider/features/ProviderConfig → components/Skeleton}/SkeletonInput.tsx +0 -0
  726. /package/src/{middleware.ts → proxy.ts} +0 -0
package/.env.desktop CHANGED
@@ -4,6 +4,5 @@ FEATURE_FLAGS=-check_updates,+pin_list
4
4
  KEY_VAULTS_SECRET=oLXWIiR/AKF+rWaqy9lHkrYgzpATbW3CtJp3UfkVgpE=
5
5
  DATABASE_URL=postgresql://postgres@localhost:5432/postgres
6
6
  SEARCH_PROVIDERS=search1api
7
- NEXT_PUBLIC_SERVICE_MODE='server'
8
7
  NEXT_PUBLIC_IS_DESKTOP_APP=1
9
- NEXT_PUBLIC_ENABLE_NEXT_AUTH=0
8
+ NEXT_PUBLIC_ENABLE_NEXT_AUTH=0
package/.env.example CHANGED
@@ -273,9 +273,6 @@ OPENAI_API_KEY=sk-xxxxxxxxx
273
273
  ########## Server Database #############
274
274
  ########################################
275
275
 
276
- # Specify the service mode as server if you want to use the server database
277
- # NEXT_PUBLIC_SERVICE_MODE=server
278
-
279
276
  # Postgres database URL
280
277
  # DATABASE_URL=postgres://username:password@host:port/database
281
278
 
@@ -8,8 +8,6 @@ UNSAFE_SECRET="ww+0igxjGRAAR/eTNFQ55VmhQB5KE5trFZseuntThJs="
8
8
  UNSAFE_PASSWORD="CHANGE_THIS_PASSWORD_IN_PRODUCTION"
9
9
 
10
10
  # Core Server Configuration
11
- # Service mode - set to 'server' for server-side deployment
12
- NEXT_PUBLIC_SERVICE_MODE=server
13
11
 
14
12
  # Service Ports Configuration
15
13
  LOBE_PORT=3010
@@ -0,0 +1,73 @@
1
+ name: Claude Auto Testing Coverage
2
+ description: Automatically add unit tests to improve code coverage
3
+
4
+ on:
5
+ schedule:
6
+ # Run daily at 05:30 UTC (13:30 Beijing Time)
7
+ - cron: '30 5 * * *'
8
+ workflow_dispatch:
9
+ inputs:
10
+ target_module:
11
+ description: 'Specific module to add tests (e.g., packages/database, src/services/user)'
12
+ required: false
13
+ type: string
14
+
15
+ concurrency:
16
+ group: auto-testing
17
+ cancel-in-progress: false
18
+
19
+ jobs:
20
+ add-tests:
21
+ runs-on: ubuntu-latest
22
+ timeout-minutes: 45
23
+ permissions:
24
+ contents: write
25
+ pull-requests: write
26
+ id-token: write
27
+
28
+ steps:
29
+ - name: Checkout repository
30
+ uses: actions/checkout@v5
31
+ with:
32
+ fetch-depth: 1
33
+
34
+ - name: Setup Bun
35
+ uses: oven-sh/setup-bun@v2
36
+
37
+ - name: Install dependencies
38
+ run: bun install --frozen-lockfile
39
+
40
+ - name: Configure Git
41
+ run: |
42
+ git config --global user.name "claude-bot[bot]"
43
+ git config --global user.email "claude-bot[bot]@users.noreply.github.com"
44
+
45
+ - name: Copy testing prompt
46
+ run: |
47
+ mkdir -p /tmp/claude-prompts
48
+ cp .claude/prompts/auto-testing.md /tmp/claude-prompts/
49
+
50
+ - name: Run Claude Code for Auto Testing
51
+ uses: anthropics/claude-code-action@main
52
+ with:
53
+ github_token: ${{ secrets.GH_TOKEN }}
54
+ allowed_non_write_users: "*"
55
+ claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
56
+ claude_args: "--allowed-tools Bash,Read,Edit,Write,Glob,Grep"
57
+ prompt: |
58
+ Follow the auto testing guide located at:
59
+ ```bash
60
+ cat /tmp/claude-prompts/auto-testing.md
61
+ ```
62
+
63
+ ## Task Assignment
64
+
65
+ ${{ inputs.target_module && format('Process the specified module: {0}', inputs.target_module) || 'Automatically select one module from the target directories that needs test coverage' }}
66
+
67
+ ## Environment Information
68
+ - Repository: ${{ github.repository }}
69
+ - Branch: ${{ github.ref_name }}
70
+ - Target Module: ${{ inputs.target_module || 'Auto-select' }}
71
+ - Run ID: ${{ github.run_id }}
72
+
73
+ **Start the auto testing process now.**
@@ -0,0 +1,67 @@
1
+ name: Claude Translate Non-English Comments
2
+ description: Automatically detect and translate non-English comments to English in codebase
3
+
4
+ on:
5
+ schedule:
6
+ # Run daily at 02:00 UTC (10:00 Beijing Time)
7
+ - cron: '0 2 * * *'
8
+ workflow_dispatch:
9
+ inputs:
10
+ target_module:
11
+ description: 'Specific module to translate (e.g., packages/database, apps/desktop/src/modules/auth)'
12
+ required: false
13
+ type: string
14
+
15
+ concurrency:
16
+ group: translate-comments
17
+ cancel-in-progress: false
18
+
19
+ jobs:
20
+ translate-comments:
21
+ runs-on: ubuntu-latest
22
+ timeout-minutes: 30
23
+ permissions:
24
+ contents: write
25
+ pull-requests: write
26
+ id-token: write
27
+
28
+ steps:
29
+ - name: Checkout repository
30
+ uses: actions/checkout@v5
31
+ with:
32
+ fetch-depth: 1
33
+
34
+ - name: Configure Git
35
+ run: |
36
+ git config --global user.name "claude-bot[bot]"
37
+ git config --global user.email "claude-bot[bot]@users.noreply.github.com"
38
+
39
+ - name: Copy translation prompt
40
+ run: |
41
+ mkdir -p /tmp/claude-prompts
42
+ cp .claude/prompts/translate-comments.md /tmp/claude-prompts/
43
+
44
+ - name: Run Claude Code for Comment Translation
45
+ uses: anthropics/claude-code-action@main
46
+ with:
47
+ github_token: ${{ secrets.GH_TOKEN }}
48
+ allowed_non_write_users: "*"
49
+ claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
50
+ claude_args: "--allowed-tools Bash,Read,Edit,Glob,Grep"
51
+ prompt: |
52
+ Follow the translation guide located at:
53
+ ```bash
54
+ cat /tmp/claude-prompts/translate-comments.md
55
+ ```
56
+
57
+ ## Task Assignment
58
+
59
+ ${{ inputs.target_module && format('Process the specified module: {0}', inputs.target_module) || 'Automatically select one module from the target directories that has not been processed recently' }}
60
+
61
+ ## Environment Information
62
+ - Repository: ${{ github.repository }}
63
+ - Branch: ${{ github.ref_name }}
64
+ - Target Module: ${{ inputs.target_module || 'Auto-select' }}
65
+ - Run ID: ${{ github.run_id }}
66
+
67
+ **Start the translation process now.**
@@ -1,16 +1,18 @@
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
- # 确保同一时间只运行一个相同的 workflow,取消正在进行的旧的运行
7
+ # 确保同一 PR 同一时间只运行一个相同的 workflow,取消正在进行的旧的运行
8
8
  concurrency:
9
- group: ${{ github.ref }}-${{ github.workflow }}
9
+ group: pr-${{ github.event.pull_request.number }}-${{ github.workflow }}
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,9 +30,9 @@ 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
- node-version: 22
35
+ node-version: 24
34
36
  package-manager-cache: false
35
37
 
36
38
  - name: Install bun
@@ -62,9 +64,9 @@ 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
- node-version: 22
69
+ node-version: 24
68
70
  package-manager-cache: false
69
71
 
70
72
  # 主要逻辑:确定构建版本号
@@ -107,9 +109,9 @@ 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
- node-version: 22
114
+ node-version: 24
113
115
  package-manager-cache: false
114
116
 
115
117
  # node-linker=hoisted 模式将可以确保 asar 压缩可用
@@ -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,9 +228,9 @@ 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
- node-version: 22
233
+ node-version: 24
232
234
  package-manager-cache: false
233
235
 
234
236
  - name: Install bun
@@ -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 }}
@@ -14,10 +14,21 @@ jobs:
14
14
  e2e:
15
15
  name: Test Web App
16
16
  runs-on: ubuntu-latest
17
+ services:
18
+ postgres:
19
+ image: paradedb/paradedb:latest
20
+ env:
21
+ POSTGRES_PASSWORD: postgres
22
+ options: >-
23
+ --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
24
+
25
+ ports:
26
+ - 5432:5432
27
+
17
28
  timeout-minutes: 25
18
29
  steps:
19
30
  - name: Checkout
20
- uses: actions/checkout@v4
31
+ uses: actions/checkout@v5
21
32
 
22
33
  - name: Setup Bun
23
34
  uses: oven-sh/setup-bun@v2
@@ -33,11 +44,14 @@ jobs:
33
44
  - name: Run E2E tests
34
45
  env:
35
46
  PORT: 3010
47
+ DATABASE_URL: postgresql://postgres:postgres@localhost:5432/postgres
48
+ DATABASE_DRIVER: node
49
+ KEY_VAULTS_SECRET: LA7n9k3JdEcbSgml2sxfw+4TV1AzaaFU5+R176aQz4s=
36
50
  run: bun run e2e
37
51
 
38
52
  - name: Upload Cucumber HTML report (on failure)
39
53
  if: failure()
40
- uses: actions/upload-artifact@v4
54
+ uses: actions/upload-artifact@v5
41
55
  with:
42
56
  name: cucumber-report
43
57
  path: e2e/reports
@@ -45,7 +59,7 @@ jobs:
45
59
 
46
60
  - name: Upload screenshots (on failure)
47
61
  if: failure()
48
- uses: actions/upload-artifact@v4
62
+ uses: actions/upload-artifact@v5
49
63
  with:
50
64
  name: test-screenshots
51
65
  path: e2e/screenshots
@@ -24,9 +24,9 @@ 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
- node-version: 22
29
+ node-version: 24
30
30
  package-manager-cache: false
31
31
 
32
32
  - name: Install bun
@@ -53,9 +53,9 @@ 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
- node-version: 22
58
+ node-version: 24
59
59
  package-manager-cache: false
60
60
 
61
61
  # 主要逻辑:确定构建版本号
@@ -94,9 +94,9 @@ 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
- node-version: 22
99
+ node-version: 24
100
100
  package-manager-cache: false
101
101
 
102
102
  # node-linker=hoisted 模式将可以确保 asar 压缩可用
@@ -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,9 +208,9 @@ 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
- node-version: 22
213
+ node-version: 24
214
214
  package-manager-cache: false
215
215
 
216
216
  - name: Install bun
@@ -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
@@ -24,7 +24,6 @@ jobs:
24
24
  options: >-
25
25
  --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
26
26
 
27
-
28
27
  ports:
29
28
  - 5432:5432
30
29
 
@@ -34,9 +33,9 @@ jobs:
34
33
  token: ${{ secrets.GH_TOKEN }}
35
34
 
36
35
  - name: Setup Node.js
37
- uses: actions/setup-node@v5
36
+ uses: actions/setup-node@v6
38
37
  with:
39
- node-version: 22
38
+ node-version: 24
40
39
  package-manager-cache: false
41
40
 
42
41
  - name: Install bun
@@ -55,8 +54,7 @@ jobs:
55
54
  env:
56
55
  DATABASE_TEST_URL: postgresql://postgres:postgres@localhost:5432/postgres
57
56
  DATABASE_DRIVER: node
58
- NEXT_PUBLIC_SERVICE_MODE: server
59
- KEY_VAULTS_SECRET: LA7n9k3JdEcbSgml2sxfw+4TV1AzaaFU5+R176aQz4s=
57
+ KEY_VAULTS_SECRET: Kix2wcUONd4CX51E/ZPAd36BqM4wzJgKjPtz2sGztqQ=
60
58
  S3_PUBLIC_DOMAIN: https://example.com
61
59
  APP_URL: https://home.com
62
60
 
@@ -28,9 +28,9 @@ 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
- node-version: 22
33
+ node-version: 24
34
34
  package-manager-cache: false
35
35
 
36
36
  - name: Install bun
@@ -63,9 +63,9 @@ 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
- node-version: 22
68
+ node-version: 24
69
69
  package-manager-cache: false
70
70
 
71
71
  - name: Install bun
@@ -96,9 +96,9 @@ 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
- node-version: 22
101
+ node-version: 24
102
102
  package-manager-cache: false
103
103
 
104
104
  - name: Install bun
@@ -119,6 +119,43 @@ jobs:
119
119
  files: ./coverage/app/lcov.info
120
120
  flags: app
121
121
 
122
+ test-desktop:
123
+ name: Test Desktop App
124
+
125
+ runs-on: ubuntu-latest
126
+
127
+ steps:
128
+ - uses: actions/checkout@v5
129
+
130
+ - name: Setup Node.js
131
+ uses: actions/setup-node@v6
132
+ with:
133
+ node-version: 24
134
+ package-manager-cache: false
135
+
136
+ - name: Setup pnpm
137
+ uses: pnpm/action-setup@v2
138
+ with:
139
+ version: 10
140
+
141
+ - name: Install deps
142
+ run: pnpm install
143
+ working-directory: apps/desktop
144
+ env:
145
+ NODE_OPTIONS: --max-old-space-size=6144
146
+
147
+
148
+ - name: Test Desktop Client
149
+ run: pnpm test
150
+ working-directory: apps/desktop
151
+
152
+ - name: Upload Desktop App Coverage to Codecov
153
+ uses: codecov/codecov-action@v5
154
+ with:
155
+ token: ${{ secrets.CODECOV_TOKEN }}
156
+ files: ./apps/desktop/coverage/lcov.info
157
+ flags: desktop
158
+
122
159
  test-databsae:
123
160
  name: Test Database
124
161
 
@@ -132,7 +169,6 @@ jobs:
132
169
  options: >-
133
170
  --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
134
171
 
135
-
136
172
  ports:
137
173
  - 5432:5432
138
174
 
@@ -140,9 +176,9 @@ jobs:
140
176
  - uses: actions/checkout@v5
141
177
 
142
178
  - name: Setup Node.js
143
- uses: actions/setup-node@v5
179
+ uses: actions/setup-node@v6
144
180
  with:
145
- node-version: 22
181
+ node-version: 24
146
182
  package-manager-cache: false
147
183
 
148
184
  - name: Install pnpm
@@ -157,7 +193,7 @@ jobs:
157
193
  - name: Test Client DB
158
194
  run: pnpm --filter @lobechat/database test:client-db
159
195
  env:
160
- KEY_VAULTS_SECRET: LA7n9k3JdEcbSgml2sxfw+4TV1AzaaFU5+R176aQz4s=
196
+ KEY_VAULTS_SECRET: Kix2wcUONd4CX51E/ZPAd36BqM4wzJgKjPtz2sGztqQ=
161
197
  S3_PUBLIC_DOMAIN: https://example.com
162
198
  APP_URL: https://home.com
163
199
 
@@ -166,8 +202,7 @@ jobs:
166
202
  env:
167
203
  DATABASE_TEST_URL: postgresql://postgres:postgres@localhost:5432/postgres
168
204
  DATABASE_DRIVER: node
169
- NEXT_PUBLIC_SERVICE_MODE: server
170
- KEY_VAULTS_SECRET: LA7n9k3JdEcbSgml2sxfw+4TV1AzaaFU5+R176aQz4s=
205
+ KEY_VAULTS_SECRET: Kix2wcUONd4CX51E/ZPAd36BqM4wzJgKjPtz2sGztqQ=
171
206
  S3_PUBLIC_DOMAIN: https://example.com
172
207
  APP_URL: https://home.com
173
208
 
package/.nvmrc CHANGED
@@ -1 +1 @@
1
- lts/jod
1
+ lts/Krypton