dsh-kiln: Read-only browsing of Kiln issues and action history in DSH sessions

前言

用 kiln 管 issue 时,「问题 → 动作 → 结论」往往写在 git commit 的 trailer(issue:、action:)里。查「为什么这么做」通常要翻提交历史或跑 CLI,和 DSH(DeepSeek Harness)里正在开的会话是两条线。下面介绍维护者 jackiehank 的 dsh-kiln 插件:把 kiln 子进程读出的历史投影成会话内可点的三页界面,不写 trailer、不造提交,数据全部来自 kiln 输出。

这是什么

dsh-kiln(npm 包名 @jackiehank/dsh-kiln,当前资料中的示例版本为 0.16.0)是 DSH 的 web 侧插件,定位是把 kiln 的 issue 与动作历史搬进 DSH GUI。插件只读:不写 trailer、不装 git 钩子、不落盘;不在插件内复刻 kiln 的状态解析,每个视图对应一条 kiln 命令。

目录页:https://www.skillhub.cn/plugins/jackiehank/dsh-kiln
源码与说明:https://github.com/jackiehank/dsh-kiln(MIT 许可)

三页视图在做什么

三页共享同一个焦点 issue(内存里有效,切页不丢,刷新即清)。

页 看什么
时间线 全仓动作流,一行一个动作:issue、动作名、标题、多久以前;点开可看提交的 sha、领域、标签、时间。可按动作和领域筛。
issue 一行一个 issue;左侧色条是动作序列,末尾 done 表示有新提交也停在终点动作。聚焦后可读父子、阻塞、因果、取代与弱关联等结构文案。可按领域和状态筛。
关系 关系图;工具栏可切横向/纵向、全局/聚焦(1 或 2 跳)。线粗细表示结构强弱,虚线表示因果与取代,锚点表示弱关联。

关系语义来自 kiln 词表:part-of、blocks、supersedes、caused-by、relates-to。

数据从哪来

一个视图一条 kiln 命令,按需取数并在会话内缓存;HEAD 未变时切回标签可做到 0 子进程、0 字节(动作流两端按 HEAD 缓存)。

视图 命令
时间线 kiln action log --jsonl
issue 列表 同一条动作流,客户端折叠
详情 / 聚焦 kiln path <id> --json
关系图 kiln graph --json
搜索 kiln list --search <q> --json

安装与启用

环境要求:DSH 0.2.x(package.json 中 engines.dsh 为 >=0.2.0 <0.3.0);kiln v0.3.0+,可先安装 CLI:

go install github.com/jackiehank/kiln/cmd/kiln@latest

装进哪个 profile,就把下面命令里的 web 换成对应名称(桌面端通常是 desktop)。

从 GitHub Release 的 tgz 安装(推荐,可离线保存)

  1. 到 https://github.com/jackiehank/dsh-kiln/releases 下载 jackiehank-dsh-kiln-<版本>.tgz;
  2. 执行:
dsh plugin --profile web add ./jackiehank-dsh-kiln-0.16.0.tgz

从 GitHub 直接装(与 DSH「安装插件」界面粘贴仓库地址的做法一致):

dsh plugin --profile web add github:jackiehank/dsh-kiln

若只想装 plugin/ 子目录、减少整仓打包体积(约 2MB,含 docs/):

dsh plugin --profile web add github:jackiehank/dsh-kiln#path:/plugin

本地开发 checkout:

dsh plugin --profile web add <本仓库>/plugin

装完后刷新 GUI 或重启 DSH;标签栏会出现 kiln。在已用 kiln 记录 issue 的仓库里打开会话即可看到视图。资料注明 npm 包尚未发布,未来可能支持 dsh plugin --profile web add @jackiehank/dsh-kiln。

安装前应自行查看仓库源码与 MIT 许可证;插件以当前 DSH 进程权限运行子进程调用 kiln,需在可信环境中使用。

典型用法

  1. 焦点:行尾 ⌖ 聚焦 或按 f 聚焦光标所在行;Esc 或页头 焦点:<id> × 退出。三页同步同一焦点 issue。
  2. 搜索:页头中间输入框,停 120ms 后查全仓(不受筛选与焦点限制);↑↓ 选择、⏎ 打开、Esc 清空。命中 issue 名进入 issue 页;命中动作标题进入时间线并滚到该动作。
  3. 筛选:纯客户端;同组多选为「或」,组间为「与」;某维度在本仓无选项时整组不显示。
  4. 刷新:重新读取动作流、关系图与详情,并清空缓存。

界面元素多带 data-hint 悬停说明;页头会随侧栏宽度收缩而省略部分文案。

适用场景与注意

适合:已在仓库里用 kiln + commit trailer 维护 issue 历史,希望在 DSH 会话里用时间线、列表和关系图只读浏览,而不离开当前工作流。

边界(来自 README):

  • 只读;不写 issue、不提交。
  • 规模上界为整条动作流:约 10 万动作 / 24MB,默认预算 12 万行 / 32MB;上游不做分页。
  • 列表虚拟化,find-in-page 仅覆盖可视区 ±600px。
  • 详情按需加载,点开约多等 40ms(冷读约 120ms)。
  • kiln 词表新增关系类型时,可能暂时缺少一句展示文案,而非插件新分支。

DSH 社区插件目录(如 skillhub.cn)与 DeepSeek / 幻方无官方从属关系;安装第三方插件前请核对来源与权限。

结尾

dsh-kiln 把 kiln 藏在提交历史里的「为什么」收成 DSH 内三页只读视图,依赖 kiln CLI 输出,不维护第二份状态。进一步了解可访问 SkillHub 目录页 与 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye