@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.
- package/.cursor/rules/react-component.mdc +1 -0
- package/.github/scripts/pr-comment.js +11 -2
- package/.github/workflows/auto-i18n.yml +1 -1
- package/.github/workflows/desktop-pr-build.yml +103 -23
- package/.github/workflows/docker-database.yml +1 -4
- package/.github/workflows/release-desktop-beta.yml +101 -24
- package/.github/workflows/release.yml +3 -2
- package/.github/workflows/test.yml +12 -9
- package/CHANGELOG.md +50 -0
- package/apps/desktop/electron-builder.js +8 -4
- package/changelog/v1.json +14 -0
- package/locales/ar/editor.json +7 -0
- package/locales/bg-BG/editor.json +7 -0
- package/locales/de-DE/editor.json +7 -0
- package/locales/en-US/editor.json +7 -0
- package/locales/es-ES/editor.json +7 -0
- package/locales/fa-IR/editor.json +7 -0
- package/locales/fr-FR/editor.json +7 -0
- package/locales/it-IT/editor.json +7 -0
- package/locales/ja-JP/editor.json +7 -0
- package/locales/ko-KR/editor.json +7 -0
- package/locales/nl-NL/editor.json +7 -0
- package/locales/pl-PL/editor.json +7 -0
- package/locales/pt-BR/editor.json +7 -0
- package/locales/ru-RU/editor.json +7 -0
- package/locales/tr-TR/editor.json +7 -0
- package/locales/vi-VN/editor.json +7 -0
- package/locales/zh-CN/editor.json +7 -0
- package/locales/zh-TW/editor.json +7 -0
- package/package.json +2 -2
- package/scripts/electronWorkflow/mergeMacReleaseFiles.js +179 -0
- package/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/ClassicChat.tsx +153 -0
- package/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/GroupChat.tsx +153 -0
- package/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/index.tsx +3 -145
- package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/components/ImageConfigSkeleton.tsx +53 -0
- package/src/app/[variants]/(main)/image/@menu/features/ConfigPanel/index.tsx +14 -2
- package/src/features/ChatInput/InputEditor/index.tsx +20 -5
- package/src/features/ChatInput/TypoBar/index.tsx +17 -0
- package/src/hooks/useFetchAiImageConfig.ts +49 -0
- package/src/locales/default/editor.ts +7 -0
- package/src/store/aiInfra/slices/aiModel/selectors.test.ts +1 -0
- package/src/store/aiInfra/slices/aiProvider/__tests__/action.test.ts +199 -140
- package/src/store/aiInfra/slices/aiProvider/action.ts +11 -4
- package/src/store/aiInfra/slices/aiProvider/initialState.ts +2 -0
- package/src/store/aiInfra/slices/aiProvider/selectors.ts +3 -0
- package/src/store/global/initialState.ts +8 -0
- package/src/store/global/selectors/systemStatus.ts +5 -3
- package/src/store/image/slices/generationConfig/action.test.ts +331 -150
- package/src/store/image/slices/generationConfig/action.ts +100 -23
- package/src/store/image/slices/generationConfig/initialState.ts +6 -0
- package/src/store/image/utils/aspectRatio.test.ts +148 -0
- 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
|
-
|
|
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
|
|
@@ -28,22 +28,23 @@ jobs:
|
|
|
28
28
|
fetch-depth: 0
|
|
29
29
|
|
|
30
30
|
- name: Setup Node.js
|
|
31
|
-
uses: actions/setup-node@
|
|
31
|
+
uses: actions/setup-node@v5
|
|
32
32
|
with:
|
|
33
33
|
node-version: 22
|
|
34
|
+
package-manager-cache: false
|
|
34
35
|
|
|
35
|
-
- name:
|
|
36
|
-
uses:
|
|
36
|
+
- name: Install bun
|
|
37
|
+
uses: oven-sh/setup-bun@v2
|
|
37
38
|
with:
|
|
38
|
-
version:
|
|
39
|
+
bun-version: ${{ secrets.BUN_VERSION }}
|
|
39
40
|
|
|
40
41
|
- name: Install deps
|
|
41
|
-
run:
|
|
42
|
+
run: bun i
|
|
42
43
|
env:
|
|
43
44
|
NODE_OPTIONS: --max-old-space-size=6144
|
|
44
45
|
|
|
45
46
|
- name: Lint
|
|
46
|
-
run:
|
|
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@
|
|
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:
|
|
103
|
-
uses:
|
|
104
|
+
- name: Install pnpm
|
|
105
|
+
uses: pnpm/action-setup@v4
|
|
104
106
|
with:
|
|
105
|
-
|
|
107
|
+
run_install: false
|
|
106
108
|
|
|
107
|
-
- name: Setup
|
|
108
|
-
uses:
|
|
109
|
+
- name: Setup Node.js
|
|
110
|
+
uses: actions/setup-node@v5
|
|
109
111
|
with:
|
|
110
|
-
version:
|
|
112
|
+
node-version: 22
|
|
113
|
+
package-manager-cache: false
|
|
111
114
|
|
|
112
115
|
# node-linker=hoisted 模式将可以确保 asar 压缩可用
|
|
113
|
-
- name: Install
|
|
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
|
-
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
27
|
+
uses: actions/setup-node@v5
|
|
28
28
|
with:
|
|
29
29
|
node-version: 22
|
|
30
|
+
package-manager-cache: false
|
|
30
31
|
|
|
31
|
-
- name:
|
|
32
|
-
uses:
|
|
32
|
+
- name: Install bun
|
|
33
|
+
uses: oven-sh/setup-bun@v2
|
|
33
34
|
with:
|
|
34
|
-
version:
|
|
35
|
+
bun-version: ${{ secrets.BUN_VERSION }}
|
|
35
36
|
|
|
36
37
|
- name: Install deps
|
|
37
|
-
run:
|
|
38
|
+
run: bun i
|
|
38
39
|
|
|
39
40
|
- name: Lint
|
|
40
|
-
run:
|
|
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@
|
|
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:
|
|
90
|
-
uses:
|
|
91
|
+
- name: Install pnpm
|
|
92
|
+
uses: pnpm/action-setup@v4
|
|
91
93
|
with:
|
|
92
|
-
|
|
94
|
+
run_install: false
|
|
93
95
|
|
|
94
|
-
- name: Setup
|
|
95
|
-
uses:
|
|
96
|
+
- name: Setup Node.js
|
|
97
|
+
uses: actions/setup-node@v5
|
|
96
98
|
with:
|
|
97
|
-
version:
|
|
99
|
+
node-version: 22
|
|
100
|
+
package-manager-cache: false
|
|
98
101
|
|
|
99
102
|
# node-linker=hoisted 模式将可以确保 asar 压缩可用
|
|
100
|
-
- name: Install
|
|
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
|
-
#
|
|
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
|
-
#
|
|
175
|
-
|
|
199
|
+
# 合并 macOS 多架构 latest-mac.yml 文件
|
|
200
|
+
merge-mac-files:
|
|
176
201
|
needs: [build, version]
|
|
177
|
-
name:
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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
|
+
[](#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
|
+
[](#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 只打
|
|
93
|
+
// 降低构建时间,nightly 只打 dmg
|
|
94
|
+
// 根据当前机器架构只构建对应架构的包
|
|
91
95
|
isNightly
|
|
92
|
-
? [{ arch: ['arm64'], target: 'dmg' }]
|
|
96
|
+
? [{ arch: [arch === 'arm64' ? 'arm64' : 'x64'], target: 'dmg' }]
|
|
93
97
|
: [
|
|
94
|
-
{ arch: ['
|
|
95
|
-
{ arch: ['
|
|
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": [
|
package/locales/ar/editor.json
CHANGED
|
@@ -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
|
}
|