Skip to content

Releases: John4874314/dsh-steward

v1.3.1 — 修「插件已关闭」:包身份统一为 dsh-steward

Choose a tag to compare

@John4874314 John4874314 released this 26 Oct 12:16

⚠️ 装了 1.3.0 的话,插件会显示「已关闭」

包元信息错误:Plugin metadata for dsh-steward:
icon.svg: icon must remain inside its package directory

1.3.0 把 patch 与 client 的 id 统一改成了 dsh-steward,但漏了包自己的
package.json
,它的 name 还是本地开发用的 @local/dsh-steward。

DSH 的 assertPackageOwned() 会从 icon.svg 的真实路径向上找一个 name 等于包名的
package.json
。先找到的是 @local/dsh-steward,对不上,于是整块插件被判定元信息非法,
自动移出 bundle 列表并显示「已关闭」——功能全都不出现。

修复

  • package.json 的 name 改为 dsh-steward,与发布版完全一致。
    本地和发布从此共用同一个包身份,这类「本地能跑、发布坏 / 发布修了、本地又坏」
    的分叉不会再出现。
  • exports 补上 "./package.json": "./package.json"(其它 DSH 插件都有;
    缺了会让 <包名>/package.json 解析报 ERR_PACKAGE_PATH_NOT_EXPORTED)。
  • 安装后如果仍显示「已关闭」,去 设置 → 插件 里重新启用一次(或重启 DSH)。
    被元信息校验移出 bundle 列表的条目不会自己回来。

自检从 6 条扩到 10 条

新增:

  • exports 必须导出 ./package.json / ./icon / ./client
  • 包名必须是裸名,不带 @scope/(这条直接对应上面的故障)
  • icon 满足 DSH 的类型 / 大小(≤256 KiB)/ 包内约束
  • 仓库 README 必须仍是 GitHub 落地页(防被插件内部的简版 README 覆盖),
    且更新日志首条版本号、安装命令 tag 都要与 package.json 一致

已验证:把 name 改回 @local/ 会让 2 条断言立刻变红。

验证方式

  • 用 DSH 里那段 assertPackageOwned 逻辑写了探针,走真实 junction 路径全部通过
  • 在隔离 profile 里真实启动一次:零元信息错误,服务正常监听
  • npm test:10/10 通过

安装

dsh plugin --profile <profile> add https://codeload.github.com/John4874314/dsh-steward/tar.gz/refs/tags/v1.3.1

装完重启 DSH。之前装过旧版的,建议先
dsh plugin --profile <profile> remove dsh-steward 再装。

v1.3.0 — 修复发布阻断级加载失败

Choose a tag to compare

@John4874314 John4874314 released this 26 Oct 04:38

⚠️ 如果你装过 1.0.0 ~ 1.2.2,请升级到这一版

那些版本从 tarball / npm 安装根本加载不了:

dsh-steward (@local/dsh-steward): failed to import:
Error [ERR_MODULE_NOT_FOUND]: Cannot find package '@local/dsh-steward'
dsh: warning: 1 entry did not activate

原因:cordis.patch.yml 的 name 写的是本地开发别名 @local/dsh-steward,
而真实包名是 dsh-steward。宿主按 name 解析模块,所以插件整块不激活。
本地开发时看不出来,因为本地恰好装成了 @local/ 作用域。

修复

  • cordis.patch.yml 的 name 改为 dsh-steward,client.js 的 module id 同步。
  • 运行守则改为默认关闭。以前 guardrails.install: true 且代码里用 !== false 判断,
    undefined 会被当成开启 —— 装个插件就往全局 AGENTS.md 写东西。现在只有显式打开才写。
  • 补最小自检与 CI:npm test 6 条断言,第一条是「package.json / patch / client
    三个名字必须一致」。已验证把它改回 @local/ 会立刻变红。
  • README 去掉 npm 徽章(包没发布,徽章是假的),补平台支持矩阵、
    「这个插件会碰什么、不会碰什么」、以及已知粗糙之处。

验证方式

在隔离 profile 里真实安装复现了上述错误,换成修复版后启动零错误、服务正常监听。

安装

dsh plugin --profile <profile> add https://codeload.github.com/John4874314/dsh-steward/tar.gz/refs/tags/v1.3.0

装完重启 DSH。如果你之前装过旧版,建议先 dsh plugin --profile <profile> remove dsh-steward 再装。

平台

Windows / macOS / Linux 都能装;解压、多浏览器选择、终端三项目前是 Windows 专用,
在别的系统上会隐藏而不是留一个点了没反应的按钮。

v1.2.2 — 交接日志清注入定稿

Choose a tag to compare

@John4874314 John4874314 released this 26 Oct 04:04

修复

  • 剔除 Current runtime context... 运行时快照块(仅当整块以它开头,避免误杀用户提问)
  • 剔除 Time sampled while preparing turn... / Browser time zone... / Elapsed since... 三行时间补丁
  • 没标题时用首条剥完注入后仍有内容的用户消息当标题

安装

dsh plugin --profile <profile> add https://codeload.github.com/John4874314/dsh-steward/tar.gz/refs/tags/v1.2.2

v1.2.1 — 交接日志标题兜底

Choose a tag to compare

@John4874314 John4874314 released this 26 Oct 04:02

修复

会话没有设置标题时,交接日志的文档头以前会写一串 session-xxxx,认不出是哪个对话。
现在取第一条剥掉 system-reminder 后仍有内容的用户消息作为标题,截到 40 字。

# 交接日志 · 查看当前模型(test_2)

其余功能与 v1.2.0 相同。

安装

dsh plugin --profile <profile> add https://codeload.github.com/John4874314/dsh-steward/tar.gz/refs/tags/v1.2.1

