dsh-open-artifacts:从会话日志算出产物目录并直接打开

前言

DeepSeek Harness(DSH)的会话日志里记录了工具调用的路径信息,但现有插件打开的往往是工作区根目录,而不是「这个对话真正写过东西的地方」。同一个工作区下几十个对话,根目录里散落着各种文件,打开它等于没打开。本插件通过解析会话日志,推导出每个对话的产物目录,再从侧边栏菜单和标题栏直接打开。

插件定位

  • 名称:dsh-open-artifacts
  • 维护者:wuuuuu123-32
  • 分类:记忆
  • 核心价值:根据会话日志算出对话的产物目录,用资源管理器直接打开,避免手动翻找。

安装与启用

使用官方安装命令:

dsh plugin --profile desktop add github:wuuuuu123-32/dsh-open-artifacts

安装后必须重启 DSH,新增的插槽项不会热加载。升级时可在市场插件页点「更新」,或重跑上述命令。

核心功能

打开产物目录

侧边栏会话行的「⋯」菜单和对话标题旁各有一个入口。点击后,插件会:

  1. 读取该会话的日志(~/.dsh/sessions/<工作区编码>/<会话 id>/session.v4.jsonl.zstd);
  2. 解压并解析日志,提取写入类工具调用(write / edit / str_replace_editor)与 present 声明的路径;
  3. 按「顶层目录」归类,区分工作区内外的产出;
  4. 在工作区根目录的散文件(如 AGENTS.md、升级日志.md)单独列出;
  5. 对 Blender 产物(默认 E:\AgentArtifacts\blender)按时间窗口推断目录。

结果为一个列表或直接打开。行为如下:

  • 只有 1 个产物目录:直接打开,不弹窗;
  • 有多个:弹列表,显示目录名、文件数、完整路径;
  • 没有产物:提示「没有找到产物」,并提供「打开 Blender 产物目录」/「打开工作区根目录」两个兜底按钮;
  • 想新建:弹窗页脚有「新建产物目录」,输入名字后在工作区下创建并打开(预填从标题提取的候选名)。

产物目录守门

为落实「一个对话一个产物目录」的约定,插件挂载 tools/pre-execute,只在一种情况拦截写入:

  • 往工作区根目录新建一个非 .md 文件。

拦截时返回 deny 并附带说明,指向工作区的产物目录约定,让模型自行重试。有意放行的情况包括:

  • 子目录内的任何写入;
  • 根目录的 *.md 文件(如 AGENTS.md、升级日志.md、基建备忘.md);
  • 已存在的文件。

更新检查

插件在 DSH 启动后 3 秒检查一次 GitHub Releases,与本地版本比对。有新版本时在界面右下角显示更新卡片,支持展开更新说明、跳转 Release 页面、忽略当前版本。检查结果缓存 6 小时,失败时静默跳过,不影响正常使用。

典型用法

  1. 安装并重启 DSH;
  2. 在任意会话上点击菜单或标题栏的「打开产物文件夹」;
  3. 若有多个产物目录,选择一个打开;
  4. 若没有产物,可点击「打开 Blender 产物目录」或「打开工作区根目录」兜底;
  5. 需要新建产物目录时,在弹窗页脚点击「新建产物目录」,输入名称并确认。

适用场景与注意

  • 适合希望从会话日志自动定位产物目录的场景,避免手动翻找;
  • Blender 建模产物默认放在 E:\AgentArtifacts\blender,其它对话产出仍按工作区 AGENTS.md 约定放在 <工作区>\<主题>\;
  • 插件以当前 DSH 进程权限运行,安装前建议查看源码与许可证;
  • 目前仅在 Windows 上验证,macOS / Linux 需要替换打开方式那一行。

总结

dsh-open-artifacts 通过解析会话日志,把「这个对话的产物在哪」变成一个可点击的动作,大幅减少手动翻找的时间。它既支持打开已有的产物目录,也提供新建目录的入口,并在 Blender 产物和时间推断上做了补充。如果你在 DSH 里经常需要快速定位对话产出的位置,这个插件可以作为工作流的一部分。

  • 目录页:https://www.skillhub.cn/plugins/wuuuuu123-32/dsh-open-artifacts
  • GitHub:https://github.com/wuuuuu123-32/dsh-open-artifacts
羽毛球分组比赛记分
小程序二维码

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

Xiaoye