@lobehub/chat 1.124.4 → 1.126.0

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 (52) hide show
  1. package/.cursor/rules/react-component.mdc +1 -0
  2. package/.github/scripts/pr-comment.js +11 -2
  3. package/.github/workflows/auto-i18n.yml +1 -1
  4. package/.github/workflows/desktop-pr-build.yml +103 -23
  5. package/.github/workflows/docker-database.yml +1 -4
  6. package/.github/workflows/release-desktop-beta.yml +101 -24
  7. package/.github/workflows/release.yml +3 -2
  8. package/.github/workflows/test.yml +12 -9
  9. package/CHANGELOG.md +50 -0
  10. package/apps/desktop/electron-builder.js +8 -4
  11. package/changelog/v1.json +14 -0
  12. package/locales/ar/editor.json +7 -0
  13. package/locales/bg-BG/editor.json +7 -0
  14. package/locales/de-DE/editor.json +7 -0
  15. package/locales/en-US/editor.json +7 -0
  16. package/locales/es-ES/editor.json +7 -0
  17. package/locales/fa-IR/editor.json +7 -0
  18. package/locales/fr-FR/editor.json +7 -0
  19. package/locales/it-IT/editor.json +7 -0
  20. package/locales/ja-JP/editor.json +7 -0
  21. package/locales/ko-KR/editor.json +7 -0
  22. package/locales/nl-NL/editor.json +7 -0
  23. package/locales/pl-PL/editor.json +7 -0
  24. package/locales/pt-BR/editor.json +7 -0
  25. package/locales/ru-RU/editor.json +7 -0
  26. package/locales/tr-TR/editor.json +7 -0
  27. package/locales/vi-VN/editor.json +7 -0
  28. package/locales/zh-CN/editor.json +7 -0
  29. package/locales/zh-TW/editor.json +7 -0
  30. package/package.json +2 -2
  31. package/scripts/electronWorkflow/mergeMacReleaseFiles.js +179 -0
  32. package/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/ClassicChat.tsx +153 -0
  33. package/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/GroupChat.tsx +153 -0
  34. package/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/index.tsx +3 -145
  35. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/ImageConfigSkeleton.tsx +53 -0
  36. package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/index.tsx +14 -2
  37. package/src/features/ChatInput/InputEditor/index.tsx +20 -5
  38. package/src/features/ChatInput/TypoBar/index.tsx +17 -0
  39. package/src/hooks/useFetchAiImageConfig.ts +49 -0
  40. package/src/locales/default/editor.ts +7 -0
  41. package/src/store/aiInfra/slices/aiModel/selectors.test.ts +1 -0
  42. package/src/store/aiInfra/slices/aiProvider/__tests__/action.test.ts +199 -140
  43. package/src/store/aiInfra/slices/aiProvider/action.ts +11 -4
  44. package/src/store/aiInfra/slices/aiProvider/initialState.ts +2 -0
  45. package/src/store/aiInfra/slices/aiProvider/selectors.ts +3 -0
  46. package/src/store/global/initialState.ts +8 -0
  47. package/src/store/global/selectors/systemStatus.ts +5 -3
  48. package/src/store/image/slices/generationConfig/action.test.ts +331 -150
  49. package/src/store/image/slices/generationConfig/action.ts +100 -23
  50. package/src/store/image/slices/generationConfig/initialState.ts +6 -0
  51. package/src/store/image/utils/aspectRatio.test.ts +148 -0
  52. package/src/store/image/utils/aspectRatio.ts +45 -0
@@ -9,6 +9,7 @@ alwaysApply: false
9
9
  - 如果要写复杂样式的话用 antd-style ,简单的话可以用 style 属性直接写内联样式
10
10
  - 如果需要 flex 布局或者居中布局应该使用 react-layout-kit 的 Flexbox 和 Center 组件
11
11
  - 选择组件时优先顺序应该是 src/components > 安装的组件 package > lobe-ui > antd