v1.2.0 — 每个对话的文件夹自动写交接日志

Choose a tag to compare

@John4874314 John4874314 released this 26 Oct 04:01

新功能

每个对话的文件夹里自动写一份 交接日志.md,用途是把任务交给下一个人(或几天后的自己)。

段落 内容
概览 会话 id、标题、工作目录、创建时间、导出时间、消息数、省略了多少
产出的文件 这次对话里 present 过的交付物,一行一个绝对路径 + 说明
对话记录 按时间顺序:用户说了什么、助手回了什么、调了哪些工具(成功/失败)
  • 触发:建目录时一次,之后每个 turn/end 与 session/end-seed 各一次,同会话 4 秒节流。
  • 写入:整份重新生成,写 .tmp 再 rename 原子覆盖,不会留下半截文档。
  • 清洗:剔除 DSH 每轮注入的 <system-reminder>(实测占一份 1.2 万事件对话的 48%)。
  • 截断:单条消息默认上限 4000 字(保留头尾并标注省略字数),对话条数默认保留最近 400 条。
  • 新增命令 /chat-session-log --session=<id>,给历史对话补导。
  • 设置页「对话管理」新增开关(默认开启,仅在文件夹开关打开时显示)。

修复

  • 工具调用与结果按 message.toolCallId 配对 —— 之前读错了字段,日志里整片工具行都显示「未返回」。
  • 写入前补一次 mkdir:目录被手动删掉后不再因 ENOENT 静默失败。
  • 工具参数里的多行命令压成一行,避免 markdown 列表被撑散。
  • 老会话的既有目录在插件升级后会补写第一份日志。

安装

dsh plugin --profile <profile> add https://codeload.github.com/John4874314/dsh-steward/tar.gz/refs/tags/v1.2.0

装完重启 DSH(客户端 bundle 图只在进程启动时构建)。

dsh-steward 1.1.0

Choose a tag to compare

@John4874314 John4874314 released this 25 Oct 05:07

dsh-steward 1.1.0

右键菜单从「一个通用列表」变成「按文件类型分组 + 网址专用」。

新增

文件右键菜单按类型分组

类型 专属动作
代码(js/ts/py/go/rs/java/c/cpp/cs/php/sh/ps1/sql/html/css/json/yaml…) 复制代码、复制为 Markdown 代码块(带语言标注)
文档(md/txt/pdf/docx/xlsx/pptx/csv…) 复制文件内容
压缩包(zip/7z/rar/tar/gz/tgz…) 解压到此处(同名目录已存在则拒绝,不覆盖)
图片 / 音视频 / 可执行 / 其它 文件信息(大小 + 修改时间)

可执行文件(exe/msi/dll/so/jar…)不提供任何运行入口 —— 路径来自对话内容,
一个「运行」按钮等于给了静默执行任意程序的通道。

网址右键菜单

  • 在默认浏览器打开
  • 用其它浏览器打开(枚举本机 StartMenuInternet 注册的浏览器)
  • 复制网址
  • 复制为 Markdown 链接

只接管 http/https;javascript:、data:、file: 一律放行给原生菜单。

带账号密码的链接

之前会被静默忽略(右键毫无反应,像是坏了)。现在:

  • 菜单照常弹出,顶部 URL 打码成 https://user:***@host/
  • 多一行橙色警示
  • 点「在浏览器打开」时弹确认框,说明凭据会发给目标站点
  • 复制类动作仍可用,复制的是完整原始 URL

安全靠「打开前确认」保证,不靠「什么都不给」。

右键范围扩大

从「交付物卡片 + 变更审查行」扩展到右侧文件树(相对路径按树根解析成绝对路径)。

修复

  • listBrowsers 里用了动态 import('node:child_process'),在 Cordis 加载环境中失败,
    导致 apply() 抛错、整个插件 import failed、DSH 起不来。改为顶部静态导入 execFile。

安装

dsh plugin --profile desktop add https://codeload.github.com/John4874314/dsh-steward/tar.gz/refs/tags/v1.1.0

或(需要本机能连 github.com):

dsh plugin --profile desktop add github:John4874314/dsh-steward

装完重启 DSH —— 客户端 bundle 图在进程启动时构建,刷新页面不会重扫。

升级

把上面命令里的版本换成 v1.1.0 重新 add 即可;配置和回收站数据不受影响。

完整说明见 README.md。

dsh-steward 1.0.0

Choose a tag to compare

@John4874314 John4874314 released this 24 Oct 15:18

dsh-steward 1.0.0

DeepSeek Harness 的对话管家:批量删除对话、每个对话一个文件夹、回收站、备份管理、运行守则、体检。

安装

dsh plugin --profile desktop add https://codeload.github.com/John4874314/dsh-steward/tar.gz/refs/tags/v1.0.0

或者(需要本机能连 github.com):

dsh plugin --profile desktop add github:John4874314/dsh-steward

装完重启 DSH —— 客户端 bundle 图在进程启动时构建,刷新页面不会重扫。

功能

  • 对话 —— 多选批量删除;删除进回收站,可恢复
  • 文件夹 —— 每个对话一个文件夹,落在该会话自己的工作区目录下
  • 回收站 —— 恢复 / 彻底删除 / 清空
  • 备份 —— 一键打开备份文件夹或直接删除,不长期占盘
  • 运行守则 —— 查看并维护 AGENTS.md 里的三原则
  • 体检 —— 检查孤儿文件夹、重复目录、注册表一致性

兼容性

  • DSH 0.2.1-rc.3 实测通过
  • 与 dsh-better-sidebar 共存:检测到该插件时自动把面板挂到右侧栏;未安装时用自带设置页

完整说明见 README.md。