READMESource: main@8eb29749
DSH 会话历史缓存 (@local/dsh-session-history-cache)
为 DeepSeek Harness (DSH) 网页端 / 桌面端提供会话历史 LRU 内存缓存插件。离开会话时保持最近访问会话的引用不断开,再次切换回已打开会话时免重新加载、秒开秒切。
解决的问题
DSH 前端默认通过引用计数(SessionReference)管理会话生命周期:当你在侧边栏点击切换到另一个会话时,前端会立即对上一个会话执行 release(),归零后销毁其内存事件窗口、节点组装树(BoundConversation)与图片预览 URL。切回时必须重新发起 session.follow 请求并从头折叠组装历史。
安装本插件后,客户端会以独立的 sessionHistoryCache 引用源在后台按 LRU(最近最少使用) 策略保留最近访问过的非空白会话引用:
- 切换零等待:切回已访问会话时无需重新请求
session.follow、无需重新计算对话树。 - 状态完整保留:已向上翻页加载的更早历史消息、聊天滚动条位置、图片 Blob URL 以及后台实时流增量全部保留在内存中。
- 自动回收与隔离:超出容量上限时自动释放最久未访问的后台会话;空白新会话不占缓存名额;会话被归档、移除或打开报错时自动立即释放引用。
- 零上下文开销:纯前端 UI 增强与配置声明,不向大模型注册任何额外 Tool 或斜杠命令,不消耗任何 Prompt Token。
安装
可直接通过 GitHub 仓库安装到你的 DSH profile(例如 web):
dsh plugin --profile web add https://github.com/TideDra/dsh-session-history-cache.git -w
或在克隆仓库后从本地目录安装:
dsh plugin --profile web add /path/to/dsh-session-history-cache -w
使用与设置
安装启用后即自动生效(默认后台最多保留 10 个最近访问会话)。
你可以在 DSH 界面左下角打开 「设置 → 通用设置 → 缓存会话历史」:
- 实时查看当前后台已缓存的会话数(如
当前后台已缓存 3 / 10 个); - 调整最大缓存容量(支持
关闭缓存 (0)、5、10、20、30、50个会话,通过 DSH 原生 Settings 服务持久化保存); - 点击 「释放缓存」 一键释放所有后台会话的内存引用(不影响当前正在查看的主会话)。
配置项
插件在 Cordis Config Schema 中声明了以下动态(volatile)配置项,也可在 cordis.patch.yml 中手动配置:
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
enabled |
boolean |
true |
是否启用会话历史 LRU 缓存 |
maxCachedSessions |
integer (0–50) |
10 |
除当前主视图外,后台最多保留的会话数量 |
cacheSubagents |
boolean |
true |
是否同时缓存点开查看过的子代理(Subagent)会话 |
No comments yet. Be the first to write one.