Releases: limbo947/dsh-recall-plugin
Releases · limbo947/dsh-recall-plugin
Release list
v1.2.2
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 兼容编写,尚未真机实测
v1.0.4
修复跨环境通用性问题:
- 中文路径乱码修复(关键):非 UTF-8 代码页机器上,含中文用户名的快照存储路径会被错误解码导致目录乱码。现在所有 shell 调用统一强制 UTF-8 输出。
- UNC 路径支持:
DSH_HOME指向网络盘(\\server\share)时不再被反斜杠折叠破坏,存储不再静默降级。 - 非 Windows 平台干净降级:Linux/macOS 下页面弹一次性「仅支持 Windows」提示,不再产生垃圾目录等文件副作用。
- 前端硬化:init 请求失败后自动重试(撤回按钮不再永久消失);无效时间戳不再渲染为 NaN。
v1.0.3
v1.0.2
v1.0.1
新增
- 受限会话完全可用:workspace-write / read-only 会话下,快照直接存入 ``,不再降级到项目内
.dsh-recall-snapshots(项目目录保持干净) - read-only 会话的回退恢复首次可用(此前连项目都写不了,恢复会失败)
- shell 以宿主身份执行:插件命令均为宿主侧固定模板,无模型可控内容,不扩大模型能力
- 旧版降级产生的项目内存储会在下一条消息前自动迁回 home
Full Changelog: v1.0.0...v1.0.1