dsh-lifecycle-inspector: DeepSeek Harness 插件生命周期诊断工具

前言

DeepSeek Harness (DSH) 采用 “Effects” 机制管理插件生命周期,允许插件随其所有者一同销毁。这种机制在处理资源清理时非常强大,但在插件加载失败、处于挂起状态或卸载缓慢时,通过原始日志排查具体问题非常困难。

dsh-lifecycle-inspector 是一个独立构建的社区插件,旨在将 DSH 内部的生命周期状态转化为操作员友好的仪表盘和简洁的诊断命令,帮助开发者快速定位问题。

这是什么

dsh-lifecycle-inspector 是一个 DeepSeek Harness 插件,用于可视化 Cordis Effects 的生命周期诊断、检查插件健康状态以及验证 Teardown 清理过程。

  • 维护者: Rex16200513
  • 许可证: MIT License
  • 定位: 独立社区插件,专门为 DSH 设计,遵循 DSH 的插件优先架构,通过观察现有 Cordis 生命周期而非修改 Agent 循环来工作。

核心功能

该插件提供以下能力:

  1. 原生 DSH Web 仪表盘: 在 Settings → Plugins → Lifecycle 中提供健康总览、搜索、仅显示问题项的过滤、刷新以及可展开的 Effect 详情。
  2. 可读的生命周期报告: 将底层的 Effect 标签归类为服务、事件监听器、命令、工具、子插件和清理敏感资源。
  3. Fiber 健康信号: 高亮显示失败的、挂起的和卸载中的插件,并区分活跃、禁用、已销毁和未挂载的条目。
  4. Teardown 观察: 记录最近的 Fiber 转换,并标记超过可配置阈值的清理操作。
  5. Agent 可诊断性: 暴露只读的 lifecycle_inspect 工具,同时支持 /lifecycle 命令。
  6. 生命周期安全实现: 插件本身的命令、工具、事件监听器、HTTP 路由、本地化和 UI 槽位都注册为可销毁的 Effects。
  7. 双语支持: UI 和文档支持英语和中文,跟随 DSH 的当前语言环境。

安装与启用

安装前请确保环境满足要求:
* DSH Web profile
* Node.js ^22.19.0 || >=24.0.0

使用以下命令安装:

dsh plugin --profile web add github:Rex16200513/dsh-lifecycle-inspector

安装完成后,重启 DSH Web 进程,并在 Settings → Plugins → Lifecycle 中找到该插件。

使用方法

插件提供命令行工具和 Agent 工具两种方式。

命令行

/lifecycle list
/lifecycle list --verbose
/lifecycle inspect lifecycle-inspector
/lifecycle inspect <plugin-id> --verbose
  • list:提供简短的健康摘要。
  • inspect:接受 loader 路径、配置的入口 ID、完整包名或不带 dsh- 前缀的包名。仅在需要精确 Effect 标签时添加 --verbose。

Agent 工具

Agent 可以调用只读的 lifecycle_inspect 工具,该工具接受一个可选的 plugin 参数,用于观察运行时状态,不会卸载或修改插件。

配置说明

插件通过 DSH patch 安装,包含以下默认配置:

- insert:
    - id: lifecycle-inspector
      name: dsh-lifecycle-inspector
      config:
        slowTeardownMs: 2000
        historyLimit: 100
  • slowTeardownMs: 控制何时将观察到的 teardown 报告为慢速。
  • historyLimit: 限制保留在内存中的 Fiber 转换历史记录数量。

适用范围与限制

该插件验证的是 Cordis Effects 树是否被清理,即 Cordis 完成了它管理的每个注册销毁器的清理。它不能证明插件没有创建 DSH 之外的进程、定时器、套接字、观察者或其他资源。

虽然外部资源探测是自然的功能扩展方向,但它们应保持为独立的提供者:核心检查器应保持只读,并报告权威的 Cordis 状态。

结语

dsh-lifecycle-inspector 提供了从内部视角审视 DSH 插件生命周期的能力,适合需要严格监控资源清理过程的开发者使用。其文档和 UI 的双语特性降低了使用门槛。

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

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

小夜