Skip to content

v1.2.0

Choose a tag to compare

@limbo947 limbo947 released this 15 Aug 07:37
· 6 commits to main since this release

本版本为架构与平台支持的大版本更新。

新增

  • 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(对齐 Windows Expand-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 兼容编写,尚未真机实测