dsh-local-task-observer:DSH 桌面端本机任务只读总览

前言

在 macOS 上做智能体与自动化开发时,任务往往分散在多处:DSH 的定时指令、用户的 LaunchAgents、Codex version-1 定义,以及部分 Claude 相关目录。要判断「现在本机到底登记了哪些自动化、状态大致如何」,通常需要分别打开系统目录、查 launchd、或翻 DSH 调度界面,既不统一,也容易把「投递」「运行中」误解成「业务已完成」。

dsh-local-task-observer 是社区维护者 MatteoCui001 发布的 DSH 客户端插件(MIT,alpha),在官方 DeepSeek Harness 桌面应用里增加 设置 → 本机任务总览(只读) 入口,把上述来源的元数据聚合成一页只读视图,不执行任务、不调用模型、不访问外网。

这是什么

插件全名 dsh-local-task-observer,独立于官方 DSH 组件,也不是任务运行器或安全审计产品。当前发行版本为 0.1.0-alpha.1,仅通过 GitHub 分发;package 标记 private: true 仅为避免误发 npm,不影响 MIT 与源码再分发。

兼容性(资料原文要求,勿绕过版本门):

  • DSH:0.2.2-rc.1(仅此版本,不宣称兼容其它 DSH)
  • Node.js:24+
  • 平台:仅 macOS

Plain ESM,零依赖,无 install/build 脚本。

核心功能

只读聚合

下面介绍插件实际会读什么、明确不做什么。

  1. DSH 定时指令:通过当前 Host 的 schedule.list({ limit: 150, offset: 0 }) 读取一页有界结果;读操作不会激活 Sessions。
  2. macOS LaunchAgents:在当前用户 LaunchAgents 范围内采集有界元数据。
  3. Codex:仅支持 version-1 自动化定义的保守 TOML 子集,非完整 TOML 解析器。
  4. Claude 候选目录:仅识别资料中明确列出的候选路径;普通 Claude 任务不按调度任务处理,schema 尚未独立核验,相关项多为 partial / 运行状态 unknown。

不会创建、编辑、启动、暂停或投递任务;不会执行定义中的程序、命令参数或 shell;不会使用 agent 工具、提示注入、模型调用、遥测、SSH、外部网络或后台轮询;不会写入任务文件或持久化快照。浏览器侧请求仅发往已鉴权的本地应用。

解析手段固定为 plutil 与 launchctl print,不跑定义里的可执行体。

状态字段怎么理解

页面上看到的 loaded、active、paused、ended、running 等是观测描述,不是「输出有效」或「业务完成」的证明。DSH inbox 的「最后投递」字段是收件回执,不是最后一次成功运行。插件不从日志、mtime 或 JSON 日期推断执行成功,本地来源也不算「下次运行时间」。

状态或字段 含义
ok 在扫描边界内读到了受支持的元数据;不表示工作一定成功
empty 枚举了受支持来源但未发现定义;缺源或截断不会标 empty
partial 覆盖或元数据不完整、未验证、截断或部分失败
unavailable 无法读取、缺失或扫描超时;不表示零任务
unsupported 平台或格式不支持,不做猜测
unknown / null 无受支持观测;未知退出码不是 0 或成功

未知不等于零,投递不等于执行,更不等于完成。

隐私与请求边界

唯一数据接口为本机 owner 鉴权下的 GET /api-ext/dsh-local-task-observer/v1/snapshot。非 owner、跨站、非 GET 或带 query 的请求会被拒绝,不面向远程共享或反代滥用。

不枚举原始 session、鉴权文件或业务数据目录;有界定义文件与子进程输出在内存中解析,提示词、命令参数、环境变量、路径、原始错误等非白名单字段不返回、不持久化。标题以 React 文本展示,不是 HTML 脱敏系统,任务名仍可能敏感。

打开页面或点刷新会触发一次读取;并发 HTTP 共享同一次扫描。内存缓存 5 秒 复用 TTL(旧快照可能仍在内存直至替换)。全扫描响应截止时间 8 秒;本地采集单操作/子进程约 1.5 秒 有界,顺序遍历,文件与行数上限分别为 100 与 150。取消浏览器请求不会取消共享扫描;Host 的 schedule.list 无取消参数。

插件复用官方 settings 插槽、Host 主题、locale 与 Host React 运行时,无需独立服务或 bundled React。

安装与启用

发布 tag 可用后,在 DSH 插件管理器中使用资料给出的 GitHub tag 规格(勿手写其它 install 形式):

{
  "action": "install_bundle",
  "target": "github:MatteoCui001/dsh-local-task-observer#v0.1.0-alpha.1"
}

这是安装目标说明,不表示 tag 已存在或你本机一定安装成功;以管理器返回结果为准,若提示需重启则按官方流程操作。禁用或移除亦通过同一管理器完成,不要手改 active profile、另起服务或申请版本豁免。

安装后入口为 设置 → 本机任务总览(只读)(英文界面为 Settings → Local task observer)。命名空间为独立的 dsh-local-task-observer,不替换既有任务中心插件。

典型用法

经过上面的步骤完成安装并重启(若需要)后:

  1. 打开 DSH 桌面应用,进入 设置。
  2. 打开 本机任务总览(只读) 页面。
  3. 页面加载或点击 Refresh 时触发只读扫描,在表格中对照各来源的任务元数据与状态字段。
  4. 看到 partial、unavailable、unsupported 时,按 README 语义理解为覆盖缺失或格式不支持,不要当成「没有任务」。

仓库维护者自检(需 Node.js 24+,在仓库根目录执行,仅供核对语法与合成测试):

node --check index.js
node --check client.js
node --test test/*.test.mjs

资料注明:新公共命名空间尚未在真实环境完成 live 安装验收;合成测试不能替代完整 UI、浏览器鉴权与长期 native 资源稳定性验证。

适用场景与注意

适合谁:

  • 已在 DSH 0.2.2-rc.1 + macOS + Node 24+ 环境使用官方桌面 Harness 的开发者,需要在一屏内对照 DSH 调度与本机 LaunchAgents / Codex / Claude 候选目录的只读元数据。
  • 希望明确边界、不接受插件代为「启停任务」或调用模型的团队。

务必注意:

  • 插件以当前 DSH 进程权限运行;安装前请自行阅读 GitHub 源码 与 MIT 许可证,alpha 阶段不代表完整安全审计。
  • 仅 macOS;其它 DSH 版本不要强行安装。
  • Claude 与 Codex 支持范围刻意保守,界面上的 unknown 应保留为未知,不要自行脑补执行结果。

DeepSeek Harness 生态遵循「一切皆插件」;社区目录站 SkillHub 插件页 为独立收录,与 DeepSeek / 幻方无官方从属关系,本文亦不代表官方背书。

结尾

dsh-local-task-observer 把分散的本机自动化元数据收成一页只读总览,并反复强调观测与执行、完成之间的界限。若你的环境符合版本与平台约束,可通过插件管理器按 tag 安装后在设置中打开使用。

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

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

小夜