dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
Session recycle bin & permanent delete for DeepSeek Harness.
Move the current session into a recycle bin from the conversation header, restore or permanently delete archived sessions (single or batch), with live-session protection.
The interface automatically follows the browser language: Chinese locales use Chinese and all other locales use English.
client.css; components follow the resolved DSH appearance (data-ds-dark-theme) with prefers-color-scheme as the OS-level fallback (no hardcoded palette). UI and code text follow the app font too (--dsw-font-family / --ds-font-family-code), so the Settings → 字体 choice applies here as well.DSH 0.2.0-rc.2 or newer (this release is tested on that version only; older hosts are untested).
The recycle-bin list no longer reads session logs: its titles and turn counts come from the Session projection cache (SessionProjectionCache.cachedSnapshot, plus cachedPredecessorTitle for checkpoints written by an older format generation) — the same zero-I/O face DSH's own session list uses. On a host without those two methods the plugin still mounts, archives and restores, but the list degrades to 「未命名会话」 with no turn counts.
The floor is declared as dsh.engines.dsh. Note that DSH 0.2.0-rc.2 does not read that field: it is documentation for users and marketplaces, not a runtime gate.
Once listed in the awesome-dsh-plugin registry: open Settings → Plugin Market → search dsh-session-manager → install.
dsh plugin --profile web add dsh-session-manager
Then restart the web app (stop the dsh web process and run dsh web again).
dsh plugin --profile web add link:/absolute/path/to/harness-session-delete
dsh plugin --profile web remove dsh-session-manager
pnpm test # run the test suite (host logic + HTTP routes)
Repo layout:
harness-session-delete/
├── package.json # single bundle manifest (dsh.bundle.patch + dsh.client)
├── cordis.patch.yml # bundle patch: one insert mounting the host row
├── index.js # node half: host entry (inject + apply)
├── client.js # browser half: conversation-header action + settings recycle bin
├── client.css # plugin stylesheet: design tokens + light/dark adaptive components
└── packages/
└── session-trash-host/ # host implementation (persistence/workspace/cache patches, HTTP routes)
CHANGELOG.md and CHANGELOG.zh.md mirror each other. Every entry follows:
## [version] - YYYY-MM-DD, with only the ### Added / ### Changed / ### Fixed / ### Performance / ### Removed headings it actually uses.cordis.patch.yml; the browser half joins automatically through dsh.client + exports["./client"]./api/session-trash/* HTTP routes (registered on the webserver; non-GET requests carry an x-dsh-plugin CSRF header).