从 Web GUI 侧栏查看已归档会话,并一键恢复到原工作区。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:dylan121322/dsh-session-unarchive
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本。请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
为 dsh Web GUI 增加「已归档」视图与「恢复会话」功能。
功能
- 在侧栏底部显示「已归档」区块,列出所有已归档会话。
- 行菜单提供「恢复会话」,取消归档后会话回到原工作区原位。
- 支持中英文案。
安装
dsh plugin add github:dylan121322/dsh-session-unarchive
生效步骤
- 重启 dsh。首次启动会把补丁应用到 5 个 dsh 包并打印提示。
- 再重启一次 dsh(host 端文件在之后生效)。
- 刷新浏览器 http://127.0.0.1:3080。
之后的每次启动会检测到补丁已应用、静默通过。插件幂等:不会重复应用或破坏文件,目标文件被本地改过时拒绝应用。
原理
dsh 0.1.0-rc.6 的会话归档是单向操作:GUI 从所有视图隐藏已归档会话,且没有找回入口。数据并未删除——会话 id 只是被记入 ~/.dsh/storages/workspace.json(global.archivedSessionIds)。
cordis patch 层只能覆盖条目属性、不能重定向既有插件的实现文件,因此本插件以文件补丁分发。插件入口(index.js)在启动时运行:用 originals/ 里的 rc.6 原始文件校验每个目标,再用 patches/ 里的 diff 打补丁。
补丁覆盖的包:
| 包 | 改动 |
|---|---|
dsh-workspace |
registry 增加 unarchiveSession()。 |
dsh-host-apiproxy |
增加 workspace.unarchiveSession RPC 全链路。 |
dsh-client-connection |
增加 fetch 映射与 fixture 模拟。 |
dsh-client-runtime |
增加 manager 与 service 方法。 |
dsh-client-ui-workspace |
增加已归档区块、恢复菜单与 i18n。 |
手动兜底
不用 dsh plugin add 时,可直接运行 ./apply.sh(./apply.sh check 为干跑),效果相同。
兼容性
面向 @deepseek-ai/dsh@0.1.0-rc.6,补丁基于该版本的构建产物生成,其他版本可能无法应用。dsh 升级会覆盖补丁文件——升级后重新 dsh plugin add(或 ./apply.sh)即可。
验证
- 归档任意会话:侧栏底部出现「已归档」区块。
- 展开区块,行菜单选择「恢复会话」。
- 会话回到原工作区分组、区块消失,
~/.dsh/storages/workspace.json的archivedSessionIds不再包含该 id。
链接
同类插件
Anionex/dsh-turn-rewind★ 51
对话回退:基于持久 Change Ledger 回滚会话与工作区状态。
Nwflower/dsh-chat-import★ 30
把 13 家 coding agent(Claude Code、Codex、ChatGPT、Cursor、Gemini、opencode 等)的完整对话历史导入为可续聊的 DeepSeek Harness 会话,并支持反向导出回 Claude Code。
Chinesezjc/dsh-interconnect★ 26
跨实例互联:经 interconnect 服务在多个 DSH 实例间转发消息与事件。
whyihaveyou/dsh-suite#plugin-session-export★ 21
把 append-only 会话日志导出为按轨迹来源分组的可读 Markdown 或 HTML。
hellodigua/dsh-share★ 18
一键分享你的对话。
Moeblack/dsh-message-edit★ 18
基于分支的消息编辑、reroll、重试与版本时间线。