dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
Delete-session plugin for DeepSeek Harness (DSH): adds a one-click force-delete to the sidebar session menu; removes log/cache/registry with no ghost rows. DSH 会话删除插件,支持强制一步删除,不留幽灵行。
给 DeepSeek Harness 的会话"…"菜单补上真正的删除会话。
背景:DSH 官方(含桌面端)的会话存储层只有归档 / 置顶 / 重命名 / 分叉,从未提供删除;
本插件补齐这一缺失能力,交互对齐主流 agent(ChatGPT / Claude 等)的删除语义。
English | 中文(下文为主,文末有 English summary)
会永久消失(不可恢复)—— 会话的对话记录本身:
对模型、对搜索工具同时永久隐身——删了就是谁也想不起来了
.md 摘要文件(推荐,最省事)不会被动——工作区里的文件:
~/.dsh 之外的任何路径并原生触发 session/disposed —— 桌面与手机端的行此刻即消失),再停掉后台工作(子代理 / 后台任务 / 定时提醒,与官方"停止并归档"同一机制),最后彻底删除:磁盘日志 + 投影缓存 + 注册表记账全部清除,不留幽灵行
投影缓存文件被清除;工作区归属 / 置顶 / 归档记账一并清理
~/.dsh 内由会话 id 精确计算出的路径(与官方 JSONL 存储后端同一套编码),绝不触碰工作区设置 → 插件 → 市场(Discover)搜索 dsh-session-delete(收录合并后),或命令行:
dsh plugin add @funny_diodio/dsh-session-delete # npm 源
dsh plugin add github:FunnyDiodio/dsh-session-delete # GitHub 源(桌面端在对应 profile 上执行;安装后重启或按提示重载生效。npm 源为预构建产物,安装免 allowBuilds 授权。)
要求 DSH ≥ 0.2.1-rc.1(dsh.bundle 协议 + 会话菜单插槽均自该线可用)。 适用:DSH NEXT、官方桌面端及任何内置 dsh Web GUI 的第三方客户端;纯 CLI / headless 宿主没有侧栏 UI,装了不会显示。
设置 → 插件里直接卸载:菜单项与对话框随之消失;已执行过的删除是永久操作,不受卸载影响(这也是为什么弹窗标题写着"不可撤销")。
index.js):webServer 精确路由 POST /session-delete/api/delete { sessionId, force? },过 connection.requestRejection 信任栅栏;流程:live(force 时先经 Agent 公开 dispose() 释放内存态并等待其真正离场,释放不掉则 409 release-failed;非 force 一律 409)→ pending → (force 时 workspace/session-stop 停后台工作)→ activity → 磁盘删除(日志目录 + 投影缓存)→ 注册表内存索引逐出 → unarchive / unpin / detach → emit api-session/removed
client.js):window.__ModuleLoader__ 注册;菜单行 sidebar.workspaces.session.menu.itemorder 420(archive=400 与 session-id=450 之间);确认框走 shell.overlay;强制删除且该会话 正显示在本页主视图时,先静默释放主视图(与用户手动关标签页同一条 un-retain 路径)再删, 用户零感知;样式全部取自 --dsw-alias-* 主题令牌,明暗色自适应;文案 zh/en 自管 + 注册进 locale 服务
dsh-session-persistence-jsonl 保持一致(projectKey / encodeSegment),header 缺失时按 id 清扫全部项目目录兜底
v1.2.0 force 语义升级为「自动释放内存态会话后一步删净」;v1.2.1 发布定型(scoped npm 名); v1.2.2 修复"开着标签页强制删除被拒":客户端静默释放主视图 + 重试,宿主释放窗口加宽至 4s
MIT — 见 LICENSE。
dsh-session-delete adds the missing *Delete session* row to every session's "..." menu in DeepSeek Harness (official clients have archive/pin/rename/fork only — there is no durable delete).
errors. Force deletes in one click, no user-side ritual: it first releases the session through its Agent's public teardown (stops generation, frees the log handle, and the native disposal event drops the row on desktop and phone alike), stops background work (subagents / jobs / schedules — same mechanism as the shipped "stop and archive"), then removes everything. Only the rare case where a tab holds the session so tightly it cannot be released asks the user to close it.
model. Back up what matters *before* deleting: have the agent condense a summary into a workspace file, or export the session log.
(matching ChatGPT / Claude semantics). Deleting a session is not a file rollback.
~/.dsh computed exactly from the session id are removed; a failed diskdelete aborts before any bookkeeping changes; the route sits behind the host trust fence (loopback + same-origin), no network egress, no conversation content read or uploaded.
shipping the dsh Web GUI. Uninstall removes the menu row; executed deletions stay executed.