Skip to content

v0.4.6 — GUI 设置页收口(codex 二十四轮 GO)

Choose a tag to compare

@skymanbp skymanbp released this 25 Aug 02:26
· 133 commits to main since this release

GUI 设置页收口 —— 路径与并发可以在 GUI 里改了,配置文件本身补齐了 pm 其余写入口早就有的那套写纪律。

装哪个

资产 用途
pm-ui_0.4.6_x64-setup.exe 安装包(NSIS,装到当前用户,不需要管理员):GUI 与 CLI 装进同一目录 + 开始菜单项
pm-0.4.6-windows-x64.zip 免安装:解压即用,含 pm.exe(CLI)与 pm-ui.exe(GUI)

无代码签名(个人项目、无证书),首次运行 SmartScreen 会提示"未知发布者"。不放心就照 README 从源码构建——安装包内容 = zip 内容 = stack install + cargo tauri build 的产物。

SHA-256:

67bee461edfbb1b39d6b21922df2da26ec3bd90306db9956054071f76c808bb1  pm-ui_0.4.6_x64-setup.exe
58a64c61e55810a82ea491c0364022dc66499b5a711a5334451ad77be8b2eff9  pm-0.4.6-windows-x64.zip

这一版有什么

设置页(第五页,数字键 5) —— vault 目录、photos.json、扫描并发数可以在 GUI 里改,备份硬盘可以在 GUI 里登记,改完立刻生效不用重启。主库路径只读:它是 root-id、journal、catalog 全部挂靠的身份锚点,改它等于换一个库,一台机器设一次,留在终端 pm init。经编辑层动主库的请求会显式报错,不会被静默忽略。终端侧有对称命令 pm config / pm config set

配置文件补齐写纪律 —— 配置在 XDG 目录、不在任何库的 .pm 下,于是此前一条 .pm 写纪律都没继承(pm 里最后一个裸 writeFile 的状态写入口)。现在与 catalog 用同一组原语:独占建临时文件、flush 落盘、no-replace 改名,再加一把跨进程配置锁罩住"读→改→写→读回"全程——pm config set、改配置端点、登记备份盘三条路径共用,拿不到锁一律拒绝而不是各写各的把对方抹掉。写入崩在删旧与改名之间只会留下内容完整的 .tmp,pm 认得出来并告诉你怎么恢复,不再报"配置不存在,去 pm init"。

其它 —— {"main": null} 曾被当成"没提这个键"而静默放行(同一请求里的其它改动照做并回 200),现在出现即拒;GUI 写成功后若页面刷新失败会误报"没改成",现在提交结果与刷新状态分开报;并发数的说明改正——它只管扫描,备份盘默认单线程防 HDD 寻道抖动,要改用 pm backup --workers N

安全模型没变

没有删除原语,唯一的移出机制是带 manifest 的隔离区。GUI 只生成计划、记录决定与改配置,没有一个写端点碰照片字节,执行永远是终端里的 pm apply。serve 只绑 127.0.0.1、随机端口、Bearer token、Host/Origin 校验,缺省只读。

codex 对抗评审第 二十四 轮 GO,最小修复集空;六条 minor 已全部收口。219 例测试、GHC 警告 0,每道闸都配"删掉它就转红"的突变验证用例。

完整记录见 docs/REVIEW-LOG.md,设计见 docs/DESIGN.md