dsh-workspace-vault:侧栏工作区置顶、隐藏空间与访问锁

前言

在 DeepSeek Harness(DSH)桌面端里,侧栏「工作区」通常按默认顺序展示,云同步会把本地工作区与会话日志一并上传。若你希望在界面上固定常用工作区、把当前任务顶到所属工作区顶部,又需要一块不设云同步的「隐藏」工作区,或给个别工作区加一道主密码访问锁,原生侧栏并不直接提供这些组合能力。dsh-workspace-vault 是社区插件,由 ColdRainLab 维护,分类为 admin-security,在不大改原生工作区组件的前提下,通过宿主路由与浏览器侧装饰实现上述行为。

下面介绍插件定位、四项核心能力、安装刷新方式、典型操作路径,以及安全边界与适用注意。

这是什么

dsh-workspace-vault(npm 包名同名,当前版本 0.1.0,MIT 许可证)面向 DSH ≥ 0.2.1-rc.2 的桌面 profile。插件在侧栏「工作区」区增加:任意工作区置顶、当前任务置顶到其工作区、密码保护的隐藏空间(独立盾牌入口)、以及与隐藏空间共用主密码的工作区加密(访问锁)。隐藏空间内的工作区与被打上加密标记的工作区,会由配套逻辑排除在云同步之外(资料中说明与 dsh-workspace-sync 配合,自动跳过相关条目与会话日志)。

核心功能

资料中的功能表可归纳为五点(含一项云同步配套)。

1、工作区置顶

工作区行悬停打开原生位置的 「…」菜单,选择「置顶工作区」或「取消置顶」。置顶后该工作区移到「工作区」列表最前,整行高亮(Endfield 主题下为 3px 黄左条、淡黄渐变与标题提亮;普通主题使用 dsw token),并显示推钉徽标。顺序由宿主 workspaceRegistry 持久化,重启或刷新后仍生效;若客户端发现列表顺序与 pinned 前缀不一致,会调用宿主 pin-workspace {reapply:true} 自愈。

2、任务置顶

会话页头标题右侧增加「置顶此任务」按钮,将当前任务置顶到其所属工作区顶部。实现上复用 DSH 原生 pinSession / unpinSession,原生侧栏仍显示「已置顶」指示,原生「…」菜单里的置顶/取消置顶依旧可用。

3、隐藏空间

「工作区」区头在 label 与搜索图标之间 增加独立盾牌图标(不占原生 headerActions 的 60px,原生「+」保持可见)。首次使用需设置主密码,可选绑定手机号用于本地找回。解锁后侧栏只显示隐藏空间里的工作区,行为与普通工作区一致;此时区头「+」用于「新建隐藏工作区」。隐藏空间的工作区不参与云同步,数据只保留本机,目录为 <DSH_HOME>/hidden-space/<工作区名>(默认 ~/.dsh/hidden-space/)。

4、工作区加密(访问锁)

在工作区行「…」菜单中选择「加密工作区」,用主密码确认后标记为加密。加密工作区在本次页面打开期间保持锁定:会话行不显示,点击工作区行会要求解锁;若主内容区正打开该工作区的会话,会被锁定遮罩覆盖,解锁后才显示。刷新或重启后自动重新上锁。

5、云同步排除(配套)

隐藏空间与加密工作区的工作区条目、会话日志不会上传云端,也不会从云端拉回(资料明确为 dsh-workspace-sync 侧配合行为)。

安装与启用

本插件为本地 bundle(宿主 + 浏览器两半),通过 DSH 插件管理器安装。README 给出的示例为 Windows 路径;安装后须刷新页面一次,宿主侧路由与新 bundle 仅在启动或 HMR 激活时加载。

# 在 DSH 里让 Agent 执行(安装到当前 desktop profile),或使用 CLI:
& "D:\Program Files\Deepseek Harness\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add "C:\Users\ROG-STRIX\Documents\deepseek-harness\DSH新增功能\dsh-workspace-vault"

刷新方式(资料中的生产版做法):标题栏「重新启动」,或 F12 打开独立 Developer Tools 窗口,在该窗口按 Ctrl+R 重载页面(不丢会话、不影响宿主)。

  • 只改浏览器半边(lib/client.js):刷新页面即可。
  • 改了宿主半边(lib/index.js 等):页面刷新不会重载宿主;可用 plugin_manager set_bundle 先禁用再启用 dsh-workspace-vault,或在合适时机整体「重新启动」DSH。

