-
ScienceMate 0.4.6 Stable
released this
2026-09-12 16:44:15 +08:00 | 2 commits to main since this release这一版做的只有一件事:让自更新从此换得了应用本体(外壳、后端服务代码),并顺手修掉一个「更新 → 重启」实际上是退出的 bug。
先说最要紧的:这一版怎么装、以后怎么更新
0.4.5 → 0.4.6 0.4.6 → 之后的版本 研究流程代码、界面 点「现在更新」拿得到 点「现在更新」拿得到 外壳(窗口程序)、后端服务代码 ❌ 要重装一次 ✅ 点「现在更新」→ 重启,自动换 随包运行时(Python / git / tectonic) 要重装 要重装(横幅会明说「需要重新安装」并给发布页地址) 引入这套机制的这一版本身仍要重装一次 —— 0.4.5 的外壳不会换自己、0.4.5 的启动器不会接管新的后端。
Windows:先关掉 ScienceMate,再双击新的ScienceMate-Setup.exe。
macOS:curl -fsSL https://desktop-9el2944.taile9f15e.ts.net/wangd/sciencemate/raw/branch/main/install.sh | sh。装上 0.4.6 之后,「有新版本 · 现在更新」→「重启」就是整个流程:窗口会自动回来,回来的就是新的外壳和新的后端。
这一版怎么做到的(#953,五步)
- 外壳启动时把自己的哈希写进数据根(
shell.json),后端据此回答「这次更新含不含外壳的改动」。 - 更新载荷多了第二个归档(
extras-<版本>.tar.gz:两个平台的外壳 + 后端app/),manifest 整体签名;
旧客户端不认识这个键会忽略、照旧只拿第一个归档 —— 老用户的更新提示不会因此消失。 - 横幅分两种话:「重启后生效」和「需要重新安装才能拿到」(后者给发布页地址,不让人点完发现没变)。
- 外壳启动时发现数据根里有比自己新的外壳,就把自己改名为
.old、拷新的上来、拉起新的自己(Windows 上运行中的
exe 不能覆盖但能改名);两道闸:载荷版本要比「我随哪一版装的」新(重装了新包、数据根里留着旧载荷时不倒退),
载荷里的外壳和自己不是同一份字节才换(循环终止)。任何一步失败回滚。 - 随包的启动器发现载荷里带了后端
app/,就在同一个进程里把这次启动交给它 —— 壳追踪的进程没变。
顺手抓到并修掉:有窗口的 Windows 版里,点「重启」后应用直接消失(后端为装更新退出被当成「人关了窗」),
更新要等下次手动启动才生效。0.4.4 / 0.4.5 都有这个问题。真机验过什么
同一台 Windows 11(非管理员)。装 0.4.5 版机制的包 → 本地提供一份 0.4.6 测试载荷(外壳与后端都是另一份字节)→
点「现在更新」→「重启」:外壳日志RESTARTING→SHELL-SWAP done: 0.4.5 → 0.4.6→ 新外壳起来说「载荷里的壳就是我」
→ 装着的 exe 哈希 = 载荷里那份,.old下次启动被收;后端日志APP-SWAP: 用载荷 0.4.6 里的后端 app/→ 跑起来的确是
载荷里那份(带标记)→ 同一个外壳进程 → 发一条消息拿到回复(首字 15 s,82 字)。
发布件:从发布页下回来的Setup.exe与打包产物字节相同 → 全新装 → 双击 → 窗口 +/update= installed 0.4.6 → 发一条消息拿到回复。已知问题(没修完就写在这里)
submit_job起的作业退出码 64 —— 长跑作业这条路还没通(节点侧,等 owner)。- 无人值守跑不了:Windows 上守不住
net_deny/disk_cap。有人看着的交互式研究不受影响。 - 每轮首字 1~3.5 分钟不等,时间几乎全在模型端。
- 随包运行时(Python / git / tectonic)的改动仍要重装;横幅会明说。
校验
da254940d6e1c85753da05040261fd9e29d5a3a14bb631b4e553950f57b920c9 ScienceMate-0.4.6-arm64.dmg dfcccf3db8cb7cb2fb535fa11ecbf16f70455bb9ebcbe0ed2316567ad7863f97 ScienceMate-Setup.exe 371d4253ff2008d626468ce4fe3b2db6a43c349433cbfce87f0e70106aa92082 extras-0.4.6.tar.gz d8a5103a8386b616853ebb06e8e14a31660f3a3641c0e3516049b407296a87e9 manifest.json d75d9a2e471fa5aafcec97d69fd7fc8a81143f33a149ec1c2142c927631b5a48 manifest.json.sig f7ad1eab4a8a6247c8b3db8261f71504babc2bcf32a741c7e6715bb10269d93f payload-0.4.6.tar.gzSHA256SUMS覆盖发布页上每一个会被下载的文件,shasum -c SHA256SUMS可自核。Downloads
- Source code (ZIP)
- Source code (TAR.GZ)
-
SHA256SUMS
5 downloads · 519 B
-
ScienceMate-0.4.6-arm64.dmg
0 downloads · 240 MiB
-
ScienceMate-Setup.exe
2 downloads · 358 MiB
-
extras-0.4.6.tar.gz
0 downloads · 809 KiB
-
install.sh
0 downloads · 4 KiB
-
manifest.json
3 downloads · 886 B
-
manifest.json.sig
3 downloads · 88 B
-
payload-0.4.6.tar.gz
0 downloads · 9.3 MiB
- 外壳启动时把自己的哈希写进数据根(