dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
在 DSH 侧边栏隐藏指定工作区,并把它的会话一并归档,避免这些会话溢出到「未分组」列表。纯本地、完全可逆;装了 dsh-archive-manager 时执行真归档且可撤销,未装时退化为纯显示层。随时可在设置页恢复。
English:
README.en.md
在 DSH 侧边栏隐藏指定工作区,连同它名下的会话一起收进「归档」,并在 「设置 → 工作区显示」里随时恢复。
纯本地、可逆、不删数据:工作区文件夹和会话记录始终留在磁盘上。
DSH 内置的「删除工作区」其实也不删数据,但它的心智负担是"移出列表",恢复要重新添加文件夹。
更麻烦的是:任何只把工作区从列表里摘掉的做法,都会让它的会话掉进侧边栏的「未分组」,
变成一堆无主的条目(根因见 DESIGN.md §1.1)。
本插件同时处理这两件事:
隐藏之前就已经归档的会话,永远不会被这次隐藏/恢复碰到。
被隐藏的工作区不会从设置页消失——设置页读的是未过滤列表,否则就没法撤销了。 隐藏行上会显示「已归档 N 个会话」,让你知道恢复时会回来多少。
开关的默认状态是「打开」:新装插件时什么都没被隐藏,因此每一行都是显示的。 这套语义下不存在「新工作区默认消失」的坑——所有工作区默认都在侧边栏,只有你手动关掉的行才会藏起来。
卸载或清空清单之前,请先点一次「全部显示」,否则被归档的会话会留在「归档」页里。
dsh plugin add dsh-workspace-hide@0.2.1
dsh plugin add https://codeload.github.com/SUZUNAMI/dsh-workspace-hide/tar.gz/refs/tags/v0.2.1
dsh plugin add 本质就是在 profile 目录(~/.dsh/profiles/web)里跑一次 pnpm add,
并同时把包名写进 dependencies 与 dsh.profile.bundles 两处;dsh plugin remove
会把两处一起清掉。
各种目标形式的实测结果:
| 形式 | 命令 | 说明 |
|---|---|---|
| npm(推荐) | dsh plugin add dsh-workspace-hide@0.2.1 | 最短;只依赖 registry.npmjs.org,不碰 github.com |
| tarball | dsh plugin add https://codeload.github.com/SUZUNAMI/dsh-workspace-hide/tar.gz/refs/tags/v0.2.1 | 不经过 git,不需要 SSH 密钥,走 codeload.github.com;实测 1.6s |
git+https | dsh plugin add git+https://github.com/SUZUNAMI/dsh-workspace-hide.git#v0.2.1 | 走 https git;需要能连上 github.com:443 |
github: | dsh plugin add github:SUZUNAMI/dsh-workspace-hide#v0.2.1 | ⚠️ pnpm 会把它解析成 git+ssh://(见下),需要本机已配好 GitHub SSH 密钥与 known_hosts |
跟随 main | dsh plugin add https://codeload.github.com/SUZUNAMI/dsh-workspace-hide/tar.gz/refs/heads/main | 上游随时会变,不建议 |
| 本地目录(改代码时) | dsh plugin add file:C:/path/to/dsh-workspace-hide | ⚠️ 只在安装那一刻物化一份,之后改源码不会同步(见下) |
关于
github:形式:pnpm 对它的解析目标是git+ssh://git@github.com/<owner>/<repo>.git,所以一台没配过 GitHub SSH 的机器 会直接Host key verification failed。tarball 形式没有这个问题。
关于
file:本地目录形式(改代码必读):pnpm 对file:目录依赖只在安装那一刻 把文件拷/硬链进node_modules,之后你改源码它一无所知——node_modules/dsh-workspace-hide里躺着的仍是安装时的旧快照。实测踩过一次:源码已经改到 43365 B,profile 里那份还是 42010 B 的旧文件,重启多少次界面都不变。想边改边用,就在装完之后把那份副本换成指向工作副本的目录联接(junction,不需要管理员权限):
$dst = "$env:USERPROFILE\.dsh\profiles\web\node_modules\dsh-workspace-hide" Move-Item $dst "$dst.bak" # 先备份旧副本 New-Item -ItemType Junction -Path $dst -Target "C:/path/to/dsh-workspace-hide"这样改源码后重启 DSH Desktop 即生效。注意以后跑
pnpm install或dsh plugin add/remove可能把它换回实体拷贝,那时重建一次即可。
装完重启 DSH Desktop,再打开「设置」,左侧应出现「工作区显示」。
第三方插件建议钉 tag 或 commit,不要跟随 main。
在 ~/.dsh/profiles/web/package.json 里加两处,然后在该目录执行 pnpm install:
{
"dependencies": {
"dsh-workspace-hide": "0.2.1"
},
"dsh": {
"profile": {
"bundles": ["...", "dsh-workspace-hide"]
}
}
}
没有 npm 依赖,也没有构建步骤。 lib/client.js 是手写的
window.__ModuleLoader__ 工厂,它 require 的 react 与
@deepseek-ai/dsh-client-ui-primitives 都由 DSH 运行时注入(后者还有 try/catch
兜底,取不到就退化成内置控件)。所以这两个包不是 dependencies,也不该被写进
dependencies —— 那反而可能装进第二份 react 实例。
插件行为无变化。这一版是纯文档:
README.en.md,并打进 npm 包 —— npm 官网与目录站点
因此都能提供双语阅读(此前只有中文,目录站点会标注一行
"This plugin publishes its README in Chinese only.")。description 改为「显示/隐藏」语义(此前仍是 0.2.0 之前的旧说法)。0.2.1。dsh-workspace-hide.hidden.v2(同一份 hidden
清单)、归档/撤销归档范围、canRestore 提示、失效项处理、跨版本迁移都不变。
反转只发生在 WorkspaceRow 一处(checked: hidden !== true,onChange 再取反)。插件行为无变化。这一版把发布方式换成 GitHub Actions 的 OIDC 可信发布
(.github/workflows/release.yml,仓库里不再需要任何长期 npm token),
并把 npm 安装提升为推荐方式 —— npm 只依赖 registry.npmjs.org,
不像 tarball / git 形式那样要求 github.com 可达。
archivedSessionIds,不再溢出到「未分组」。@michengai/dsh-archive-manager 时启用宿主层:真归档、可撤销;
未安装时退化为纯显示层,绝不真归档(内核没有反向操作,见 DESIGN.md)。canRestore 提示、失效项「移除记录」、
取消归档失败后的「重试恢复」、「全部恢复」。localStorage 的 dsh-workspace-hide.hidden.v2(含 v1 自动迁移)。github: 会被 pnpm 解析成 git+ssh://,改用 codeload tarball。原理、接缝、已知边界、离线验证方法与真机源码证据:DESIGN.md。
MIT