卸载示例:

& "D:\Program Files\Deepseek Harness\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop remove dsh-workspace-vault

卸载不会删除 state.json 与隐藏空间目录;若要彻底恢复,可手动删除 <DSH_HOME>/workspace-vault/(隐藏空间里的工作区会回到普通列表;工作区本身需在 DSH 内逐个删除)。

典型用法

经过上面的安装与刷新,可按以下路径操作(均来自 README 行为描述)。

置顶工作区:侧栏工作区行 →「…」→「置顶工作区」/「取消置顶」。

置顶当前任务:打开某会话 → 页头「置顶此任务」→ 侧栏出现原生已置顶指示;再次点击可取消。

进入隐藏空间:区头盾牌图标 → 首次设置主密码(可选手机号)→ 解锁后仅见隐藏工作区;「+」新建隐藏工作区。

加密工作区:工作区行「…」→「加密工作区」→ 主密码确认 → 锁定期间会话行隐藏,主内容区可能显示遮罩,需解锁后查看。

整合菜单:资料说明「…」菜单整合为:置顶/取消置顶、加密/取消加密、移入/移出隐藏空间、重命名、删除工作区;重命名与删除行为与原生一致(删除保留文件夹与会话记录,会话归「未分组」)。

数据、找回密码与安全边界

本地文件

项 位置
插件状态(密码哈希、手机号哈希、id 集合) <DSH_HOME>/workspace-vault/state.json
隐藏空间工作区根目录 <DSH_HOME>/hidden-space/<工作区名>
隐藏模式/解锁状态 仅当前页面内存;刷新即上锁

密码以 scrypt(随机盐)哈希存储,不保存明文;手机号仅存 sha256(数字) 与掩码。解锁令牌在宿主内存(30 分钟)与页面内存,不写 localStorage。删除 state.json 会清空密码与标记(隐藏工作区重新出现在普通列表,数据目录本身不删)。

忘记密码

解锁框点「忘记密码」→ 输入绑定手机号 → 本地校验通过后设置新密码。不会发送短信;未绑定手机号时,只能删除 state.json(会丢失隐藏/加密标记,但不删工作区与会话文件)。

安全边界(必读)

资料强调:「加密」是访问锁,不是磁盘静态加密;会话日志仍为 DSH 原生明文,能读用户目录的进程仍可读到文件。它主要缓解「界面上被看到」与「被同步到云端」。隐藏空间隐藏侧栏入口与会话行,不等于把数据从磁盘隔绝。插件不管理工作区目录里你若放在网盘同步路径下的普通文件。

兼容与验证

  • 不改写原生工作区单槽;与 dsh-workspace-plus、dsh-session-delete、dsh-endfield-theme 等同时安装无冲突(README 说明)。
  • 侧栏选择器依赖 DSH 0.2.1-rc.5 的 data-row-key 等;升级 DSH 后建议重跑 check-dsh-features.ps1。
  • 维护者在 2026-10-30 于 DSH 0.2.1-rc.5 桌面端完成 E2E 验证记录(置顶高亮、盾牌图标、整合菜单、加密与云同步排除等),client/host 单测通过情况见 README「验证记录」表。

本地跑测试(README 示例路径):

$node = "C:\Users\ROG-STRIX\.dsh\dsh-runtimes\dsh-primary-runtime\dependencies\node\bin\node.exe"
& $node dsh-workspace-vault\tests\host.test.mjs
& $node dsh-workspace-vault\tests\client.test.mjs

适用场景与注意

适合谁:长期在 DSH 桌面端管理多个工作区、需要侧栏固定顺序与任务置顶,又希望部分工作区仅本机存在且不进云同步,或在共享屏幕场景下用访问锁减少侧栏与会话内容的即时暴露。

安装前注意:插件以当前 DSH 进程权限运行,会读写 ~/.dsh/workspace-vault/ 与 ~/.dsh/hidden-space/。安装前应自行查看源码与 MIT 许可证,勿把访问锁等同于全盘加密或合规级保密。社区目录 SkillHub 为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-workspace-vault 把置顶、任务置顶、密码隐藏空间与工作区访问锁收进侧栏工作区一条线,并与云同步排除配合,适合在 DSH「一切皆插件」的生态里按需叠加 admin-security 类能力。进一步细节以仓库 README 为准。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye