Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
328 commits
Select commit Hold shift + click to select a range
58f6d83
[0878] 修复 strict_cork_to_utf8 返回空串时 decode_from_utf8 越界崩溃 (#4238)
da-liii Aug 7, 2026
cfa809e
[7000] 移除 edit_cursor::go_to 多余的 cout (#4239)
JimZhouZZY Aug 7, 2026
a8129c6
[200_22] bump to Mogan STEM v2026.3.0-rc8
github-actions[bot] Aug 7, 2026
d07743a
[1177] delayed-kbd-map:快捷键绑定分片延迟注册 (#4240)
da-liii Aug 7, 2026
b5ab3de
[1143] 插件初始化从延后 3s 改为 10ms 空闲依次初始化;math 快捷键拆为独立插件 (#4241)
da-liii Aug 7, 2026
d1aa252
[1143] telemetry 插件启动时直接初始化,不走 idle 延迟 (#4242)
da-liii Aug 7, 2026
2c138af
[200_22] bump to Mogan STEM v2026.3.0-rc8
github-actions[bot] Aug 7, 2026
8ff739e
[200_22] bump to Mogan STEM v2026.3.0-rc9
github-actions[bot] Aug 7, 2026
b39b9e3
[1180] 新建 Chat 标签页前显式加载 llm chat-loader,修复 unbound variable chat-pers…
da-liii Aug 7, 2026
ac91877
[1181] 社区版隐藏文档区域右上角的新建对话浮动按钮 (#4244)
da-liii Aug 7, 2026
9d68b38
[1183] prog-kbd 的 lazy-keyboard 注册移入 code 插件 (#4245)
da-liii Aug 7, 2026
5cf35ea
[1184] perf: load-input-styles 合并样式树重建 (#4247)
da-liii Aug 8, 2026
49c12d5
[1182] chat_tab 初始化新增 bench_start/bench_end 计时 (#4248)
da-liii Aug 8, 2026
dd121b3
[1185] Chat 标签页初始化性能插桩与 update_menus 优化 (#4249)
da-liii Aug 8, 2026
9e0e322
[1186] 升级内置 Goldfish 到 v18.11.21 (#4250)
da-liii Aug 8, 2026
220ce74
[1186] kernel 列表基础函数接线 Goldfish C 实现 (#4251)
da-liii Aug 8, 2026
58e30d1
[1185] update_menus 守卫收敛为 should_skip_update,跳过内嵌消息 buffer (#4252)
da-liii Aug 8, 2026
1951e0e
[1185] update_menus 按 buffer 跳过冗余重建:chat_init 866→650 ms(-216 ms) (#4…
da-liii Aug 8, 2026
947b6b3
[1187] tree-search 累加器化:先补测试与基准,再改实现 (#4254)
da-liii Aug 8, 2026
af1be5b
[1188] lolly replace 小修:整段拷贝 + 空模式守卫 (#4255)
da-liii Aug 8, 2026
e18a617
[1185] chat_init 650→540 ms:chat 模块拆分 + lang kbd 解耦 text-kbd (#4256)
da-liii Aug 8, 2026
5a90966
[0511] 移除全部 Sparkle 死代码 (#4257)
MoonL79 Aug 8, 2026
88b6d20
[1185] chat_init 540→415 ms:计时盲区探针定位 + message 嵌入编辑器懒创建 (#4258)
da-liii Aug 8, 2026
1dc42d1
[1185] 修复「开启新会话」后消息区误显示 (#4259)
da-liii Aug 8, 2026
e973e14
[1185] chinese-kbd 延迟注册 + chat 默认包瘦身:chat_init 415→378 ms (#4260)
da-liii Aug 8, 2026
0c6acd6
[1190] 升级内置 Goldfish 到 v18.11.22 (#4261)
da-liii Aug 8, 2026
4e5b303
[1189] generic-kbd 按 look-and-feel 拆分为 profile 插件 (#4262)
da-liii Aug 8, 2026
a633271
[1191] 标签页与 tm-menu 解耦 (#4263)
da-liii Aug 9, 2026
cbe49a0
[1190] kernel string-starts?/string-ends? 转调 goldfish C 实现 (#4264)
da-liii Aug 9, 2026
fe1424c
[1191] 修复关闭当前 tab 跳转 chat 后已关 tab 残留 (#4265)
da-liii Aug 9, 2026
2caf73c
[1192] tmfs://aux/search 缓冲区跳过 update_menus 重建 (#4266)
da-liii Aug 9, 2026
90cef67
[1190] kernel string-join 转调 goldfish C 实现 (#4267)
da-liii Aug 9, 2026
320d39d
[1193] account 插件模块改名 (liii account) -> (account liii) (#4268)
da-liii Aug 9, 2026
03f172b
[1192] tmfs://aux/replace 缓冲区跳过 update_menus 重建 (#4269)
da-liii Aug 9, 2026
f4f6fd2
[1193] autosave 插件模块改名 (plugin autosave) -> (autosave plugin) (#4270)
da-liii Aug 9, 2026
4df0ee1
[1192] tmfs://aux/page-* 页眉页脚缓冲区跳过 update_menus 重建 (#4272)
da-liii Aug 9, 2026
401b63a
[1190] 字符串拼接统一收口 string-join:分隔符必传化,移除 string-recompose 及 cpp glue (#…
da-liii Aug 9, 2026
47415c3
[1193] comment 插件模块一级名 various -> comment (#4273)
da-liii Aug 9, 2026
bcce0cb
[1192] tmfs://aux/edit-comment 缓冲区跳过 update_menus 重建 (#4274)
da-liii Aug 9, 2026
2866a56
[1194] init-research 启动分阶段打点 + plugin-list 下沉 scheme (#4275)
da-liii Aug 9, 2026
3c7a2ea
[1195] boot 顶层注入 (liii os),清理冗余 import 与 os 谓词 glue (#4276)
da-liii Aug 9, 2026
be02c9a
[1194] kernel 阶段细化打点 + 移除 kernel/old-gui 死代码 (#4277)
da-liii Aug 9, 2026
a5dbc24
[1195] 移除 os-mingw?:scheme 调用 + glue 绑定 + C++ 函数及死代码 (#4278)
da-liii Aug 9, 2026
c716ad8
[0784] 运行时按是否共享文档禁用 archiver simplify (#4280)
JimZhouZZY Aug 10, 2026
0989d37
[0707] Collab 文档禁用 Preedit (#4282)
JimZhouZZY Aug 10, 2026
610ea52
[0708] 新建协作文档支持中文文件名 (#4284)
JimZhouZZY Aug 10, 2026
ff42c34
[1193] 规范化插件模块命名空间:19 个语言插件 (code *-*) → (plugin *-*) (#4285)
da-liii Aug 10, 2026
7cd026c
[1193] cite 插件模块命名空间规范化 (#4286)
da-liii Aug 10, 2026
2ad85c6
[1193] code 插件模块命名空间规范化: (prog prog-*) → (code prog-*) (#4287)
da-liii Aug 10, 2026
d21ec8d
[200_22] bump to Mogan STEM v2026.3.0-rc10
github-actions[bot] Aug 10, 2026
a7e6803
[1193] data format 模块命名空间规范化:(data *) → (* *-format) (#4290)
da-liii Aug 11, 2026
ecbc247
[0731] fix cd on Debian 13 (#4289)
JimZhouZZY Aug 11, 2026
025f928
[1193] 插件 binary 定义模块命名空间规范化 (#4292)
da-liii Aug 11, 2026
e81df71
[7001] 协作 buffer URL 改为 tmfs://collab/<doc_id> (#4291)
JimZhouZZY Aug 11, 2026
f2bc874
[7002] 协作模式下 Save as 改为 Download (#4293)
JimZhouZZY Aug 11, 2026
be6f406
[1131] fix: exec_use_package/load_style_tree 解析 .stem 文件走 generic_to_…
da-liii Aug 11, 2026
ef2f785
[7003] 给协作文档增加对应本地备份(Cmd+S 触发) (#4297)
JimZhouZZY Aug 11, 2026
ad3447b
[7004] 修复 File → Recent tooltip 中文路径乱码 (#4300)
JimZhouZZY Aug 11, 2026
918ab3a
[7003] autosave 适配 tmfs://collab/ (#4299)
JimZhouZZY Aug 11, 2026
b385202
[0512] Velopack runtime 集成 (#4288)
MoonL79 Aug 11, 2026
b8cfd47
[1193] html 插件 convert 子模块命名空间规范化 (#4296)
da-liii Aug 11, 2026
099f163
[1131] 全量转换 plugins 下 .ts → .stem 并格式化 (#4303)
da-liii Aug 11, 2026
1d940bf
[1131] chinese.ts → chinese.stem (#4304)
da-liii Aug 11, 2026
b262c91
[0512] tm_velopack 更新器抽象 (#4301)
MoonL79 Aug 11, 2026
a050a60
[7005] 协作文档支持 IME Pre-Edit (#4302)
JimZhouZZY Aug 11, 2026
3e22a77
[1193] image_xmgrace 插件合并到 image 插件 (#4306)
da-liii Aug 11, 2026
e5806d1
[1197] goldfish v18.11.23 格式化整个仓库 (#4307)
da-liii Aug 11, 2026
33a8aca
[1193] maxima/literate/ocr 插件模块命名空间规范化 (#4308)
da-liii Aug 11, 2026
3d6804b
[7006] Recents显示最近打开过的协作文档 (#4305)
JimZhouZZY Aug 11, 2026
60d8232
[1193] telemetry/physics 插件模块命名空间规范化 (#4309)
da-liii Aug 11, 2026
cc9a09c
[1193] latex 插件子模块命名空间规范化 (#4311)
da-liii Aug 11, 2026
8ab8308
[0512] 自动更新能力向 scheme 层暴露 (#4310)
MoonL79 Aug 11, 2026
3c99ba7
[200_22] bump to Mogan STEM v2026.3.0-rc11
github-actions[bot] Aug 11, 2026
56b6f25
[1193] use-module 路由优化:按最外层模块名固定定位 (#4312)
da-liii Aug 11, 2026
9b07c24
[7006] fix: loro=no 相关守卫 (#4313)
JimZhouZZY Aug 11, 2026
584bc73
[0513] 修复括号不匹配问题 (#4318)
MoonL79 Aug 12, 2026
797c9ed
[1198] 修复 GUI 导出 PDF 报 no window attached to view (#4314)
da-liii Aug 12, 2026
c760a49
[0900] 导出 PDF 后默认打开文件 (#4320)
PinkMagicFly Aug 12, 2026
19e9361
[0512] tm_velopack 状态机重构 (#4316)
MoonL79 Aug 12, 2026
58b443e
[0512] 自动下载监听循环 (#4317)
MoonL79 Aug 12, 2026
3c25cc9
[0512] 清理旧更新器配置与死代码 (#4319)
MoonL79 Aug 12, 2026
ab78f9c
[1199] 使用 utf8-kbd-map 支持 ¥、等非 ASCII 键 (#4322)
PinkMagicFly Aug 12, 2026
71b40b0
[200_22] bump to Mogan STEM v2026.3.0-rc12
github-actions[bot] Aug 13, 2026
f5e1d1a
[1201] 启动时不预载 plugin-convert(184 ms -> 164 ms) (#4326)
da-liii Aug 13, 2026
8e03b29
[0902] 欢迎页最近文档「云端」标签紧跟标题 (#4324)
PinkMagicFly Aug 13, 2026
77e8510
[0903] 云端文档下载默认目录改为系统下载目录 (#4327)
PinkMagicFly Aug 13, 2026
72f3464
[1201] julia 插件加载时显式 use-modules plugin-convert (#4329)
da-liii Aug 13, 2026
17e6bab
[1200] use-package 支持带路径包名直查定位(481 ms -> 227 ms) (#4331)
da-liii Aug 13, 2026
8797276
[0904] 远程文档搜索和替换功能无法使用 (#4332)
PinkMagicFly Aug 13, 2026
f339528
[1203] 使用 goldfish v18.11.24 全量格式化 .scm 文件 (#4334)
da-liii Aug 13, 2026
12ce6e0
[0905] 数学模式双字母 tab 循环末尾切回两个字母 (#4330)
PinkMagicFly Aug 13, 2026
a2ab759
[200_22] bump to Mogan STEM v2026.3.0-rc13
github-actions[bot] Aug 13, 2026
65dd6f1
[1202] environment 包 .ts 全量转换为 .stem (#4333)
da-liii Aug 13, 2026
975be74
[1202] Revert: environment 包 .ts 全量转换为 .stem (#4333) (#4335)
da-liii Aug 13, 2026
dac7431
[1202] environment 包 .ts 全量转换为 .stem (#4336)
da-liii Aug 13, 2026
b2fb3d9
[1204] standard 包 .ts 全量转换为 .stem (#4337)
da-liii Aug 13, 2026
935d8ce
[1196] string_to_scheme_tree 单元测试、性能测试与优化 (#4279)
da-liii Aug 13, 2026
80fcb34
[1196] 修复 is_spc 未声明导致的编译错误 (#4338)
da-liii Aug 13, 2026
c035a2e
[1206] section 包 .ts 全量转换为 .stem (#4340)
da-liii Aug 14, 2026
6a1ed67
[1205] 修复新建/打开文档时编辑区灰边闪白 (#4339)
da-liii Aug 14, 2026
d35281d
[0909] 升级内置 Goldfish Scheme 到 v18.11.26 (#4341)
PinkMagicFly Aug 14, 2026
4ce84e2
[0512] Velopack 打包流水线 (#4323)
MoonL79 Aug 14, 2026
5ee09a8
[200_22] bump to Mogan STEM v2026.3.1-rc.1
github-actions[bot] Aug 14, 2026
4ec8e55
[1131] 移除偏好设置与 zh_CN 词典中 Mogan Scheme 残留代码 (#4344)
da-liii Aug 14, 2026
f75e8d7
[0910] 修复新建文档时标签页显示两个修改标记星号 (#4342)
PinkMagicFly Aug 14, 2026
ba11cfc
[200_22] bump to Mogan STEM v2026.3.1-rc.2
github-actions[bot] Aug 14, 2026
37c4fbf
[1207] 、直接插入顿号,、Tab 进命令模式并自动禁用输入法 (#4343)
da-liii Aug 14, 2026
7bba284
[0515] 首选项配置文件改为 JSON 格式 (#4347)
MoonL79 Aug 17, 2026
4a6d31b
[0514] 首选项配置文件固定位置 (#4348)
MoonL79 Aug 17, 2026
fab8d77
[0913] 版本弹窗长文本自动换行并自适应高度 (#4349)
PinkMagicFly Aug 17, 2026
985313d
[0912] 保存无标题文件默认路径改为 Documents/LiiiSTEM (#4350)
PinkMagicFly Aug 17, 2026
e3866d1
[0914] 升级内置 Goldfish Scheme 到 v18.11.27 (#4352)
PinkMagicFly Aug 17, 2026
13814c4
[0516] Velopack 更新源按社区版/商业版区分 (#4351)
MoonL79 Aug 17, 2026
18e9190
[1208] lolly list 尾追加等操作由递归改为迭代 (#4354)
da-liii Aug 17, 2026
f525276
[1210] inside_rectangle 补充 Doxygen 文档并扩充单元测试 (#4356)
da-liii Aug 18, 2026
7cb9ce1
[0828] plugin-math-input 改用独立 string port 捕获,修复日志污染 (#4353)
da-liii Aug 18, 2026
757d132
[1209] 优化 lolly hashmap 性能 (#4355)
da-liii Aug 18, 2026
b6ba675
[1211] 优化 lolly hashset 性能 (#4357)
da-liii Aug 18, 2026
9deb902
[1212] 优化 point 的性能并补充单元测试 (#4358)
da-liii Aug 18, 2026
f1e253e
[0915] 补充 point proj 的 Doxygen 文档与测试用例 (#4359)
PinkMagicFly Aug 18, 2026
756e851
[1214] translate 的 Doxygen 文档、单元测试与性能优化 (#4360)
da-liii Aug 18, 2026
9e71590
[1213] 优化 lolly string 性能 (#4361)
da-liii Aug 18, 2026
0d4cef1
[1214] translate(rectangles) 递归改迭代:尾插直挂 (#4363)
da-liii Aug 18, 2026
6c1cae0
[0916] 优化 point norm 性能并补充 Doxygen 文档与单元测试 (#4362)
PinkMagicFly Aug 18, 2026
e6477d2
[1214] thicken(rectangles) 递归改迭代:尾插直挂 (#4364)
da-liii Aug 18, 2026
0ec15c4
[0917] 优化 point dist 性能,补充 Doxygen 文档与单元测试 (#4365)
PinkMagicFly Aug 18, 2026
51d93bd
[1216] 优化 lolly replace 性能 (#4366)
da-liii Aug 18, 2026
f5e646d
[1214] thicken/correct/simplify 文档、单元测试与 correct 性能优化 (#4368)
da-liii Aug 18, 2026
174840e
[1216] 优化 lolly tokenize 性能 (#4369)
da-liii Aug 18, 2026
3cfeba7
[1215] 优化 subtree 性能并补充 Doxygen 文档、单元测试与基准 (#4367)
da-liii Aug 18, 2026
0c245d9
[1216] 优化 lolly search_forwards 性能 (#4371)
da-liii Aug 18, 2026
6d67023
[1214] rectangles operator- 性能优化:逐矩形独立求差 (#4370)
da-liii Aug 18, 2026
36105be
[1214] rectangles operator- 性能优化:operator- 整表克隆改原地改链 (#4373)
da-liii Aug 18, 2026
e842190
[0918] 绘图模式线段中点绿色吸附点 (#4375)
da-liii Aug 18, 2026
ea22dd5
[0517] 更新源 base URL 按 stem-profile 运行时切换 (#4374)
MoonL79 Aug 18, 2026
8f6e28d
[1217] 移除未使用的 string-count-occurrences (#4376)
da-liii Aug 18, 2026
115b207
[1218] 基础类型与手写识别模块迁移到 moebius (#4377)
da-liii Aug 18, 2026
2c3e489
[1214] rectangles operator- 碎片表整表重建改原地摘链改写 (#4379)
da-liii Aug 18, 2026
d620057
[1220] 手写模式跳过 update-menus 工具栏重建 (#4381)
da-liii Aug 18, 2026
2de4857
[1219] poly_line 补充 Doxygen 文档、单元测试与性能优化 (#4380)
da-liii Aug 18, 2026
d4af8e1
[1223] 启动页 buffer 跳过 apply_changes 排版 (#4383)
da-liii Aug 18, 2026
9743f0d
[1222] 菜单性能优化 (#4382)
da-liii Aug 18, 2026
ef7b735
[1221] PDF 阅读器重新打开时跳转到上次阅读页码 (#4384)
da-liii Aug 18, 2026
5894f0a
[0919] 迁移 curve 至 moebius (#4386)
PinkMagicFly Aug 19, 2026
88d72f7
[7007] 修复 WASM 端 Collaborative 菜单不可用 (#4346)
JimZhouZZY Aug 19, 2026
6418f1b
[0920] 优化 curve_rep::bound 性能并补文档与测试 (#4389)
PinkMagicFly Aug 19, 2026
bb392aa
[1224] 启动性能优化:事件循环启动 <200ms 并精简启动日志 (#4385)
da-liii Aug 19, 2026
c411d69
[0923] 升级内置 Goldfish Scheme 到 v18.11.29 (#4393)
PinkMagicFly Aug 19, 2026
8e4d544
[1227] 表格不超过10行默认不分页,超过时自动开启分页 (#4388)
da-liii Aug 19, 2026
eb3ec26
[200_22] bump to Mogan STEM v2026.3.1-rc.3
github-actions[bot] Aug 19, 2026
3861b35
[0828] cpp-tree->utf8raw 还原 <less>/<gtr> 为字面 < > (#4394)
da-liii Aug 19, 2026
5417b07
[1226] 移除休眠的手写识别功能与 poly_line 模块 (#4395)
da-liii Aug 19, 2026
68e2e92
[1228] is_empty/is_snippet 缓存标签编号,消除热路径字符串比较 (#4396)
da-liii Aug 19, 2026
9472285
[1228] valid_cursor/pre_correct 缓存 input/math 标签编号,消除热路径字符串比较 (#4397)
da-liii Aug 19, 2026
2e62877
[1228] raw_insert/raw_remove 逐元素搬移改为 memmove 块移动 (#4398)
da-liii Aug 19, 2026
b404dc9
[200_22] bump to Mogan STEM v2026.3.1-rc.4
github-actions[bot] Aug 20, 2026
558958a
[1229] scheme 解析器三处越界读修复(迁移自 pr_4399) (#4401)
da-liii Aug 20, 2026
41df2cb
[0925] 修复帮助->版本弹窗无法通过 ESC 关闭 (#4400)
PinkMagicFly Aug 20, 2026
ecb0b90
[200_22] bump to Mogan STEM v2026.3.1
github-actions[bot] Aug 20, 2026
44d3ede
[0926] PDF 导出完成弹窗 QML 重构 (#4402)
PinkMagicFly Aug 21, 2026
c213b7b
[1185] 修复新会话首次发送失败导致欢迎页不切换 (#4409)
da-liii Aug 22, 2026
14c4aa6
[1230] 修复 LLM 首次对话 %chat 回显漏出到 session 文档末尾 (#4411)
da-liii Aug 22, 2026
1860a63
[1232] 会员赠送 7 天文案改为 3 天 (#4410)
da-liii Aug 24, 2026
b9850c0
[0927] 修复帮助-版本弹窗打开后未聚焦导致 ESC 无法关闭 (#4405)
PinkMagicFly Aug 24, 2026
7fdcd0d
[1231] 非社区版增加 Ghost text 实验选项(默认关闭) (#4413)
da-liii Aug 24, 2026
4a5d046
[0930] 魔法粘贴支持 ChatGPT 新版前端公式结构 (#4412)
PinkMagicFly Aug 24, 2026
2d778c1
[200_22] bump to Mogan STEM v2026.3.2-rc.2
github-actions[bot] Aug 24, 2026
0269827
[2092] 修复 macOS 上 LLM 报 HTTP状态码为0:goldfish 内置 libcurl 未启用 SSL (#4406)
Yuki-Nagori Aug 24, 2026
7a1739c
[1233] 连按 $ $ 进入单行公式 (#4416)
da-liii Aug 24, 2026
fd37117
[1235] 注册 markdown lazy-format(仅非社区版) (#4417)
da-liii Aug 24, 2026
084eee9
[2092] 修复 Linux 上 goldfish HTTPS 段错误:libcurl 统一用 3rdparty 源码构建 (#4418)
da-liii Aug 24, 2026
2f744e4
[1240] 新文档 no_name 机制改为 draft_ 时间戳命名 (#4419)
da-liii Aug 24, 2026
022d191
[0933] 修复 macOS 上 as_string(time_t) 重载二义导致的编译错误 (#4422)
PinkMagicFly Aug 25, 2026
017960d
[1240] 修复打开 中文.tmu 标签页标题乱码 (#4421)
da-liii Aug 25, 2026
8598991
[0935] 删除 url_numbered 遗留测试用例,修复 tests 组 CI 编译失败 (#4423)
PinkMagicFly Aug 25, 2026
01dc313
[1240] scratch url 支持自动保存 + draft_ 时间戳命名 (#4420)
da-liii Aug 25, 2026
4a9924f
[0934] 修复 Windows 上翻译字典跨行条目因 CRLF 解析失败而丢失 (#4424)
PinkMagicFly Aug 25, 2026
0f38eab
[1234] Alt+0..3 按上方最近同级标题智能插入有/无编号标题 (#4415)
da-liii Aug 25, 2026
a818694
[0937] 修复全屏模式下光标移入特殊格式导致退出全屏 (#4425)
PinkMagicFly Aug 25, 2026
1450072
[1238] PDF 截图矩形选区改为两次点击确定,不再按住拖拽 (#4428)
da-liii Aug 25, 2026
c81e9b8
[1237] 鼠标拖选期间光标保持在按下位置 (#4427)
da-liii Aug 25, 2026
f63ef6b
[200_22] bump to Mogan STEM v2026.3.2-rc.3
github-actions[bot] Aug 25, 2026
d2be53f
[1237] Revert: 鼠标拖选期间光标保持在按下位置 (#4429)
da-liii Aug 26, 2026
aa9fa37
[0941] PDF 截图结果提示顶部居中显示,任意后续操作立即消失 (#4434)
PinkMagicFly Aug 26, 2026
d028e32
[1242] 修复快捷键切换结构变体后焦点工具栏不刷新 (#4435)
da-liii Aug 26, 2026
6fa158b
[1241] 连按 ¥$ 进入单行公式 (#4433)
da-liii Aug 26, 2026
7a7d765
[1239] 商业版悬浮用户中心按钮直接显示用户中心 (#4431)
da-liii Aug 26, 2026
340b9a8
[1245] 插入会话/代码块/脚本时样式包检查改用 .stem (#4439)
da-liii Aug 26, 2026
090321b
[1244] 修复goldfish的动态链接问题 (#4438)
da-liii Aug 26, 2026
e9aec2a
[200_22] bump to Mogan STEM v2026.3.2-rc.4
github-actions[bot] Aug 26, 2026
e537ce1
[1246] 修复魔法粘贴对图片剪贴板取错 child 导致 OCR 不触发 (#4440)
da-liii Aug 26, 2026
ea644e4
[1247] 修复 image-and-ocr-paste 与 is-clipboard-image? 对外部图片剪贴板取错 child …
da-liii Aug 26, 2026
f7c053e
[200_22] bump to Mogan STEM v2026.3.2-rc.5
github-actions[bot] Aug 26, 2026
0bf1d6f
[0518] 更新通道 stable/beta 软件内切换 (#4430)
MoonL79 Aug 27, 2026
25fe827
[0518] format (#4442)
MoonL79 Aug 27, 2026
29486bf
[1249] 移除 Versioning tool 的全部 UI 入口 (#4443)
da-liii Aug 27, 2026
151bbf4
[200_22] bump to Mogan STEM v2026.3.2-rc.6
github-actions[bot] Aug 27, 2026
51d63d9
[1248] diff 拒绝快捷键改为 ESC,弹窗跟随不再依赖插件 (#4444)
da-liii Aug 27, 2026
ac74614
[0943] 文件菜单最近使用列表去重 (#4445)
PinkMagicFly Aug 27, 2026
12aa097
Revert "[1239] 商业版悬浮用户中心按钮直接显示用户中心" (#4446)
PinkMagicFly Aug 27, 2026
d3b5171
[0944] 目录跳转后立即滚动到光标位置 (#4447)
PinkMagicFly Aug 27, 2026
1c139b0
[200_22] bump to Mogan STEM v2026.3.2
github-actions[bot] Aug 27, 2026
9ebbdaa
[0947] 补全 QML 弹窗 ai-docs 并补登 UpdaterProgress (#4450)
PinkMagicFly Aug 28, 2026
8ef2437
[0948] 修复 Windows 下启动页最近文档移除无反应 (#4458)
PinkMagicFly Sep 1, 2026
9d21d01
[0949] 修复编辑菜单中复制、剪切快捷键显示异常 (#4460)
da-liii Sep 1, 2026
6ebb189
[1250] 修复 telemetry 插件模块命名冲突与初始化失败问题 (#4461)
da-liii Sep 1, 2026
2bba2fe
[1251] 移除 init-windows.scm 中的 windows = 快捷键 (#4462)
da-liii Sep 1, 2026
1142bc4
[0519] macOS 平台 velopack 打包链路 (#4449)
MoonL79 Sep 1, 2026
de4e7f2
[0520] macOS arm64 Velopack 打包 CD 接入 (#4465)
MoonL79 Sep 1, 2026
4cd5809
[1252] 升级内置 Goldfish Scheme 到 v18.11.31 (#4464)
dwjgcyzj0830-crypto Sep 1, 2026
66ee9d8
[0928] 用 QML 重构调色板 (#4408)
PinkMagicFly Sep 1, 2026
f89d5c3
[1256] 修复含 \< 的文档反复选中后排版引擎卡死 (#4472)
da-liii Sep 2, 2026
6787602
[1254] 在同类标题结构中插入标题时先移出结构并回车 (#4470)
da-liii Sep 2, 2026
56f0364
[1258] 修复启动页最近文档下划线不可见,一屏显示10条 (#4473)
da-liii Sep 2, 2026
9b3353d
[1259] 启动页最近文档默认上限提升到 50 (#4475)
da-liii Sep 2, 2026
0df5a4b
[1257] 草稿文件名用 _ 分隔日期与时刻 (#4474)
dwjgcyzj0830-crypto Sep 2, 2026
6fbcbbc
[1257] 增加草稿文件名及存量兼容的端到端自动化测试 (#4477)
da-liii Sep 2, 2026
f2276a0
[1258] 增加基于 pynput 的端到端自动化测试脚本 (#4476)
da-liii Sep 2, 2026
5802a23
[1254] 增加基于 pynput 的端到端自动化测试并完善各级标题插入支持 (#4478)
da-liii Sep 2, 2026
b918171
[1258] 适配 macOS 端到端 UI 自动化测试 (#4481)
PinkMagicFly Sep 2, 2026
6f4405a
[200_22] bump to Mogan STEM v2026.3.4
github-actions[bot] Sep 2, 2026
bdd68e2
[4160] 选择打印为文件改用 QML 对话框 (#4479)
dwjgcyzj0830-crypto Sep 2, 2026
042e045
[4157] 搜索最近打开的文档改用 QML 对话框 (#4480)
dwjgcyzj0830-crypto Sep 2, 2026
a89404a
[1257] 让草稿文件名端到端测试在 Windows 上可跑 (#4483)
dwjgcyzj0830-crypto Sep 2, 2026
452f590
[1243] 打开 AI 侧边栏时自动填入文档选区内容 (#4437)
da-liii Sep 2, 2026
630886c
[1260] 修复打开帮助手册后画布上下多余的空隙 (#4484)
da-liii Sep 3, 2026
b4f5c14
[0953] 新增 kimi/deepseek 模型官方 logo 图标资源 (#4486)
PinkMagicFly Sep 3, 2026
9e2a14e
[0954] LLM 聊天输入区按钮布局调整与 Model 占位菜单 (#4487)
PinkMagicFly Sep 3, 2026
2031155
[1261] 修复 llm 插件忙碌提示解码崩溃 (#4489)
da-liii Sep 4, 2026
ecb8a05
[1262] 修复 chat-style 中插件样式包检测路径并添加 chat-tree-ops 依赖 (#4490)
da-liii Sep 4, 2026
4229983
[1263] 同步内部仓库 llm 协议改动并清理 1185 的 view-passive 补丁 (#4491)
da-liii Sep 4, 2026
a5a7c6c
[1264] check 标签默认 utf8->herk,修复编号样式菜单乱码 (#4492)
da-liii Sep 4, 2026
0942af2
[1266] 标签页脏标记改为圆点,悬停标签任意位置显示关闭按钮 (#4493)
da-liii Sep 5, 2026
1a17e94
[1266] 修复 TestQTMTabPage 对环境光标的依赖,恢复 Debian/macOS CI (#4497)
da-liii Sep 5, 2026
4f8a03a
[1212] 修复 orthogonalize/midperp 混维度输入越界读 (#4495)
da-liii Sep 5, 2026
47a3f94
[1228] 修复 raw_insert/raw_remove memmove 块移动的引用计数泄漏 (#4494)
da-liii Sep 5, 2026
5120cbc
[1267] 隐藏 文件->打印 和 文件->页面设置 (#4498)
da-liii Sep 5, 2026
f5e1ba7
[1228] 修复 tm_resize_array 收缩时不析构截断槽位导致的句柄泄漏 (#4496)
da-liii Sep 5, 2026
a3c4575
[1267] 隐藏导出菜单 PDF 项,新增 导出为PDF QML 对话框 (#4499)
da-liii Sep 5, 2026
c854940
[1268] 修复 PDF 附件中文名乱码:附件名以 UTF-16BE+BOM 写入 (#4500)
da-liii Sep 5, 2026
aa68ae6
[1270] QML 弹窗 scene graph 固定 software 后端,规避 GPU 驱动问题 (#4502)
da-liii Sep 5, 2026
ed37d37
[1269] 导出PDF默认目录:tmu 在 texmacs 路径外用所在目录,否则落 Documents/LiiiSTEM (#4503)
da-liii Sep 5, 2026
d13a62f
[1272] 深色模式新建 AI 对话自动带上 dark 样式包 (#4504)
da-liii Sep 5, 2026
99e07e1
[1273] 点击历史会话恢复后自动补齐 llm 样式包 (#4506)
da-liii Sep 5, 2026
d1e7f5a
[1274] 修复会话列表多选勾选框昼夜主题下看不清 (#4507)
da-liii Sep 5, 2026
dab0e49
[1271] 导出PDF弹窗内联目的地路径 + Browse,修复中文路径导出 (#4505)
da-liii Sep 5, 2026
aa15a66
[1275] 历史会话恢复不闪现欢迎页 (#4508)
da-liii Sep 5, 2026
d2242e3
[1276] 修复光标移入定理类环境导致标题被正文背景遮挡 (#4509)
da-liii Sep 6, 2026
3cb23a8
[0955] 任务文档:Qt 模型清单与完整模型菜单
PinkMagicFly Sep 7, 2026
4ab7e92
[0955] Qt 读取模型清单 + 完整模型菜单 + 会话级切换 + 默认模型修正
PinkMagicFly Sep 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 2 additions & 6 deletions .github/workflows/cd-debian13.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,6 @@ jobs:
libdbus-1-3 libglib2.0-0t64 libegl1 libgl-dev libxkbcommon0 \
fonts-noto-cjk \
ghostscript \
qt6-base-dev \
libqt6svg6-dev \
libqt6networkauth6-dev \
qt6-base-private-dev \
fakeroot \
debhelper \
file \
Expand All @@ -81,7 +77,7 @@ jobs:
# 3. 编译流程
# ==========================================
- name: Config
run: xmake config --yes -vD -m release --policies=build.ccache
run: xmake config --loro=yes --yes -vD -m release --policies=build.ccache

- name: Build
run: xmake build -vD stem
Expand Down Expand Up @@ -150,4 +146,4 @@ jobs:
with:
prerelease: true
files: |
mogan-stem-*-debian13-amd64.deb
mogan-stem-*-debian13-amd64.deb
31 changes: 28 additions & 3 deletions .github/workflows/cd-research-mogan-app.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ on:
- ".github/workflows/cd-research-mogan-app.yml"
- "TeXmacs/tests/*.scm"
- "3rdparty/**"
- "web/**"
workflow_dispatch:

env:
Expand Down Expand Up @@ -64,17 +65,41 @@ jobs:
${{ env.XMAKE_GLOBALDIR }}/.xmake/packages
key: xrepo-${{ runner.os }}-${{ matrix.arch }}-${{ hashFiles('xmake/vars.lua', 'lolly/xmake.lua', 'moebius/xmake.lua') }}

# Build the React shell (web/) before the C++ link step. xmake's
# after_build copies web/dist into the stem target dir, so the Vite
# output must exist before `xmake build stem` links.
- uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: web/package-lock.json
- name: cache npm
uses: actions/cache@v4
with:
path: ~/.npm
key: npm-${{ runner.os }}-${{ hashFiles('web/package-lock.json') }}
- name: build react shell
run: |
cd web
npm ci
npm run build

- name: config
run: xmake config --policies=build.ccache -o ${{ runner.workspace }}/build -m release -p wasm --qt_frontend=no --pdfhummus=no --goldfish=no --yes
run: xmake config --policies=build.ccache -o ${{ runner.workspace }}/build -m release -p wasm --qt_frontend=no --pdfhummus=no --goldfish=no --loro=yes --yes

- name: build
run: xmake build --yes -vD stem

- name: Prepare GitHub Pages files
run: |
echo "research.mogan.app" > ${{ runner.workspace }}/build/wasm/wasm32/release/CNAME
mv ${{ runner.workspace }}/build/wasm/wasm32/release/stem.html \
${{ runner.workspace }}/build/wasm/wasm32/release/index.html
# The React shell (web/dist) already provides index.html; stem.html
# is a mirror of it for the dev server. Only fall back to the legacy
# rename when the JS shell wasn't built.
if [ ! -f ${{ runner.workspace }}/build/wasm/wasm32/release/index.html ]; then
mv ${{ runner.workspace }}/build/wasm/wasm32/release/stem.html \
${{ runner.workspace }}/build/wasm/wasm32/release/index.html
fi
rm ${{ runner.workspace }}/build/wasm/wasm32/release/*.a

- name: Push
Expand Down
216 changes: 203 additions & 13 deletions .github/workflows/cd_on_macos_arm64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,11 @@ jobs:
os: [macos-14]
arch: [arm64]
runs-on: ${{ matrix.os }}
timeout-minutes: 45
# Windows CD 为 45 分钟;mac 侧多出 vpk 签名 + notarytool 公证等待
# (package.scm 时代公证单独给了 60 分钟超时),放宽到 60。
timeout-minutes: 60
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 1
- uses: xmake-io/github-action-setup-xmake@v1
Expand All @@ -27,30 +29,218 @@ jobs:
actions-cache-folder: '.xmake-cache'
- name: xmake repo --update
run: xmake repo --update
- name: Config and build goldfish
# Noto 字体(与 Windows CD 相同来源):原由 package.scm 内部下载,
# DMG 流程移除后必须在此落位,install 才会收进 .app 的 Resources。
- name: Noto fonts
run: |
xmake config -m release -a ${{ matrix.arch }} -vD --yes
xmake build goldfish-bin
ls -la TeXmacs/plugins/goldfish/bin/ || echo "goldfish bin dir not found"
- name: Package with Goldfish
mkdir -p TeXmacs/fonts/opentype/noto
cd TeXmacs/fonts/opentype/noto
curl -fsSLO https://github.com/XmacsLabs/mogan/releases/download/v1.2.9.7/NotoSansCJK-Bold.ttc
curl -fsSLO https://github.com/XmacsLabs/mogan/releases/download/v1.2.9.7/NotoSansCJK-Regular.ttc
curl -fsSLO https://github.com/XmacsLabs/mogan/releases/download/v1.2.9.7/NotoSerifCJK-Bold.ttc
curl -fsSLO https://github.com/XmacsLabs/mogan/releases/download/v1.2.9.7/NotoSerifCJK-Regular.ttc
- name: config
run: xmake config -m release -a ${{ matrix.arch }} -vD --loro=yes --yes
- name: build
run: xmake build -vD stem
- name: install
run: xmake install -vD stem
# vpk 1.2.0 的 apphost 需要 .NET 10 runtime;macos-14 arm64 镜像自带的
# dotnet 版本较旧且不在 apphost 默认搜索路径(首跑实测 You must install
# .NET)。setup-dotnet 显式装 .NET 10 并设置 DOTNET_ROOT。
- uses: actions/setup-dotnet@v4
with:
dotnet-version: '10.0.x'
- name: Install vpk
shell: pwsh
run: |
dotnet tool install -g vpk --version 1.2.0
# pwsh 在 Unix 无 USERPROFILE,用 HOME
Add-Content -Path $env:GITHUB_PATH -Value "$($env:HOME)/.dotnet/tools"
# Apple 签名/公证 setup(mac 独有;Windows 的正式签名在 SafeNet 签名机
# 事后完成,mac 未签名 pkg 会被 Gatekeeper 直接拦截,故在 CI 内完成)。
# keychain 命令序列照搬 packages/macos/package.scm 的 setup-keychain;
# 身份名动态解析后经 VPK_SIGN_* 环境变量注入 pack_velopack.lua(见
# tools/release/pack_velopack.lua 的 mac 签名参数透传),stage 侧检测到
# VPK_SIGN_APP_IDENTITY 即跳过 ad-hoc、交给 vpk 深签。
- name: Setup Apple signing
env:
APPLE_CERTIFICATE_P12_BASE64: ${{ secrets.APPLE_CERTIFICATE_P12 }}
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
APPLE_API_KEY_ID: ${{ secrets.APPLE_API_KEY_ID }}
APPLE_API_KEY_P8: ${{ secrets.APPLE_API_KEY_P8 }}
APPLE_API_ISSUER_ID: ${{ secrets.APPLE_API_ISSUER_ID }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
run: |
chmod +x TeXmacs/plugins/goldfish/bin/goldfish
TeXmacs/plugins/goldfish/bin/goldfish packages/macos/package.scm
- name: Upload
set -e
KEYCHAIN="$HOME/Library/Keychains/mogan-signing.keychain-db"
KEYCHAIN_PASS="$(openssl rand -base64 32)"
CERT=/tmp/mogan_cert.p12
printf '%s' "$APPLE_CERTIFICATE_P12_BASE64" | base64 -D -o "$CERT"
security delete-keychain "$KEYCHAIN" 2>/dev/null || true
security create-keychain -p "$KEYCHAIN_PASS" "$KEYCHAIN"
security set-keychain-settings -lut 21600 "$KEYCHAIN"
security unlock-keychain -p "$KEYCHAIN_PASS" "$KEYCHAIN"
security import "$CERT" -P "$APPLE_CERTIFICATE_PASSWORD" -k "$KEYCHAIN" -T /usr/bin/codesign ||
security import "$CERT" -P "$APPLE_CERTIFICATE_PASSWORD" -k "$KEYCHAIN"
curl -fsSL -o /tmp/apple_devid_ca.cer https://www.apple.com/certificateauthority/DeveloperIDCA.cer
curl -fsSL -o /tmp/apple_devid_ca_g2.cer https://www.apple.com/certificateauthority/DeveloperIDG2CA.cer
security add-certificates -k "$KEYCHAIN" /tmp/apple_devid_ca.cer /tmp/apple_devid_ca_g2.cer
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "$KEYCHAIN_PASS" "$KEYCHAIN"
LOGIN_KC="$HOME/Library/Keychains/login.keychain-db"
if [ -f "$LOGIN_KC" ]; then
security list-keychains -d user -s "$KEYCHAIN" "$LOGIN_KC" /Library/Keychains/System.keychain
else
security list-keychains -d user -s "$KEYCHAIN" /Library/Keychains/System.keychain
fi
security default-keychain -s "$KEYCHAIN"
# notarytool 凭据 profile(App Store Connect API key,同 package.scm)
KEY_DIR="$HOME/.appstoreconnect/private_keys"
mkdir -p "$KEY_DIR"
API_KEY="$KEY_DIR/AuthKey_${APPLE_API_KEY_ID}.p8"
printf '%s' "$APPLE_API_KEY_P8" | base64 -D -o "$API_KEY"
chmod 600 "$API_KEY"
xcrun notarytool store-credentials mogan-notary \
--key "$API_KEY" --key-id "$APPLE_API_KEY_ID" \
--issuer "$APPLE_API_ISSUER_ID" --keychain "$KEYCHAIN"
# 身份名动态解析(P12 里证书的完整主题名因续期而变,不硬编码)
APP_IDENTITY="$(security find-identity -v -p codesigning "$KEYCHAIN" |
sed -n 's/.*"\(Developer ID Application:[^"]*\)".*/\1/p' | head -1)"
INSTALL_IDENTITY="$(security find-identity -v -p codesigning "$KEYCHAIN" |
sed -n 's/.*"\(Developer ID Installer:[^"]*\)".*/\1/p' | head -1)"
if [ -n "$APP_IDENTITY" ]; then
echo "VPK_SIGN_APP_IDENTITY=$APP_IDENTITY" >> "$GITHUB_ENV"
else
echo "::error::keychain 中未找到 Developer ID Application 证书"
exit 1
fi
# P12 可能只含 Application 证书;缺 Installer 时 vpk 跳过 .pkg 签名并
# 告警(app 仍签名),属可接受降级
if [ -n "$INSTALL_IDENTITY" ]; then
echo "VPK_SIGN_INSTALL_IDENTITY=$INSTALL_IDENTITY" >> "$GITHUB_ENV"
echo "INSTALL_IDENTITY=$INSTALL_IDENTITY"
else
echo "INSTALL_IDENTITY=(未找到 Developer ID Installer,pkg 将不签名)"
fi
echo "VPK_NOTARY_PROFILE=mogan-notary" >> "$GITHUB_ENV"
echo "VPK_KEYCHAIN=$KEYCHAIN" >> "$GITHUB_ENV"
echo "APP_IDENTITY=$APP_IDENTITY"
- name: Stage Velopack
run: xmake l tools/release/stage_velopack.lua
# 从 GitHub Release 拉取上一版本的发布压缩包作为各通道的 delta 基线:
# 逻辑与 Windows CD 一致(列 100 个 release、排除 draft 与当前 tag、
# beta 必查 + 无 -rc 才查 stable、stable 只认非 rc release、同版本跳过、
# 解 zip 取该通道 full 包拷入 build/velopack_release_<channel>/)。
# 与 Windows 的两处差异:
# 1) zip 匹配模式带 -osx-arm64 平台段——同一 release 上还有 Windows 的
# mogan-release-*-win-x64-<channel>.zip,nupkg 是平台专属的,不带
# 平台段会抓错平台基线;
# 2) 不做裸 nupkg 回退——Windows 的该回退对应其过渡期历史,mac 沿用
# 会抓到 Windows 的旧 full 包。
# 某通道首次发布(GitHub 上尚无 mac 归档 zip)时跳过属正常:没有基线
# 时 pack 只出 full 包,是合法状态。
# GITHUB_TOKEN 不会自动注入为环境变量,必须显式传入 secrets.GITHUB_TOKEN;
# 为空时回退为公开仓库的匿名访问。
- name: Fetch delta baselines from GitHub Release
shell: pwsh
continue-on-error: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
$headers = @{
Accept = "application/vnd.github+json"
"User-Agent" = "mogan-cd"
}
if ($env:GITHUB_TOKEN) {
$headers["Authorization"] = "Bearer $($env:GITHUB_TOKEN)"
}
$releases = Invoke-RestMethod -Headers $headers `
-Uri "https://api.github.com/repos/${{ github.repository }}/releases?per_page=100"
$releases = $releases |
Where-Object { -not $_.draft -and $_.tag_name -ne $env:GITHUB_REF_NAME }
# 本次要打的通道:beta 必打;stable 仅 tag 不含 -rc 时打
# (tag 名由 bump-version 流水线产生,-rc 与否即通道信息,无需透传)。
$tag = "${{ github.ref_name }}"
$channels = @("beta")
if ($tag -notmatch '-rc') { $channels += "stable" }
$vars = Get-Content xmake/vars.lua -Raw
$currentVer = [regex]::Match($vars, 'XMACS_VERSION\s*=\s*"([^"]+)"').Groups[1].Value
foreach ($channel in $channels) {
Write-Host "== 通道 $channel:查找 delta 基线 =="
foreach ($release in $releases) {
# stable 基线只认非 rc tag 的 release(rc release 无 stable 包)
if ($channel -eq "stable" -and $release.tag_name -match '-rc') {
continue
}
Remove-Item build/velopack_baseline -Recurse -Force -ErrorAction SilentlyContinue
New-Item -ItemType Directory -Path build/velopack_baseline -Force | Out-Null
# 按平台 + 通道名匹配 zip(分开上传的格式,名带平台与通道后缀,
# 只下载目标通道的归档,避免拉取无关平台的 1.5GB 包)
$zipPattern = "mogan-release-*-osx-arm64-$channel.zip"
$zip = $release.assets |
Where-Object { $_.name -like $zipPattern } |
Select-Object -First 1
if (-not $zip) { continue }
/usr/bin/curl -fsSL "$($zip.browser_download_url)" -o build/velopack_baseline.zip
Expand-Archive -Path build/velopack_baseline.zip `
-DestinationPath build/velopack_baseline -Force
$full = Get-ChildItem build/velopack_baseline -Filter "*-$channel-full.nupkg" |
Select-Object -First 1
if (-not $full) { continue }
$baselineVer = $full.Name -replace '^Mogan-', '' `
-replace "-$channel-full\.nupkg$", ''
if ($baselineVer -eq $currentVer) {
Write-Host "基线版本与当前版本相同($baselineVer),跳过(重跑同一版本)"
break
}
$outDir = "build/velopack_release_$channel"
New-Item -ItemType Directory -Path $outDir -Force | Out-Null
Copy-Item $full.FullName $outDir/
Write-Host "已就位 $channel delta 基线: $($full.Name)"
break
}
}
# vpk pack 在 outputDir 存在上一版本(上一步拉取的 full 包)时自动生成
# delta 增量包;首次发布无上一版本,只有全量包。beta/stable 各用独立
# 输出目录(vpk 把 outputDir 当 channel 累积目录,混用会互相干扰),
# 产物文件名带 channel 后缀,最后合并进同一 release 归档。
- name: Pack Velopack (beta)
env:
VPK_CHANNEL: beta
VPK_OUTPUT_DIR: build/velopack_release_beta
run: xmake l tools/release/pack_velopack.lua
- name: Pack Velopack (stable)
if: ${{ !contains(github.ref_name, '-rc') }}
env:
VPK_CHANNEL: stable
VPK_OUTPUT_DIR: build/velopack_release_stable
run: xmake l tools/release/pack_velopack.lua
# 每个通道各自打一个 zip(Release 资产与下游 delta 基线按通道取用):
# 文件名带平台与通道后缀 mogan-release-<ver>-osx-arm64-<channel>.zip,
# 命名规则与 Windows CD 的 win-x64 归档一致。
- name: Create release archive
shell: pwsh
run: |
$vars = Get-Content xmake/vars.lua -Raw
$ver = [regex]::Match($vars, 'XMACS_VERSION\s*=\s*"([^"]+)"').Groups[1].Value
$dirs = Get-ChildItem build -Directory -Filter 'velopack_release_*' |
Sort-Object Name
foreach ($d in $dirs) {
$channel = $d.Name -replace '^velopack_release_', ''
$archive = "build/mogan-release-$ver-osx-arm64-$channel.zip"
Compress-Archive -Path "$($d.FullName)/*" -DestinationPath $archive `
-CompressionLevel Optimal -Force
Get-Item $archive | Select-Object Name, Length
}
- name: Upload
uses: actions/upload-artifact@v4
if: ${{ !startsWith(github.ref, 'refs/tags/') }}
with:
path: build/*.dmg
path: |
build/velopack_release_*/*
build/mogan-release-*.zip
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
prerelease: true
files: build/*.dmg
files: build/mogan-release-*.zip
Loading
Loading