Repository navigation
Releases
Releases · WindFromKadath/dsh-plugin-workspace-archive
0.2.0
0.2.0 — 2026-10-13
新增
- 手动归档 / 恢复一个工作区(模型可见工具
workspace_archive):把一个工作区的会话一次收进归档,或恢复此前由它归档的那些。台账为此新增独立的manualArchivedSessionIds,与"目录消失自动归档"那份完全分开 —— 手动归档是用户的明确意图,不能被"目录消失又回来"的自动恢复顺手放出来;反之亦然。 - 斜杠命令入口:
/archive-workspace <路径或标题>与/restore-workspace <路径或标题>。纯宿主侧、零依赖,不需要客户端半边。 - 删除工作区登记时立即归档:官方注册表说登记没了是权威事件,不再等确认窗口(实测 3125 ms → 33 ms)。而"目录缺失"是一次
stat的观测、会抖(网络盘、改名中途),仍然走窗口(3120 ms → 3128 ms,不变 —— 符合设计)。 - 改文件夹名时不再漏唤醒:
fs.watch在改名事件里给的 filename 是新名字,而旧实现按被跟踪的旧名字集合过滤,把事件丢掉了 ⇒ 改名后要等 5 分钟兜底轮询才归档,与"删目录"的行为不一致。现在收到未知 filename 会做一次合并存活探测,确有缺失才唤醒插件;同时修掉了"watcher 闭包捕获建立时名字快照"这个隐患。
仓库内的探索分支(不随本包发布)
本版仓库里另有一条探索分支:一个离线迁移 CLI(只改会话日志第 0 帧的 cwd、把日志搬到新 projectKey 目录,再让插件用官方 attachSession 收尾),用来探索「跨工作区迁移会话 / 工作区改名重绑定」这两类官方没有通道的需求。
它不作为功能交付:要求「完全退出 DSH → 在外部终端跑命令 → 重启 DSH」,而根因在上游(官方把会话 header 缓存在内存里,且没有任何公开入口能重建它)。⇒ 它的代码不在 npm 包里,完整记录(机制、实测证据、为什么做不到)见 docs/plan-session-migration.md。
验证
npm test—— 157 项离线断言。npm run rm-test—— 69 项针对真 DSH 运行时的断言(一次性DSH_HOME,不碰真实 profile、不碰真实工作区目录)。