前言¶
在 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 脚本。
核心功能¶
只读聚合¶
下面介绍插件实际会读什么、明确不做什么。
- DSH 定时指令:通过当前 Host 的
schedule.list({ limit: 150, offset: 0 })读取一页有界结果;读操作不会激活 Sessions。 - macOS LaunchAgents:在当前用户 LaunchAgents 范围内采集有界元数据。
- Codex:仅支持 version-1 自动化定义的保守 TOML 子集,非完整 TOML 解析器。
- 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,不替换既有任务中心插件。
典型用法¶
经过上面的步骤完成安装并重启(若需要)后:
- 打开 DSH 桌面应用,进入 设置。
- 打开 本机任务总览(只读) 页面。
- 页面加载或点击 Refresh 时触发只读扫描,在表格中对照各来源的任务元数据与状态字段。
- 看到
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 安装后在设置中打开使用。