概览
dsh-workspace-default-path
DSH plugin: remember the last used workspace directory for the Add-workspace flow (prefill + auto-memory over the official browse dialog)
README / ZH
插件文档
dsh-workspace-default-path
English: README.md · DSH(DeepSeek Harness)插件
为 DSH 的添加工作区(侧边栏 / 对话空状态入口)提供记忆上次目录能力:在官方流程上挂两个轻量钩子,不替换任何官方交互,一切由一个开关控制(设置 → 通用设置)。
特性
- 自动记忆——无论从浏览对话框、系统对话框还是其他入口添加工作区,路径都会自动记录。
- 打开即定位——有记忆后,官方"添加工作区"浏览对话框直接打开在上次目录(含面包屑地址栏);浏览、编辑、新建文件夹、确认等交互 100% 官方。
- 关闭 = 原生——开关关闭时两个钩子完全惰性:不重定向、不记录,与未安装时行为一致。
- 热重载——开关持久化到
$DSH_HOME/settings.yaml(dsh-workspace-default-path.rememberLast/.lastPath),修改即时生效,无需重启。
安装
从 GitHub 安装(标准方式,与其他 dsh 插件依赖一致):
dsh plugin --profile web add github:masknull/dsh-workspace-default-path
包声明了 dsh.bundle,命令会自动激活(写入 profile 的 dsh.profile.bundles);若未自动加入,请在 $DSH_HOME/profiles/web/package.json 的该列表手动追加 "dsh-workspace-default-path"。
node half 的运行时依赖(@deepseek-ai/schemastery + cosmokit + @standard-schema/spec)已声明在 dependencies 中,pnpm 会在安装时自动解析进 profile 的 hoisted node_modules——无需手工复制。
验证:
dsh --profile web --dump-config | grep workspace-default-path
安装或代码更新后请重启服务(当前 web 组合的 client HMR 是关闭的)。本地开发同样:dsh plugin --profile web add '<本地路径>'。
使用
- 设置 → 通用设置 → "记住上次的工作区" → 开启。
- 照常添加一次工作区(任意方式),路径会被记住。
- 下次点击添加工作区,对话框直接打开在那个目录。
- 随时关闭开关,恢复默认行为。
工作原理
全部作用于官方接缝之上,不替换任何官方交互。
| 钩子 | 机制 |
|---|---|
| 记忆(写入) | 订阅 ctx.workspaces.list,新出现的工作区将其 path 写入 lastPath |
| 预填(读取) | 官方浏览对话框以 listDirectory(undefined)(主目录)打开;开启记忆且有 lastPath 时,该初始调用重定向为 listDirectory(lastPath),其余调用一律透传 |
版本兼容
- v0.2.0 起要求 DSH ≥
dsh-v0.1.2-alpha.1:该版本把快照 store 原语从@deepseek-ai/dsh-client-runtime/client迁移为冻结模块表词@deepseek-ai/dsh-client-store。在更老的宿主上本插件会拒绝加载并给出明确诊断;旧 DSH 请使用 v0.1.x(client-runtime 时代构建)。 - 需要
@deepseek-ai/dsh-client-ui-workspace提供workspaces/浏览对话框服务(新 DSH 内置)。
依赖
- Node 半边(
lib/index.js):@deepseek-ai/schemastery(+@deepseek-ai/cosmokit、@standard-schema/spec)——声明在dependencies中,add时由 pnpm 自动安装。 - 浏览器半边:仅使用 DSH 冻结模块表中的官方模块(
react、@deepseek-ai/dsh-client-store、@deepseek-ai/dsh-client-ui-primitives)。
许可证
MIT。
