前言¶
DeepSeek Harness (DSH) 在日常使用中会积累大量持久化会话。这些会话通常只增不减,随着数量增加,session_projcache.json 会膨胀,导致 web 界面卡顿。DSH 宿主目前没有提供会话删除或归档的 API,本插件补上了这一能力,并且三处索引全部自动跟随。
功能¶
归档与恢复¶
归档操作将 sessions/<ws>/<id>/ 移动到 archive-sessions/<ws>/<id>/。归档是可逆的,不释放磁盘空间,但会话会从列表中消失,projcache 记录也会被清除。恢复操作会将归档会话移回原位置,投影缓存会通过冷读自动重建。
永久删除与自动策略¶
永久删除会彻底移除归档目录,释放磁盘空间。此操作不可逆,执行前需要二次确认。自动策略允许每工作区保留最近 N 个会话,当数量超限时会自动归档最旧的非运行会话。
未分组与失效工作区管理¶
插件会显式列出 _no-cwd 会话以及工作区路径已被删除的会话,并支持对这些会话进行管理。
体积治理与侧栏同步¶
体积面板显示 projcache 体积、各工作区会话数量与归档统计。在执行归档、恢复、删除或自动策略后,客户端会立即通知宿主重拉会话列表基线(sessions.refresh() / workspaces.refresh()),左侧栏会立即刷新,无需重启 dsh web。
跨卷支持与蒸馏衔接¶
当归档区配置在其他盘符时,自动回退使用 copy + rm 命令,以解决 Windows 的 EXDEV 防护问题。在归档/删除前,可一键复制 wiki-distill 蒸馏指令,先把会话沉淀进知识库再清理,确保知识不丢失。
安装与启用¶
使用一条命令同时安装插件与菜单宿主 dsh-knj-menu:
dsh plugin --profile web add dsh-knj-session-management dsh-knj-menu
配置¶
在 cordis.patch.yml 中添加以下配置:
- insert:
- id: dsh-knj-session-management
name: 'dsh-knj-session-management'
config:
maxSessionsPerWorkspace: 60 # 每工作区保留上限,0 关闭自动归档
enabled: true # 自动归档总开关
注意事项¶
- DSH 宿主没有会话删除/归档 API,本插件补上这个能力,并且三处索引全部自动跟随。
- 归档区默认路径为
$DSH_HOME/profiles/<profile>/dsh-session-archive。 - 本插件只做编排,蒸馏本身由既有 wiki-distill skill 完成。
- 插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。
总结¶
该插件解决了 DSH 会话只增不减导致的数据膨胀问题,提供了从归档、恢复到永久删除的完整生命周期管理,并通过自动策略和体积面板帮助维护系统健康。
目录页:https://www.skillhub.cn/plugins/yangdongzhen590/dsh-knj-session-management
GitHub:https://github.com/yangdongzhen590/dsh-knj-session-management