DeepSeek Harness Hub
← 返回列表

会话取消归档simbamo/dsh-session-unarchive

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

找回已归档会话,随时查看或恢复回原位

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/17 · 已提供中文文档

DeepSeek Harness 插件:查看并恢复已归档的会话(侧边栏「归档会话」入口 + session_archive 工具 + /unarchive 命令)

综合分
27.7
GitHub 分
27.7
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add simbamo/dsh-session-unarchive
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-session-unarchive

DeepSeek Harness 插件:查看并恢复已归档的会话。

原生 DSH 侧边栏只有「归档会话」、没有「取消归档」——会话一旦归档就从所有分组界面消失,且没有任何查看或恢复入口(这是 dsh-client-ui-workspace README 明确记录的已知限制)。本插件补齐这个能力:把归档的会话单独展示在一个「归档会话」入口里,可随时打开查看或恢复回原位。

⚠️ 核心行为:点「打开」会自动取消归档并打开会话(显示完整历史对话);打开后会话不再处于归档状态,如需再次归档需手动右键「归档会话」。

功能

1. 侧边栏「归档 (N)」入口(客户端 UI):列在侧边栏底部(设置按钮旁),点开弹出面板,列出全部已归档会话,每个可「打开」或「恢复」。
2. session_archive 工具:list / unarchive / unarchive-all(供 agent 调用)。
3. /unarchive 命令:list / restore  / restore-all。
4. HTTP API:GET /session-unarchive/api/archived、POST /session-unarchive/api/unarchive(供客户端 UI 调用)。

安装

本插件是 host + client 双半插件,零运行时依赖。

1. 克隆到插件目录:
git clone https://github.com/simbamo/dsh-session-unarchive.git ~/.dsh/plugins/dsh-session-unarchive
2. 建符号链接到 profile node_modules:
ln -sfn ../../../plugins/dsh-session-unarchive ~/.dsh/profiles/web/node_modules/dsh-session-unarchive
3. 在 ~/.dsh/profiles/web/package.json 的 dependencies 里加:
"dsh-session-unarchive": "link:/Users//....../dsh-session-unarchive"
4. 在 ~/.dsh/profiles/web/cordis.patch.yml 里插入 loader 条目:
- insert:
- id: dsh-session-unarchive
name: dsh-session-unarchive

5. 重启 DSH web + 浏览器硬刷新。

装完必须重启 DSH web 才生效(agent 无法从会话内自重启 DSH web,需手动 kill $(lsof -nP -t -iTCP:3080 -sTCP:LISTEN) 后重跑 dsh web)。

使用

侧边栏 UI

重启后,侧边栏底部(设置按钮旁)会出现「归档 (N)」入口:

- 点开 → 列出全部已归档会话(标题 + 工作目录)
- 「打开」→ 自动取消归档并打开该会话:会话会移回它原来的工作区分组,并显示完整的历史对话记录
- 「恢复」→ 只取消归档(移回原位置,但不打开)

⚠️ 重点:「打开」会自动取消归档(因为 DSH 核心设计上不允许「归档会话」作为当前会话被打开——一旦设为当前会被立刻清空回空白对话)。所以打开后,该会话不再处于「已归档」状态,会回到原位置;如需再次归档,请在侧边栏该会话上右键 →「归档会话」手动操作。

命令

/unarchive list
/unarchive restore 3
/unarchive restore
/unarchive restore-all

工具

让 agent 直接调 session_archive 工具(list / unarchive / unarchive-all)。

原理

- 归档集合持久化在 ~/.dsh/storages/workspace.json 的 global.archivedSessionIds(由核心 workspaceRegistry 服务维护)。
- 原生只有 archiveSession()(写入归档集合)、没有 unarchiveSession()。本插件在 apply() 阶段给 ctx.workspaceRegistry 实例补上 unarchiveSession(sessionId),复用其自身的 enqueueOperation 串行化 + setState 持久化,与原生完全对称。
- 客户端 UI 通过 sidebar.footer.action 槽注册(DSH 原生侧边栏没有树内分组扩展槽,只能用 footer 入口方案),数据来自 useWorkspaces(归档集合)与 useSessions(标题)。
- 「恢复」通过 HTTP API 调 host 的 unarchiveSession,成功后 ctx.workspaces.refresh() 刷新侧边栏。
- 「打开」= 先 unarchive → ctx.workspaces.refresh() → 再 ctx.sessions.open()。之所以必须这样,是因为 DSH 核心(dsh-client-runtime 的 WorkspaceRuntime.project)有一段「投影清扫」逻辑:任何归档会话一旦成为当前会话,会被立刻 clear() 回空白对话——所以归档会话无法被直接打开,只能「先取消归档再打开」。

目录

lib/
index.js   # host 端:unarchive 补丁 + 工具 + 命令 + HTTP API
client.js  # 客户端 bundle:sidebar.footer.action 的「归档会话」面板
package.json

License

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群