dsh-session-autarchive:按最后活动时间自动归档长期未用的 DSH 会话

前言

在 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。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye