deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
A minimal out-of-tree DeepSeek Harness Web Cordis plugin that permanently deletes the on-disk session directory of an archived session from the sidebar.
It does not modify the DSH core installation or any profile configuration.
The only durable effect on $DSH_HOME is the intended one: after the user
confirms, it deletes the selected session directory under
$DSH_HOME/sessions. No other DSH durable state (workspace registry,
projection cache, shared attachments) is written. The host half owns one HTTP
route; the client half adds a sidebar footer action that lists archived
sessions and deletes them after an explicit second confirmation.
index.js) registers POST /archive-manager/delete.client.js) registers a sidebar.footer.action list entry
(id: archive-manager, order: 80). Wide mode shows the label 已归档 N;
the narrow rail shows only the archive icon.archivedSessionIds
that also have a session summary in the client session baseline, displaying
displayTitle (or the id), cwd, and updatedAt.POST /archive-manager/delete and, on
success, refreshes both sessions and workspaces. A local deleted-id set
hides the row even though the archived marker is intentionally left intact.This is an out-of-tree plugin: place it on disk and install it into the
existing web profile.
dsh plugin --profile web add "github:zimixvx/dsh-archive-manager"
With the plugin directory at D:\Code\DeepseekHarness\plugins\dsh-archive-manager:
dsh plugin --profile web add "D:\Code\DeepseekHarness\plugins\dsh-archive-manager"
Then add the plugin to the web profile's bundle list in
$DSH_HOME/profiles/web/package.json:
{
"name": "dsh-profile-web",
"private": true,
"dependencies": {
"dsh-archive-manager": "file:D:/Code/DeepseekHarness/plugins/dsh-archive-manager"
},
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"dsh-archive-manager"
]
}
}
}
The exact dependencies entry is written by dsh plugin --profile web add;
only the bundles list needs the manual addition.
The plugin's cordis.patch.yml (declared via dsh.bundle.patch) inserts the
host row:
- insert:
- id: archive-manager
name: dsh-archive-manager
A running process does not pick up new bundle rows, so restart the web profile:
dsh web
After a page refresh, the sidebar footer shows the archive-management action.
workspaceRegistry.archivedSessionIds.rm, with HTTP 409.supportsRawArtifacts === true and a locate() returning
{ kind: 'jsonl', path }. Otherwise the route answers 501.rm(dirname(location.path), { recursive: true, force: false }) removes the directory that holds the
session's JSONL log (and any session-local files inside it). It does not
modify the workspace registry, the archived markers, the projection cache,
or content-addressed attachments (which live in a separate shared store and
are shared across sessions).archivedSessionIds remains by design (removing it would mutate the
registry). Because the panel only lists archived ids that still have a
session summary, and the physical deletion removes that summary, the leftover
marker does not reappear after a page reload. A local deleted-id set also
hides the row immediately even if the follow-up refresh fails.rm with force: false.
There is no trash or restore path.Remove dsh-archive-manager from the profile's dsh.profile.bundles (and from
dependencies), then restart. The plugin adds no durable state of its own, so
there is nothing else to clean up.
MIT — see LICENSE.
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。