前言¶
在 DeepSeek Harness(DSH)里长期开发时,侧栏会积累大量会话。手动逐条点「归档」费时,全部留着又占列表。若你只想把「很久没再写过消息」的会话收进归档列表、又希望置顶或个别会话永远不动,就需要一条可配置的本地规则。dsh-session-autarchive 由社区维护者 taoziliyouchong 发布,分类为工作流,专门做这件事:按会话档最后写入时间判定,默认超过 5 天且不在保护范围内的会话走官方归档通道,不是删数据。
这是什么¶
dsh-session-autarchive 是 DSH 插件,自动归档长期没有活动的会话。判定依据是 $DSH_HOME/sessions/<工作区>/session-* 目录内最新文件时间;已归档、在「不自动归档」名单里、以及默认豁免的置顶会话都会跳过。侧栏可对单条会话右键标记,通用设置里可改天数。归档调用宿主官方的 archiveSession,归档后可在侧栏归档列表中恢复。
维护者:taoziliyouchong。源码与说明见 GitHub 仓库;社区目录页:skillhub.cn 插件页。DSH 生态采用「一切皆插件」思路,skillhub.cn 为独立社区目录,与 DeepSeek / 幻方无官方从属关系。
界面上的三处入口¶
插件在浏览器半边通过 ctx.slots 挂四个座位,日常用法如下。
| 位置 | 作用 |
|---|---|
| 会话右键菜单 | 与「置顶会话/重命名/分叉会话/归档会话」并列的一行「不自动归档」;点一次标记,再点一次取消 |
| 会话行首 | 被标记的会话多一个小盾牌,表示不会被自动归档 |
| 悬停卡片 | 一行「不会被自动归档」文字说明 |
| 通用设置 | 最底一行「自动归档天数」;失焦或回车即保存,与宿主同一配置字段 |
服务探测使用 ctx.get,拿不到对应服务时会跳过该入口,不影响其他功能。
判定与执行¶
判定:扫描各工作区下的 session-* 目录,用目录内最新文件时间作为「最后活动」。超过阈值(默认 5 天)、未归档、不在保护名单、且非置顶(置顶豁免默认开启)的会话进入待归档列表。
执行:宿主每 10 分钟跑一轮(启动约 60 秒后第一次,窗口未打开也会执行)。浏览器半边每 5 分钟拉一次待归档清单,在具备官方归档通道时当场归档并刷新侧栏。判定只读本地文件时间,不联网、不上传内容。
若宿主侧没有 workspaceRegistry 服务,宿主只能列出待归档会话、无法自行归档,此时由浏览器半边走官方通道执行。
安装与启用¶
下面命令来自仓库 README,profile 名请按你的环境替换 desktop:
dsh plugin --profile desktop add github:taoziliyouchong/dsh-session-autarchive
安装完成后重启 DSH。package.json 中 engines 声明 DSH 版本为 >=0.2.1-rc.5 <0.3.0-0,README 写明在 0.2.1-rc.5 实测通过,0.3 起不保证兼容。
发布到 npm 后也可使用:
dsh plugin --profile desktop add dsh-session-autarchive
注意:插件默认开启,阈值为 5 天。 装好即会按此口径归档。若要先观察或暂时关闭,可通过工具改配置:
# 工具 dsh-session-autarchive,action=config,enabled=false
插件以当前 DSH 进程权限运行本地文件与 API;安装前建议浏览源码与 MIT 许可证,确认符合你的安全预期。
工具 dsh-session-autarchive¶
工具名 dsh-session-autarchive,支持五个 action:
| action | 做什么 |
|---|---|
status(默认) |
配置摘要、当前待归档会话、保护名单、最近一次执行 |
run |
立刻归档当前待归档会话;dryRun: true 只列清单不执行 |
protect |
标记单个会话「不自动归档」(需 sessionId) |
unprotect |
取消标记 |
config |
修改 days(天数)、enabled(开关)、exemptPinned(置顶是否豁免) |
典型用法:先用 status 或 run 且 dryRun: true 看清候选列表,再决定是否 run;长期不动的会话用侧栏右键或 protect / unprotect 维护名单。
数据文件¶
数据均在 $DSH_HOME/session-autarchive/:
| 文件 | 说明 |
|---|---|
protected.json |
保护名单唯一来源,仅由 protect / unprotect 写入;定时归档链不会改写 |
state.json |
开关、阈值、置顶豁免、最近一次执行结果;不存保护名单 |
audit.log |
名单改动与每轮归档一行一条,便于按时间排查 |
写入采用临时文件加改名;读盘失败会重试,避免半截文件被当成空名单后覆盖默认值。
适用场景与注意¶
适合:会话多、希望侧栏只保留近期在写的线程,又需要保留置顶或指定会话不被规则碰到的 DSH 用户。
务必注意:
- 只扫描
$DSH_HOME/sessions下的会话档,不在该目录的会话不参与判定。 - 不要与另一个自动归档插件同时安装;同一组界面座位只能挂一份,重复安装会出现两行菜单和两行设置。
- 默认开启且 5 天阈值;想先观察可将
enabled设为false,或把days调大。 - 宿主本机路由仅接受回环地址(
127.*、::1等),远程访问返回 403。
结尾¶
dsh-session-autarchive 把「按最后活动时间自动归档、可标记例外、可调天数」做成安装即用的工作流插件,归档走官方 API,数据留在本地。进一步了解可打开 社区目录页 与 GitHub README。