12
+ - 使用 selector 访问 zustand store 的数据,而不是直接从 store 获取
12
13
 
13
14
  ## antd-style token system
14
15
 
@@ -36,10 +36,19 @@ module.exports = async ({ github, context, releaseUrl, version, tag }) => {
36
36
  // Generate combined download table
37
37
  let assetTable = '| Platform | File | Size |\n| --- | --- | --- |\n';
38
38
 
39
- // Add macOS assets
39
+ // Add macOS assets with architecture detection
40
40
  macAssets.forEach((asset) => {
41
41
  const sizeInMB = (asset.size / (1024 * 1024)).toFixed(2);
42
- assetTable += `| macOS | [${asset.name}](${asset.browser_download_url}) | ${sizeInMB} MB |\n`;
42
+
43
+ // Detect architecture from filename
44
+ let architecture = '';
45
+ if (asset.name.includes('arm64')) {
46
+ architecture = ' (Apple Silicon)';
47
+ } else if (asset.name.includes('x64') || asset.name.includes('-mac.')) {
48
+ architecture = ' (Intel)';
49
+ }
50
+
51
+ assetTable += `| macOS${architecture} | [${asset.name}](${asset.browser_download_url}) | ${sizeInMB} MB |\n`;
43
52
  });
44
53
 
45
54
  // Add Windows assets
@@ -26,7 +26,7 @@ jobs:
26
26
  ref: ${{ github.event.pull_request.head.ref }}
27
27
 
28
28
  - name: Install bun
29
- uses: oven-sh/setup-bun@v1
29
+ uses: oven-sh/setup-bun@v2
30
30
  with:
31
31
  bun-version: ${{ secrets.BUN_VERSION }}
32
32
 
@@ -28,22 +28,23 @@ jobs:
28
28
  fetch-depth: 0
29
29
 
30
30
  - name: Setup Node.js
31
- uses: actions/setup-node@v4
31
+ uses: actions/setup-node@v5
32
32
  with:
33
33
  node-version: 22
34
+ package-manager-cache: false
34
35
 
35
- - name: Setup pnpm
36
- uses: pnpm/action-setup@v2
36
+ - name: Install bun
37
+ uses: oven-sh/setup-bun@v2
37
38
  with:
38
- version: 10
39
+ bun-version: ${{ secrets.BUN_VERSION }}
39
40
 
40
41
  - name: Install deps
41
- run: pnpm install
42
+ run: bun i
42
43
  env:
43
44
  NODE_OPTIONS: --max-old-space-size=6144
44
45
 
45
46
  - name: Lint
46
- run: pnpm run lint
47
+ run: bun run lint
47
48
  env:
48
49
  NODE_OPTIONS: --max-old-space-size=6144
49
50
 
@@ -61,9 +62,10 @@ jobs:
61
62
  fetch-depth: 0
62
63
 
63
64
  - name: Setup Node.js
64
- uses: actions/setup-node@v4
65
+ uses: actions/setup-node@v5
65
66
  with:
66
67
  node-version: 22
68
+ package-manager-cache: false
67
69
 
68
70
  # 主要逻辑:确定构建版本号
69
71
  - name: Set version
@@ -93,24 +95,25 @@ jobs:
93
95
  runs-on: ${{ matrix.os }}
94
96
  strategy:
95
97
  matrix:
96
- os: [macos-latest, windows-2025, ubuntu-latest]
98
+ os: [macos-latest, macos-13, windows-2025, ubuntu-latest]
97
99
  steps:
98
100
  - uses: actions/checkout@v5
99
101
  with:
100
102
  fetch-depth: 0
101
103
 
102
- - name: Setup Node.js
103
- uses: actions/setup-node@v4
104
+ - name: Install pnpm
105
+ uses: pnpm/action-setup@v4
104
106
  with:
105
- node-version: 22
107
+ run_install: false
106
108
 
107
- - name: Setup pnpm
108
- uses: pnpm/action-setup@v2
109
+ - name: Setup Node.js
110
+ uses: actions/setup-node@v5
109
111
  with:
110
- version: 10
112
+ node-version: 22
113
+ package-manager-cache: false
111
114
 
112
115
  # node-linker=hoisted 模式将可以确保 asar 压缩可用
113
- - name: Install deps
116
+ - name: Install dependencies
114
117
  run: pnpm install --node-linker=hoisted
115
118
 
116
119
  - name: Install deps on Desktop
@@ -172,6 +175,28 @@ jobs:
172
175
  NEXT_PUBLIC_DESKTOP_PROJECT_ID: ${{ secrets.UMAMI_NIGHTLY_DESKTOP_PROJECT_ID }}
173
176
  NEXT_PUBLIC_DESKTOP_UMAMI_BASE_URL: ${{ secrets.UMAMI_NIGHTLY_DESKTOP_BASE_URL }}
174
177
 
178
+ # 处理 macOS latest-mac.yml 重命名 (避免多架构覆盖)
179
+ - name: Rename macOS latest-mac.yml for multi-architecture support
180
+ if: runner.os == 'macOS'
181
+ run: |
182
+ cd apps/desktop/release
183
+ if [ -f "latest-mac.yml" ]; then
184
+ # 使用系统架构检测,与 electron-builder 输出保持一致
185
+ SYSTEM_ARCH=$(uname -m)
186
+ if [[ "$SYSTEM_ARCH" == "arm64" ]]; then
187
+ ARCH_SUFFIX="arm64"
188
+ else
189
+ ARCH_SUFFIX="x64"
190
+ fi
191
+
192
+ mv latest-mac.yml "latest-mac-${ARCH_SUFFIX}.yml"
193
+ echo "✅ Renamed latest-mac.yml to latest-mac-${ARCH_SUFFIX}.yml (detected: $SYSTEM_ARCH)"
194
+ ls -la latest-mac-*.yml
195
+ else
196
+ echo "⚠️ latest-mac.yml not found, skipping rename"
197
+ ls -la latest*.yml || echo "No latest*.yml files found"
198
+ fi
199
+
175
200
  # 上传构建产物
176
201
  - name: Upload artifact
177
202
  uses: actions/upload-artifact@v4
@@ -189,8 +214,64 @@ jobs:
189
214
  apps/desktop/release/*.tar.gz*
190
215
  retention-days: 5
191
216
 
192
- publish-pr:
217
+ # 合并 macOS 多架构 latest-mac.yml 文件
218
+ merge-mac-files:
193
219
  needs: [build, version]
220
+ name: Merge macOS Release Files for PR
221
+ runs-on: ubuntu-latest
222
+ permissions:
223
+ contents: write
224
+ steps:
225
+ - name: Checkout repository
226
+ uses: actions/checkout@v5
227
+
228
+ - name: Setup Node.js
229
+ uses: actions/setup-node@v5
230
+ with:
231
+ node-version: 22
232
+ package-manager-cache: false
233
+
234
+ - name: Install bun
235
+ uses: oven-sh/setup-bun@v2
236
+ with:
237
+ bun-version: ${{ secrets.BUN_VERSION }}
238
+
239
+ # 下载所有平台的构建产物
240
+ - name: Download artifacts
241
+ uses: actions/download-artifact@v4
242
+ with:
243
+ path: release
244
+ pattern: release-*
245
+ merge-multiple: true
246
+
247
+ # 列出下载的构建产物
248
+ - name: List downloaded artifacts
249
+ run: ls -R release
250
+
251
+ # 仅为该步骤在脚本目录安装 yaml 单包,避免安装整个 monorepo 依赖
252
+ - name: Install yaml only for merge step
253
+ run: |
254
+ cd scripts/electronWorkflow
255
+ # 在脚本目录创建最小 package.json,防止 bun 向上寻找根 package.json
256
+ if [ ! -f package.json ]; then
257
+ echo '{"name":"merge-mac-release","private":true}' > package.json
258
+ fi
259
+ bun add --no-save yaml@2.8.1
260
+
261
+ # 合并 macOS YAML 文件 (使用 bun 运行 JavaScript)
262
+ - name: Merge latest-mac.yml files
263
+ run: bun run scripts/electronWorkflow/mergeMacReleaseFiles.js
264
+
265
+ # 上传合并后的构建产物
266
+ - name: Upload artifacts with merged macOS files
267
+ uses: actions/upload-artifact@v4
268
+ with:
269
+ name: merged-release-pr
270
+ path: release/
271
+ retention-days: 1
272
+
273
+ publish-pr:
274
+ needs: [merge-mac-files, version]
194
275
  name: Publish PR Build
195
276
  runs-on: ubuntu-latest
196
277
  # Grant write permissions for creating release and commenting on PR
@@ -204,22 +285,21 @@ jobs:
204
285
  with:
205
286
  fetch-depth: 0
206
287
 
207
- # 下载所有平台的构建产物
208
- - name: Download artifacts
288
+ # 下载合并后的构建产物
289
+ - name: Download merged artifacts
209
290
  uses: actions/download-artifact@v4
210
291
  with:
292
+ name: merged-release-pr
211
293
  path: release
212
- pattern: release-*
213
- merge-multiple: true
214
294
 
215
295
  # 列出所有构建产物
216
- - name: List artifacts
296
+ - name: List final artifacts
217
297
  run: ls -R release
218
298
 
219
299
  # 生成PR发布描述
220
300
  - name: Generate PR Release Body
221
301
  id: pr_release_body
222
- uses: actions/github-script@v7
302
+ uses: actions/github-script@v8
223
303
  with:
224
304
  result-encoding: string
225
305
  script: |
@@ -258,7 +338,7 @@ jobs:
258
338
 
259
339
  # 在 PR 上添加评论,包含构建信息和下载链接
260
340
  - name: Comment on PR
261
- uses: actions/github-script@v7
341
+ uses: actions/github-script@v8
262
342
  with:
263
343
  github-token: ${{ secrets.GITHUB_TOKEN }}
264
344
  script: |
@@ -160,10 +160,9 @@ jobs:
160
160
  run: |
161
161
  docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:${{ steps.meta.outputs.version }}
162
162
 
163
-
164
163
  - name: Comment on PR with Docker build info
165
164
  if: github.event_name == 'pull_request'
166
- uses: actions/github-script@v7
165
+ uses: actions/github-script@v8
167
166
  with:
168
167
  github-token: ${{ secrets.GITHUB_TOKEN }}
169
168
  script: |
@@ -178,5 +177,3 @@ jobs:
178
177
  platforms: "linux/amd64, linux/arm64",
179
178
  });
180
179
  core.info(`Status: ${result.updated ? 'Updated' : 'Created'}, ID: ${result.id}`);
181
-
182
-
@@ -24,20 +24,21 @@ jobs:
24
24
  fetch-depth: 0
25
25
 
26
26
  - name: Setup Node.js
27
- uses: actions/setup-node@v4
27
+ uses: actions/setup-node@v5
28
28
  with:
29
29
  node-version: 22
30
+ package-manager-cache: false
30
31
 
31
- - name: Setup pnpm
32
- uses: pnpm/action-setup@v2
32
+ - name: Install bun
33
+ uses: oven-sh/setup-bun@v2
33
34
  with:
34
- version: 10
35
+ bun-version: ${{ secrets.BUN_VERSION }}
35
36
 
36
37
  - name: Install deps
37
- run: pnpm install
38
+ run: bun i
38
39
 
39
40
  - name: Lint
40
- run: pnpm run lint
41
+ run: bun run lint
41
42
 
42
43
  version:
43
44
  name: Determine version
@@ -52,9 +53,10 @@ jobs:
52
53
  fetch-depth: 0
53
54
 
54
55
  - name: Setup Node.js
55
- uses: actions/setup-node@v4
56
+ uses: actions/setup-node@v5
56
57
  with:
57
58
  node-version: 22
59
+ package-manager-cache: false
58
60
 
59
61
  # 主要逻辑:确定构建版本号
60
62
  - name: Set version
@@ -80,24 +82,25 @@ jobs:
80
82
  runs-on: ${{ matrix.os }}
81
83
  strategy:
82
84
  matrix:
83
- os: [macos-latest, windows-2025, ubuntu-latest]
85
+ os: [macos-latest, macos-13, windows-2025, ubuntu-latest]
84
86
  steps:
85
87
  - uses: actions/checkout@v5
86
88
  with:
87
89
  fetch-depth: 0
88
90
 
89
- - name: Setup Node.js
90
- uses: actions/setup-node@v4
91
+ - name: Install pnpm
92
+ uses: pnpm/action-setup@v4
91
93
  with:
92
- node-version: 22
94
+ run_install: false
93
95
 
94
- - name: Setup pnpm
95
- uses: pnpm/action-setup@v2
96
+ - name: Setup Node.js
97
+ uses: actions/setup-node@v5
96
98
  with:
97
- version: 10
99
+ node-version: 22
100
+ package-manager-cache: false
98
101
 
99
102
  # node-linker=hoisted 模式将可以确保 asar 压缩可用
100
- - name: Install deps
103
+ - name: Install dependencies
101
104
  run: pnpm install --node-linker=hoisted
102
105
 
103
106
  - name: Install deps on Desktop
@@ -154,7 +157,29 @@ jobs:
154
157
  NEXT_PUBLIC_DESKTOP_PROJECT_ID: ${{ secrets.UMAMI_BETA_DESKTOP_PROJECT_ID }}
155
158
  NEXT_PUBLIC_DESKTOP_UMAMI_BASE_URL: ${{ secrets.UMAMI_BETA_DESKTOP_BASE_URL }}
156
159
 
157
- # 上传构建产物,移除了 zip 相关部分
160
+ # 处理 macOS latest-mac.yml 重命名 (避免多架构覆盖)
161
+ - name: Rename macOS latest-mac.yml for multi-architecture support
162
+ if: runner.os == 'macOS'
163
+ run: |
164
+ cd apps/desktop/release
165
+ if [ -f "latest-mac.yml" ]; then
166
+ # 使用系统架构检测,与 electron-builder 输出保持一致
167
+ SYSTEM_ARCH=$(uname -m)
168
+ if [[ "$SYSTEM_ARCH" == "arm64" ]]; then
169
+ ARCH_SUFFIX="arm64"
170
+ else
171
+ ARCH_SUFFIX="x64"
172
+ fi
173
+
174
+ mv latest-mac.yml "latest-mac-${ARCH_SUFFIX}.yml"
175
+ echo "✅ Renamed latest-mac.yml to latest-mac-${ARCH_SUFFIX}.yml (detected: $SYSTEM_ARCH)"
176
+ ls -la latest-mac-*.yml
177
+ else
178
+ echo "⚠️ latest-mac.yml not found, skipping rename"
179
+ ls -la latest*.yml || echo "No latest*.yml files found"
180
+ fi
181
+
182
+ # 上传构建产物 (工作流处理重命名,不依赖 electron-builder 钩子)
158
183
  - name: Upload artifact
159
184
  uses: actions/upload-artifact@v4
160
185
  with:
@@ -171,17 +196,28 @@ jobs:
171
196
  apps/desktop/release/*.tar.gz*
172
197
  retention-days: 5
173
198
 
174
- # 正式版发布 job
175
- publish-release:
199
+ # 合并 macOS 多架构 latest-mac.yml 文件
200
+ merge-mac-files:
176
201
  needs: [build, version]
177
- name: Publish Beta Release
202
+ name: Merge macOS Release Files
178
203
  runs-on: ubuntu-latest
179
- # Grant write permission to contents for uploading release assets
180
204
  permissions:
181
205
  contents: write
182
- outputs:
183
- artifact_path: ${{ steps.set_path.outputs.path }}
184
206
  steps:
207
+ - name: Checkout repository
208
+ uses: actions/checkout@v5
209
+
210
+ - name: Setup Node.js
211
+ uses: actions/setup-node@v5
212
+ with:
213
+ node-version: 22
214
+ package-manager-cache: false
215
+
216
+ - name: Install bun
217
+ uses: oven-sh/setup-bun@v2
218
+ with:
219
+ bun-version: ${{ secrets.BUN_VERSION }}
220
+
185
221
  # 下载所有平台的构建产物
186
222
  - name: Download artifacts
187
223
  uses: actions/download-artifact@v4
@@ -190,11 +226,52 @@ jobs:
190
226
  pattern: release-*
191
227
  merge-multiple: true
192
228
 
229
+ # 列出下载的构建产物
230
+ - name: List downloaded artifacts
231
+ run: ls -R release
232
+
233
+ # 仅为该步骤在脚本目录安装 yaml 单包,避免安装整个 monorepo 依赖
234
+ - name: Install yaml only for merge step
235
+ run: |
236
+ cd scripts/electronWorkflow
237
+ # 在脚本目录创建最小 package.json,防止 bun 向上寻找根 package.json
238
+ if [ ! -f package.json ]; then
239
+ echo '{"name":"merge-mac-release","private":true}' > package.json
240
+ fi
241
+ bun add --no-save yaml@2.8.1
242
+
243
+ # 合并 macOS YAML 文件 (使用 bun 运行 JavaScript)
244
+ - name: Merge latest-mac.yml files
245
+ run: bun run scripts/electronWorkflow/mergeMacReleaseFiles.js
246
+
247
+ # 上传合并后的构建产物
248
+ - name: Upload artifacts with merged macOS files
249
+ uses: actions/upload-artifact@v4
250
+ with:
251
+ name: merged-release
252
+ path: release/
253
+ retention-days: 1
254
+
255
+ # 发布所有平台构建产物
256
+ publish-release:
257
+ needs: [merge-mac-files]
258
+ name: Publish Beta Release
259
+ runs-on: ubuntu-latest
260
+ permissions:
261
+ contents: write
262
+ steps:
263
+ # 下载合并后的构建产物
264
+ - name: Download merged artifacts
265
+ uses: actions/download-artifact@v4
266
+ with:
267
+ name: merged-release
268
+ path: release
269
+
193
270
  # 列出所有构建产物
194
- - name: List artifacts
271
+ - name: List final artifacts
195
272
  run: ls -R release
196
273
 
197
- # 将构建产物上传到现有 release
274
+ # 将构建产物上传到现有 release (现在包含合并后的 latest-mac.yml)
198
275
  - name: Upload to Release
199
276
  uses: softprops/action-gh-release@v1
200
277
  with:
@@ -27,12 +27,13 @@ jobs:
27
27
  token: ${{ secrets.GH_TOKEN }}
28
28
 
29
29
  - name: Setup Node.js
30
- uses: actions/setup-node@v4
30
+ uses: actions/setup-node@v5
31
31
  with:
32
32
  node-version: 22
33
+ package-manager-cache: false
33
34
 
34
35
  - name: Install bun
35
- uses: oven-sh/setup-bun@v1
36
+ uses: oven-sh/setup-bun@v2
36
37
  with:
37
38
  bun-version: ${{ secrets.BUN_VERSION }}
38
39
 
@@ -19,12 +19,13 @@ jobs:
19
19
  - uses: actions/checkout@v5
20
20
 
21
21
  - name: Setup Node.js
22
- uses: actions/setup-node@v4
22
+ uses: actions/setup-node@v5
23
23
  with:
24
24
  node-version: 22
25
+ package-manager-cache: false
25
26
 
26
27
  - name: Install bun
27
- uses: oven-sh/setup-bun@v1
28
+ uses: oven-sh/setup-bun@v2
28
29
  with:
29
30
  bun-version: ${{ secrets.BUN_VERSION }}
30
31
 
@@ -53,12 +54,13 @@ jobs:
53
54
  - uses: actions/checkout@v5
54
55
 
55
56
  - name: Setup Node.js
56
- uses: actions/setup-node@v4
57
+ uses: actions/setup-node@v5
57
58
  with:
58
59
  node-version: 22
60
+ package-manager-cache: false
59
61
 
60
62
  - name: Install bun
61
- uses: oven-sh/setup-bun@v1
63
+ uses: oven-sh/setup-bun@v2
62
64
  with:
63
65
  bun-version: ${{ secrets.BUN_VERSION }}
64
66
 
@@ -75,7 +77,6 @@ jobs:
75
77
  files: ./packages/${{ matrix.package }}/coverage/lcov.info
76
78
  flags: packages/${{ matrix.package }}
77
79
 
78
-
79
80
  # App tests
80
81
  test-website:
81
82
  name: Test Website
@@ -86,12 +87,13 @@ jobs:
86
87
  - uses: actions/checkout@v5
87
88
 
88
89
  - name: Setup Node.js
89
- uses: actions/setup-node@v4
90
+ uses: actions/setup-node@v5
90
91
  with:
91
92
  node-version: 22
93
+ package-manager-cache: false
92
94
 
93
95
  - name: Install bun
94
- uses: oven-sh/setup-bun@v1
96
+ uses: oven-sh/setup-bun@v2
95
97
  with:
96
98
  bun-version: ${{ secrets.BUN_VERSION }}
97
99
 
@@ -129,12 +131,13 @@ jobs:
129
131
  - uses: actions/checkout@v5
130
132
 
131
133
  - name: Setup Node.js
132
- uses: actions/setup-node@v4
134
+ uses: actions/setup-node@v5
133
135
  with:
134
136
  node-version: 22
137
+ package-manager-cache: false
135
138
 
136
139
  - name: Install bun
137
- uses: oven-sh/setup-bun@v1
140
+ uses: oven-sh/setup-bun@v2
138
141
  with:
139
142
  bun-version: ${{ secrets.BUN_VERSION }}
140
143
 
package/CHANGELOG.md CHANGED
@@ -2,6 +2,56 @@
2
2
 
3
3
  # Changelog
4
4
 
5
+ ## [Version 1.126.0](https://github.com/lobehub/lobe-chat/compare/v1.125.0...v1.126.0)
6
+
7
+ <sup>Released on **2025-09-08**</sup>
8
+
9
+ #### ✨ Features
10
+
11
+ - **image**: Implement model selection memory functionality.
12
+
13
+ <br/>
14
+
15
+ <details>
16
+ <summary><kbd>Improvements and Fixes</kbd></summary>
17
+
18
+ #### What's improved
19
+
20
+ - **image**: Implement model selection memory functionality, closes [#9160](https://github.com/lobehub/lobe-chat/issues/9160) ([b00e6d7](https://github.com/lobehub/lobe-chat/commit/b00e6d7))
21
+
22
+ </details>
23
+
24
+ <div align="right">
25
+
26
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
27
+
28
+ </div>
29
+
30
+ ## [Version 1.125.0](https://github.com/lobehub/lobe-chat/compare/v1.124.4...v1.125.0)
31
+
32
+ <sup>Released on **2025-09-08**</sup>
33
+
34
+ #### ✨ Features
35
+
36
+ - **misc**: Add Math and TaskList to Editor.
37
+
38
+ <br/>
39
+
40
+ <details>
41
+ <summary><kbd>Improvements and Fixes</kbd></summary>
42
+
43
+ #### What's improved
44
+
45
+ - **misc**: Add Math and TaskList to Editor, closes [#9165](https://github.com/lobehub/lobe-chat/issues/9165) ([9e0621f](https://github.com/lobehub/lobe-chat/commit/9e0621f))
46
+
47
+ </details>
48
+
49
+ <div align="right">
50
+
51
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
52
+
53
+ </div>
54
+
5
55
  ### [Version 1.124.4](https://github.com/lobehub/lobe-chat/compare/v1.124.3...v1.124.4)
6
56
 
7
57
  <sup>Released on **2025-09-06**</sup>
@@ -1,12 +1,15 @@
1
1
  const dotenv = require('dotenv');
2
+ const os = require('node:os');
2
3
 
3
4
  dotenv.config();
4
5
 
5
6
  const packageJSON = require('./package.json');
6
7
 
7
8
  const channel = process.env.UPDATE_CHANNEL;
9
+ const arch = os.arch();
8
10
 
9
11
  console.log(`🚄 Build Version ${packageJSON.version}, Channel: ${channel}`);
12
+ console.log(`🏗️ Building for architecture: ${arch}`);
10
13
 
11
14
  const isNightly = channel === 'nightly';
12
15
  const isBeta = packageJSON.name.includes('beta');
@@ -87,12 +90,13 @@ const config = {
87
90
  hardenedRuntime: true,
88
91
  notarize: true,
89
92
  target:
90
- // 降低构建时间,nightly 只打 arm64
93
+ // 降低构建时间,nightly 只打 dmg
94
+ // 根据当前机器架构只构建对应架构的包
91
95
  isNightly
92
- ? [{ arch: ['arm64'], target: 'dmg' }]
96
+ ? [{ arch: [arch === 'arm64' ? 'arm64' : 'x64'], target: 'dmg' }]
93
97
  : [
94
- { arch: ['x64', 'arm64'], target: 'dmg' },
95
- { arch: ['x64', 'arm64'], target: 'zip' },
98
+ { arch: [arch === 'arm64' ? 'arm64' : 'x64'], target: 'dmg' },
99
+ { arch: [arch === 'arm64' ? 'arm64' : 'x64'], target: 'zip' },
96
100
  ],
97
101
  },
98
102
  npmRebuild: true,
package/changelog/v1.json CHANGED
@@ -1,4 +1,18 @@
1
1
  [
2
+ {
3
+ "children": {},
4
+ "date": "2025-09-08",
5
+ "version": "1.126.0"
6
+ },
7
+ {
8
+ "children": {
9
+ "features": [
10
+ "Add Math and TaskList to Editor."
11
+ ]
12
+ },
13
+ "date": "2025-09-08",
14
+ "version": "1.125.0"
15
+ },
2
16
  {
3
17
  "children": {
4
18
  "fixes": [
@@ -9,6 +9,8 @@
9
9
  "on": "إظهار شريط أدوات التنسيق"
10
10
  }
11
11
  },
12
+ "cancel": "إلغاء",
13
+ "confirm": "تأكيد",
12
14
  "file": {
13
15
  "error": "خطأ: {{message}}",
14
16
  "uploading": "جاري رفع الملف..."
@@ -22,6 +24,9 @@
22
24
  "placeholder": "أدخل عنوان URL للرابط",
23
25
  "unlink": "إزالة الرابط"
24
26
  },
27
+ "math": {
28
+ "placeholder": "يرجى إدخال معادلة TeX"
29
+ },
25
30
  "table": {
26
31
  "delete": "حذف الجدول",
27
32
  "deleteColumn": "حذف العمود",
@@ -42,6 +47,8 @@
42
47
  "numberList": "قائمة مرقمة",
43
48
  "strikethrough": "شطب",
44
49
  "table": "إدراج جدول",
50
+ "taskList": "قائمة المهام",
51
+ "tex": "معادلة TeX",
45
52
  "underline": "تسطير"
46
53
  }
47
54
  }