DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

dsh-readcache

Readcache

为 DSH read 工具提供版本令牌校验的进程内结果缓存:未变更文件的重复读取跳过文件 I/O 与重渲染,并附带 readcache 工具查看统计与清空缓存。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add dsh-readcache@1.0.1
README兼容性版本

兼容性与来源证明

Readcache 以 dsh-readcache 发布,当前版本为 1.0.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
npm
Registry 更新时间
2026/8/23

版本

1.0.1stable
2026/8/23

相关插件

正在加载相关插件…

最新版
1.0.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
13.1 kB
文件数
5
Surface
any
许可证
MIT
发布源
npm
GitHub
★ 2
周下载
0
最近提交
2026/8/23
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 developer-tools 分类下经过校验的插件。

MarketdshmarketDeepSeek Harness 内的可视化插件市场——浏览、搜索并一键安装社区插件。· DSH 可视化插件市场:浏览、搜索并一键安装社区插件。Client Ui Git Graph@linxin666/dsh-client-ui-git-graph外部 dsh Web GUI 插件:空会话 Git 分支选择器和 Git 图,包含实际的主机端 Git 操作与防护,作为 dsh 配置文件包Ssh@linxin666/dsh-sshdsh Web GUI 的远程 SSH 操作:主机配置存储(~/.dsh/dsh-ssh.json,可从 ~/.ssh/config 导入)、支持跳板主机的持久化 ssh2 连接池、exec / PTY Web 终端 / SFTP 传输 / 本地端口转发隧道 / 集群执行Opsdsh-ops适用于 Windows x64、Linux x64 和 macOS arm64/x64 的原生文件和 PTC 工具;仅限 Windows 的可选 Bash 负载和主机 PowerShell 集成

README

dsh-readcache

⚡ 给 DSH read 工具的版本令牌校验结果缓存。

长会话会反复重读未变更的文件——上下文压缩后的恢复、并行子代理、编辑前后的对比,每一次重复都要重新做文件 I/O 和行号渲染,读到的却是字节完全相同的内容。dsh-readcache 包装了 tools/execute 事件瀑布,让这些重复读取直接命中进程内缓存,且每一次命中都对照文件系统自己的版本令牌重新校验。

为什么它是安全的

朴素的缓存会吐旧内容,这个插件不会:

性质机制
绝不吐旧内容每次命中都重新 stat 文件,要求版本令牌精确匹配(本地后端为 dev:ino:size:mtimeNs:ctimeNs)。任何写路径——edit/write 工具、bash、外部编辑器——都会改变令牌并立即失效对应条目。
无写入竞态未命中时,执行结果只有在二次 stat 仍报告执行前令牌的情况下才会入缓存(双 stat 防护)。
保留"先读后改"约束缓存键包含代理 id。文件系统的观察门(fs-observation-policy)要求每个代理编辑前必须自己读过该文件;按代理隔离键值保证每次命中都以该代理自己的先前观察为凭据。
内存有界LRU 上限:300 条 / 总量 16 MiB / 单条 4 MiB。

只有 read 工具的成功、非中止、可无损 JSON 序列化的结果才会入缓存;失败结果原样透传。

readcache 工具

插件注册一个模型可见的工具:

  • readcache(action:"stats" | "clear")— 汇报命中/未命中等计数与已节省字符数、条目数;或清空缓存。

stats 输出示例:

{
  "hits": 2,
  "misses": 4,
  "hitRatio": 33.3,
  "stale": 1,
  "stores": 4,
  "evictions": 0,
  "savedChars": 1210,
  "clearedEntries": 0,
  "entries": 3,
  "cachedChars": 1662,
  "maxEntries": 300
}

安装

dsh plugin --profile web add dsh-readcache

或从本地检出安装:

cd dsh-readcache && npm pack
dsh plugin --profile web add ../dsh-readcache/dsh-readcache-1.0.1.tgz

安装后重启 DeepSeek Harness 生效。

设计说明

  • 拦截点:tools/execute 的 around 分发瀑布——官方超时策略用的同一条缝。调用身份保持不变,只有结果被复用。
  • 声明 inject,不和加载器赛跑:插件导出 inject = ["fs", "tools"],Cordis 会把它保持在等待态,直到基础 bundle 提供这两个服务。若用软性 ctx.get("fs") 提前返回,可能在启动竞态中抢跑并让整个缓存静默失效——这正是 1.0.1 修复的 bug。
  • 为什么用 stat 而不是 fs 观察事件:fs.stat 是无副作用的纯探测;观察事件依赖触发顺序,且命中时无法复核。
  • 仅宿主侧:缓存完全活在宿主进程里。客户端仪表盘(经 Remote service)在 v1.1 路线图上。
  • 入缓存的对象是冻结的 ToolExecutionResult;一次无损 JSON 往返(JSON.parse(JSON.stringify(...)))保证存下的副本不持有任何指向运行时的活引用。

已验证行为

  • 同参数重读未变更文件 → hits +1,省掉 I/O。
  • 两次读取之间文件被外部修改 → 返回新内容(不吐旧内容),stale +1。
  • 另一个代理首次读取已缓存文件 → misses +1(按代理隔离成立)。

许可证

MIT