dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
在 DSH 侧边栏隐藏指定工作区,并把它的会话一并归档,避免这些会话溢出到「未分组」列表。纯本地、完全可逆;装了 dsh-archive-manager 时执行真归档且可撤销,未装时退化为纯显示层。随时可在设置页恢复。
Show or hide workspaces in the DSH sidebar. Hidden workspaces are removed from the sidebar and their sessions are collected into the archive, and you can bring any of them back from Settings → Workspace visibility at any time.
Everything is local, reversible, and nothing is deleted: the workspace folder and its session records always stay on disk.
中文文档:
README.md
DSH's built-in "remove workspace" does not delete data either, but its mental model is
"take it out of the list", and restoring one means adding the folder again.
Worse: any approach that merely drops a workspace from the list makes its sessions fall
into the sidebar's "Ungrouped" section, turning them into a pile of ownerless entries
(root cause: DESIGN.md §1.1, in Chinese).
This plugin handles both halves at once:
Sessions that were already archived before the hide are never touched by the hide/restore cycle.
A hidden workspace does not disappear from the settings page — that page reads the unfiltered list, otherwise there would be no way to undo the hide. Hidden rows show "N sessions archived" so you can tell how many will come back.
The switch defaults to on: a freshly installed plugin has nothing hidden, so every row is shown. Under this model there is no "newly created workspaces vanish by default" trap — every workspace is in the sidebar unless you switch its row off yourself.
Before uninstalling or clearing the list, click "Show all" once; otherwise the archived sessions stay on the "Archived" page.
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 is essentially pnpm add run inside the profile directory
(~/.dsh/profiles/web), and it writes the package name into both dependencies and
dsh.profile.bundles; dsh plugin remove clears both.
Measured behaviour of each target form:
| Form | Command | Notes |
|---|---|---|
| npm (recommended) | dsh plugin add dsh-workspace-hide@0.2.1 | Shortest; only needs registry.npmjs.org, never touches github.com |
| tarball | dsh plugin add https://codeload.github.com/SUZUNAMI/dsh-workspace-hide/tar.gz/refs/tags/v0.2.1 | No git, no SSH key, goes through codeload.github.com; measured 1.6s |
git+https | dsh plugin add git+https://github.com/SUZUNAMI/dsh-workspace-hide.git#v0.2.1 | Uses https git; needs github.com:443 reachable |
github: | dsh plugin add github:SUZUNAMI/dsh-workspace-hide#v0.2.1 | ⚠️ pnpm resolves this to git+ssh:// (see below); needs a working GitHub SSH key and known_hosts |
Track main | dsh plugin add https://codeload.github.com/SUZUNAMI/dsh-workspace-hide/tar.gz/refs/heads/main | Upstream moves; not recommended |
| Local directory (when editing code) | dsh plugin add file:C:/path/to/dsh-workspace-hide | ⚠️ materialised once at install time; later source edits do not sync (see below) |
About the
github:form: pnpm resolves it togit+ssh://git@github.com/<owner>/<repo>.git, so a machine with no GitHub SSH set up fails withHost key verification failed. The tarball form has no such problem.
About the
file:local-directory form (must-read if you edit the code): for afile:directory dependency, pnpm copies/hardlinks the files intonode_modulesonly at install time and then never looks at the source again —node_modules/dsh-workspace-hidekeeps the stale snapshot from that moment. This bit us once for real: the source had grown to 43365 B while the copy in the profile was still the 42010 B file, and no number of restarts changed the UI.To edit and use the plugin at the same time, replace that copy with a directory junction pointing at your working copy (a junction needs no administrator rights):
$dst = "$env:USERPROFILE\.dsh\profiles\web\node_modules\dsh-workspace-hide" Move-Item $dst "$dst.bak" # back up the old copy first New-Item -ItemType Junction -Path $dst -Target "C:/path/to/dsh-workspace-hide"After that, editing the source takes effect on the next restart of DSH Desktop. Note that a later
pnpm installordsh plugin add/removemay turn it back into a real copy; just recreate the junction when that happens.
After installing, restart DSH Desktop, then open Settings — the left rail should show "Workspace visibility".
Third-party plugins should be pinned to a tag or commit rather than tracking main.
Add two entries to ~/.dsh/profiles/web/package.json, then run pnpm install in that
directory:
{
"dependencies": {
"dsh-workspace-hide": "0.2.1"
},
"dsh": {
"profile": {
"bundles": ["...", "dsh-workspace-hide"]
}
}
}
No npm dependencies and no build step. lib/client.js is a hand-written
window.__ModuleLoader__ factory, and the react and
@deepseek-ai/dsh-client-ui-primitives it requires are injected by the DSH runtime
(the latter also has a try/catch fallback that degrades to built-in controls). So those
two packages are not dependencies and should not be listed as dependencies — that
could even pull in a second copy of react.
Plugin behaviour is unchanged. This release is documentation:
README.en.md, shipped inside the package so the npm page and the
catalogue page can offer both languages.description are updated to the "show/hide" wording (they still
carried the pre-0.2.0 phrasing).0.2.1.dsh-workspace-hide.hidden.v2 (the same hidden list), as are the
archive/unarchive scope, the canRestore hints, stale-entry handling, and
cross-version migration. The inversion lives in exactly one place
(checked: hidden !== true in WorkspaceRow, with onChange negating again).Plugin behaviour is unchanged. This release switched publishing to GitHub Actions
OIDC trusted publishing (.github/workflows/release.yml, no long-lived npm token in the
repository any more) and promoted the npm install path to the recommended one — npm only
needs registry.npmjs.org, unlike the tarball/git forms which require github.com to be
reachable.
archivedSessionIds
and no longer spill into "Ungrouped".@michengai/dsh-archive-manager is present, the host layer turns on: real,
undoable archiving. Without it the plugin degrades to a display-only layer and never
archives for real (the core has no reverse operation — see DESIGN.md).canRestore hints, "remove record"
for stale entries, "retry restore" after a failed unarchive, "Restore all".localStorage under dsh-workspace-hide.hidden.v2 (with
automatic migration from v1).github: gets resolved by pnpm to git+ssh://, so the docs now use
the codeload tarball instead.How it works, its seams, known limits, the offline verification method, and the
source-level evidence from a real machine: DESIGN.md — Chinese only.
MIT