Skip to content
dsh.fish
Bundle

dsh-skill-status

查看当前主助手会话中技能完整正文的加载状态、历史版本与来源

Source
yuhhhong
License
MIT
Updated
Updated 18 days ago

Readme

# dsh-skill-status

中文 | [English](<./README.en.md>)

DeepSeek Harness(DSH)的会话技能状态插件。在会话标题栏显示已确认加载的技能数量,点击「技能」打开右侧面板,查看完整正文是否仍在当前主助手上下文中,以及各次加载的正文版本与来源。

## 功能

- 合并当前技能目录与历史正式加载记录,支持按名称或说明筛选。
- 已加载的技能排在列表前面,同组内按名称排序。
- 识别 `/技能名` 和 `skill` 工具的正式加载记录,核对主正文是否完整保留。
- 查看历史正文版本、加载次数和加载时的资源指引;同一技能的多个版本只计数一次。
- 分别展示加载时的来源与当前目录来源;源文件后续修改不会覆盖历史正文。
- 随会话事件更新状态,安静期间每五秒复查目录和文件状态。

插件只查询当前主助手的技能状态,不提供加载、重载、卸载技能或修改会话内容的操作。

## 安装

在 DSH 的 Web profile 中直接从 GitHub 安装:

```sh
dsh plugin --profile web add github:yuhhhong/dsh-skill-status
```

安装完成后重启 DSH,并刷新 DSH 页面。打开已有会话,点击会话标题栏右侧的「技能」入口,即可查看当前会话的技能状态。

如需卸载:

```sh
dsh plugin --profile web remove dsh-skill-status
```

当前插件版本为 `0.1.3`,适配 DSH `0.1.7-rc.2`。

## 状态含义

| 状态 | 含义 |
| --- | --- |
| 已加载 | 至少一个正式加载版本的完整主正文仍在当前上下文中 |
| 未检测到加载 | 可核实历史中没有正式入口成功加载的记录 |
| 完整正文不在上下文 | 已确认曾加载,但当前所有可核实版本的主正文都不完整或已移除 |
| 无法确认 | 历史、正文或当前上下文的证据不足 |

标题中的 `…` 表示尚未收到结果,`?` 表示查询失败或仍有无法确认的范围。`2 · ?` 表示已确认加载两个技能,但并非全部状态都已核实。

普通文件读取不算正式加载证据。压缩摘要提到技能名字或曾经加载成功,都不能单独证明完整正文仍在上下文中。技能引用的资料是否被读取,不影响主正文的完整性判断。

加载记录中的资源指引不一定包含准确的源文件路径。只有当前技能目录提供明确路径时,插件才核查文件是否存在;该结果展示在「当前目录来源」下。

## 本地开发

安装依赖后可运行语法检查和测试。

```sh
pnpm run check
pnpm test
```

`pnpm test` 会先构建,再运行测试。`pnpm pack` 也会通过 `prepack` 自动构建。构建本项目不会自行更新正在运行的 DSH 页面。

`lib/` 的构建产物随仓库提交,请勿删除或忽略。pnpm 安装 git 来源的依赖时,会检查 `main` 指向的 `lib/index.js` 是否存在:不存在就判定该包需要执行构建脚本,从而要求 `allowBuilds` 授权;存在则直接跳过构建阶段。因此保留 `lib/` 是从 GitHub 安装无需构建授权的前提,`prepack` 仍然保留,用于发布 npm 包时重新构建。

改动 `src/` 后请运行 `pnpm run build` 并提交更新后的 `lib/`。[测试](<./test/lib-sync.test.mjs>)会比对 `lib/` 与当前源码的构建结果,产物过期时会失败。

项目关闭自动补装 peer 依赖,DSH 宿主由目标运行环境提供。兼容版本以[包清单](<./package.json>)中的 `peerDependencies` 为准。

## 发布

推送 `v` 前缀标签即触发[发布工作流](<.github/workflows/release.yml>):核对标签与包版本、提取发布说明、检查已提交产物、运行语法检查与测试,全部通过后自动创建 GitHub Release。不附带压缩包。

发布前先在[更新日志](<./CHANGELOG.md>)写入该版本的段落,再提交 `lib/` 并推送标签。标签与 `package.json` 版本不一致,或更新日志缺少该版本段落时,工作流会在发布前失败。

```sh
git tag -a v0.1.3 -m "发布 v0.1.3"
git push origin v0.1.3
```

| 文件 | 用途 |
| --- | --- |
| [src/analyze.js](<./src/analyze.js>) | 正式加载识别、正文完整性核对、历史合并与计数 |
| [src/monitor.js](<./src/monitor.js>) | 会话观察、来源核查与长轮询 |
| [src/index.js](<./src/index.js>) | 宿主事件订阅与状态查询路由 |
| [src/client.jsx](<./src/client.jsx>) | 标题入口、右侧面板与版本切换 |
| [scripts/build.mjs](<./scripts/build.mjs>) | 构建宿主与 DSH 客户端模块 |
| [scripts/release-notes.mjs](<./scripts/release-notes.mjs>) | 按包版本从更新日志提取 Release 正文 |
| [lib/](<./lib>) | 随仓库提交的构建产物,使 git 安装无需构建授权 |

## 项目文档

- [术语表](<./CONTEXT.md>):项目术语与需求约定。

## 许可证

本项目采用 [MIT 许可证](<./LICENSE>),Copyright (c) 2026 yuhong。

Install

dsh plugin --profile web add github:yuhhhong/dsh-skill-status

Profile: web

  • This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source