v1.2.0
本版本为架构与平台支持的大版本更新。
新增
- Linux / macOS 支持(bash):脚本层按
ctx.shell平台执行器自动分叉(win32 → PowerShell,POSIX → bash)。bash 模板按 macOS bash 3.2 兼容编写(无 bash 4 特性,映射计算下沉 awk);diff 输出 TSV 由 Node 解析(零 jq 依赖);索引写入走 stdin 直写(绕开 argv 长度上限)。 - 快照自动维护(磁盘治理,全部无损或可预期):
- 定期
git gc:每 50 条快照或 24 小时触发,loose 对象压 pack;节流凭据gc.stamp跨重启续期;阈值可经DSH_RECALL_GC_SNAPS/DSH_RECALL_GC_HOURS覆盖。 - 会话删除联动清理:会话日志从磁盘消失后自动清其快照并释放空间;归档会话不受影响;无法核实日志状态时宁可不清。
- 用户自定义排除:home 下
dsh-recall-snapshots/exclude.txt(gitignore 风格),全项目生效、下次快照即时应用。
- 定期
- Host 半模块化拆分:750 行单文件 → index(接线) / scripts.pwsh + scripts.posix(脚本模板) / store(执行存储) / snapshots(快照域) / maintenance(维护域)。
修复
- tar mtime 与 git stat 缓存脱钩(间歇性数据错误):tar 解包默认恢复归档 mtime,快照→篡改→回滚几秒内完成时与 index 旧条目 stat 碰撞,
add -A误判跳过 re-hash,后续快照可能存入篡改后内容。修复:tar -x -m不恢复 mtime(对齐 WindowsExpand-Archive语义)。 - POSIX diff/回退漏
add -A前置链:导致「当前清单」恒等于目标 tag、diff 恒空。 - POSIX DSH_HOME 解析:DSH bash 执行器洗刷子进程
DSH_*变量,bash 内提前回退$HOME会让用户设置的DSH_HOME失效。优先级链修正为:bash env 显式值 > Node 主进程 DSH_HOME > $HOME。
验证
- Windows:PS 5.1 / pwsh 7 双跑全绿(中文路径、exclude、会话清理、gc)
- Linux:WSL2 真机(Ubuntu 26.04,bash 5.3 + git 2.53)全流程 8/8 稳定,含 home 只读降级场景
- macOS:脚本按 bash 3.2 兼容编写,尚未真机实测