# dsh-workspace-default-path > English: [README.md](README.md) · DSH(DeepSeek Harness)插件 为 DSH 的**添加工作区**(侧边栏 / 对话空状态入口)提供**记忆上次目录**能力:在官方流程上挂两个轻量钩子,**不替换任何官方交互**,一切由一个开关控制(**设置 → 通用设置**)。 ## 特性 - **自动记忆**——无论从浏览对话框、系统对话框还是其他入口添加工作区,路径都会自动记录。 - **打开即定位**——有记忆后,官方"添加工作区"浏览对话框直接打开在上次目录(含面包屑地址栏);浏览、编辑、新建文件夹、确认等交互 100% 官方。 - **关闭 = 原生**——开关关闭时两个钩子完全惰性:不重定向、不记录,与未安装时行为一致。 - **热重载**——开关持久化到 `$DSH_HOME/settings.yaml`(`dsh-workspace-default-path.rememberLast` / `.lastPath`),修改即时生效,无需重启。 ## 安装 从 GitHub 安装(标准方式,与其他 dsh 插件依赖一致): ```bash 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`——**无需手工复制**。 验证: ```bash dsh --profile web --dump-config | grep workspace-default-path ``` 安装或代码更新后请重启服务(当前 web 组合的 client HMR 是关闭的)。本地开发同样:`dsh plugin --profile web add '<本地路径>'`。 ## 使用 1. **设置 → 通用设置** → "记住上次的工作区" → **开启**。 2. 照常添加一次工作区(任意方式),路径会被记住。 3. 下次点击**添加工作区**,对话框直接打开在那个目录。 4. 随时关闭开关,恢复默认行为。 ## 工作原理 全部作用于官方接缝之上,不替换任何官方交互。 | 钩子 | 机制 | |---|---| | 记忆(写入) | 订阅 `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。