DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

SUZUNAMI /

SUZUNAMI/dsh-workspace-hide

Verified

Hide selected workspaces from the DSH sidebar without deleting anything: local-only, reversible, with a Settings management page.

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@55f3cd30

dsh-workspace-hide

在 DSH 侧边栏隐藏指定工作区,连同它名下的会话一起收进「归档」,并在 「设置 → 工作区显示」里随时恢复。

纯本地、可逆、不删数据:工作区文件夹和会话记录始终留在磁盘上。


介绍

它解决什么

DSH 内置的「删除工作区」其实也不删数据,但它的心智负担是"移出列表",恢复要重新添加文件夹。 更麻烦的是:任何只把工作区从列表里摘掉的做法,都会让它的会话掉进侧边栏的「未分组」, 变成一堆无主的条目(根因见 DESIGN.md §1.1)。

本插件同时处理这两件事:

  • 侧边栏不再出现该工作区;
  • 它名下的会话不会变成一堆无主的「未分组」条目,而是被归档收起来;
  • 撤销隐藏时,只有"因为这次隐藏才被归档"的会话会回来。

隐藏之前就已经归档的会话,永远不会被这次隐藏/恢复碰到。

使用

  1. 安装后重启 DSH Desktop;
  2. 打开 设置,左侧栏出现「工作区显示」(排在「归档会话」之后); 导航栏容不下长标签,所以那里的名字是短的,面板内标题仍写全:「侧边栏显示的工作区」;
  3. 每行右侧一个开关,打开 = 在侧边栏显示,关掉 = 隐藏并归档其会话; 关掉后该行自动沉到列表底部,并显示「已归档 N 个会话」;
  4. 顶部显示「共 N 个 · 显示 N 个 · 隐藏 N 个」,点「全部显示」一键清空清单并批量恢复。

被隐藏的工作区不会从设置页消失——设置页读的是未过滤列表,否则就没法撤销了。 隐藏行上会显示「已归档 N 个会话」,让你知道恢复时会回来多少。

开关的默认状态是「打开」:新装插件时什么都没被隐藏,因此每一行都是显示的。 这套语义下不存在「新工作区默认消失」的坑——所有工作区默认都在侧边栏,只有你手动关掉的行才会藏起来。

卸载或清空清单之前,请先点一次「全部显示」,否则被归档的会话会留在「归档」页里。


安装

从 npm 安装(推荐)

dsh plugin add dsh-workspace-hide@0.2.0

从 GitHub 安装

dsh plugin add https://codeload.github.com/SUZUNAMI/dsh-workspace-hide/tar.gz/refs/tags/v0.2.0

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.0 最短;只依赖 registry.npmjs.org,不碰 github.com
tarball dsh plugin add https://codeload.github.com/SUZUNAMI/dsh-workspace-hide/tar.gz/refs/tags/v0.2.0 不经过 git,不需要 SSH 密钥,走 codeload.github.com;实测 1.6s
git+https dsh plugin add git+https://github.com/SUZUNAMI/dsh-workspace-hide.git#v0.2.0 走 https git;需要能连上 github.com:443
github: dsh plugin add github:SUZUNAMI/dsh-workspace-hide#v0.2.0 ⚠️ 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.0"
  },
  "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 实例。


版本更新

0.2.0 — 设置页开关反转为「显示」语义

  • 设置项改名:「隐藏的工作区」→ 面板标题「侧边栏显示的工作区」,导航栏短标签 「工作区显示」(导航栏放不下全称,会被截成「侧边栏显示的工…」);并加了一行说明。
  • 开关方向反转:打开 = 显示,关掉 = 隐藏。此前是「选上 = 隐藏」,与直觉相反。
  • 隐藏中的行自动沉到列表底部(稳定排序,显示中的行保持原来的相对顺序)。
  • 计数下沉到计数文案里:「共 N 个 · 显示 N 个 · 隐藏 N 个」,全显示时显示 「共 N 个工作区,全部在显示中」。
  • 按钮改名:「全部恢复」→「全部显示」(只在有行被隐藏时才可用)。
  • 底层完全没动:存储格式仍是 dsh-workspace-hide.hidden.v2(同一份 hidden 清单)、归档/撤销归档范围、canRestore 提示、失效项处理、跨版本迁移都不变。 反转只发生在 WorkspaceRow 一处(checked: hidden !== true,onChange 再取反)。

0.1.3 — 发布流程与文档

插件行为无变化。这一版把发布方式换成 GitHub Actions 的 OIDC 可信发布 (.github/workflows/release.yml,仓库里不再需要任何长期 npm token), 并把 npm 安装提升为推荐方式 —— npm 只依赖 registry.npmjs.org, 不像 tarball / git 形式那样要求 github.com 可达。

0.1.2 — 首个公开发布版本

  • 侧边栏隐藏工作区,其会话并入 archivedSessionIds,不再溢出到「未分组」。
  • 检测到 @michengai/dsh-archive-manager 时启用宿主层:真归档、可撤销; 未安装时退化为纯显示层,绝不真归档(内核没有反向操作,见 DESIGN.md)。
  • 设置页「隐藏的工作区」:逐项开关、canRestore 提示、失效项「移除记录」、 取消归档失败后的「重试恢复」、「全部恢复」。
  • 清单持久化到 localStorage 的 dsh-workspace-hide.hidden.v2(含 v1 自动迁移)。
  • 安装说明修正:github: 会被 pnpm 解析成 git+ssh://,改用 codeload tarball。

更多文档

原理、接缝、已知边界、离线验证方法与真机源码证据:DESIGN.md。

许可

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 55f3cd30773b

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout