任务提醒收件箱 Oscar-Williams/dsh-deepcanary
DeepSeek Harnessv0.1.6-rc.4任务安心运行,需要处理时及时提醒,回来后直接找到正确会话。
55.9/100
综合分
90
GitHub 星标
535
npm 周下载
—/5
用户评分
数据截至 2026/10/19 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-deepcanarynpm 源 · dsh-deepcanary 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · ui
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 15 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-deepcanary @ 0.1.6-rc.4
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/2 08:38:01
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 46 处,展示前 43 条)
- 发起网络请求lib/client.js:81
return fetch(path, { cache: "no-store", ...init }); - 发起网络请求lib/client.js:853
return await rendererCapabilities.request(path, init); - 发起网络请求lib/client.js:928
const response = await rendererCapabilities.request("/api/dsh-deepcanary/state", { - 读取本地文件lib/outcome.js:252
const raw = JSON.parse(await readFile(this.file, 'utf8')); - 写入本地文件lib/outcome.js:268
await mkdir(this.directory, { recursive: true }); - 写入本地文件lib/outcome.js:270
await writeFile(temporary, `${JSON.stringify(payload, null, 2)}\n`, 'utf8'); - 写入本地文件lib/outcome.js:271
await rename(temporary, this.file); - 读取本地文件lib/dogfood.js:309
const raw = JSON.parse(await readFile(this.file, 'utf8')); - 写入本地文件lib/dogfood.js:408
await mkdir(this.directory, { recursive: true }); - 写入本地文件lib/dogfood.js:410
await writeFile(temporary, `${JSON.stringify(this.bundleValue, null, 2)}\n`, 'utf8'); - 写入本地文件lib/dogfood.js:411
await rename(temporary, this.file); - 读取本地文件lib/supervisor.js:200
raw = JSON.parse(await readFile(this.snapshotFile, 'utf8')); - 读取本地文件lib/supervisor.js:247
raw = JSON.parse(await readFile(this.leaseFile, 'utf8')); - 写入本地文件lib/supervisor.js:270
await mkdir(this.directory, { recursive: true }); - 写入本地文件lib/supervisor.js:272
await writeFile(this.leaseFile, `${JSON.stringify(lease, null, 2)}\n`, { encoding: 'utf8', flag: 'wx' }); - 写入本地文件lib/supervisor.js:298
await rename(this.leaseFile, `${this.leaseFile}.stale-${suffix}`); - 删除本地文件lib/supervisor.js:314
await unlink(this.leaseFile); - 读取本地文件lib/supervisor.js:326
const entries = await readdir(this.directory, { withFileTypes: true }); - 读取本地文件lib/supervisor.js:332
total += (await stat(path.join(this.directory, entry.name))).size; - 写入本地文件lib/supervisor.js:345
await mkdir(this.directory, { recursive: true }); - 写入本地文件lib/supervisor.js:348
await writeFile(temporary, body, 'utf8'); - 写入本地文件lib/supervisor.js:349
await rename(temporary, file); - 读取本地文件lib/supervisor.js:374
const lockStat = await stat(this.lockFile); - 删除本地文件lib/supervisor.js:376
await unlink(this.lockFile); - 删除本地文件lib/supervisor.js:395
await unlink(this.lockFile); - 写入本地文件lib/state-identity.js:17
await mkdir(identity.directory, { recursive: true }); - 写入本地文件lib/state-identity.js:20
await writeFile(file, JSON.stringify({ schemaVersion: 1, owner: identity.owner }), { flag: 'wx', mode: 0o600 }); - 读取本地文件lib/state-identity.js:25
const existing = JSON.parse(await readFile(file, 'utf8')); - 读取本地文件lib/state-identity.js:37
await readFile(marker); - 读取本地文件lib/state-identity.js:45
await readFile(target.file); - 写入本地文件lib/state-identity.js:59
await writeFile(marker, JSON.stringify({ schemaVersion: 1, importedAt: new Date().toISOString() }), { flag: 'wx', mode: 0o600 }); - 读取本地文件lib/settings-migration.js:34
await stat(marker); - 读取本地文件lib/settings-migration.js:45
if ((await stat(file)).size > 1024 * 1024) - 读取本地文件lib/settings-migration.js:47
const document = record(load(await readFile(file, 'utf8'), { schema: JSON_SCHEMA })); - 写入本地文件lib/settings-migration.js:70
await writeFile(marker, JSON.stringify({ schemaVersion: 1, importedAt: new Date().toISOString() }), { flag: 'wx', mode: 0o600 }); - 读取本地文件lib/persistence.js:144
const raw = JSON.parse(await readFile(this.file, 'utf8')); - 写入本地文件lib/persistence.js:163
await mkdir(this.directory, { recursive: true }); - 写入本地文件lib/persistence.js:165
await writeFile(temporary, `${JSON.stringify(payload, null, 2)}\n`, 'utf8'); - 写入本地文件lib/persistence.js:166
await rename(temporary, this.file); - 读取本地文件lib/persistence.js:179
const raw = JSON.parse(await readFile(this.file, 'utf8')); - 写入本地文件lib/persistence.js:195
await mkdir(this.directory, { recursive: true }); - 写入本地文件lib/persistence.js:197
await writeFile(temporary, `${JSON.stringify(payload, null, 2)}\n`, 'utf8'); - 写入本地文件lib/persistence.js:198
await rename(temporary, this.file);
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-api-session-controller@deepseek-ai/dsh-client-connection@deepseek-ai/dsh-client-ui-session@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-settings-plugins@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-session@deepseek-ai/dsh-settings给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
界面预览
1 张 · 点击查看大图功能亮点
- 任务需要时及时提醒
- 本地提醒与静默通知
- 任务收件箱
DeepSeek Harness 任务需要你时及时提醒。本地提醒、静默通知,还有任务收件箱。
最近更新
在 GitHub 查看全部 →v0.1.6-rc.42026-10-18预发布
DeepCanary 0.1.6-rc.4 在已发布的 DSH 0.2.1-rc.2 上,把后台任务和定时跟进并入现有任务收件箱。
· 跟踪自己名下的后台任务,识别进度,并在插件替换后收集错过的结果。后台失败会回到所属会话。
· 设置 5、15、30 或 60 分钟的提醒。查看定时任务,改时间或恢复为待处理。
· 日常运行中保留去重、滚动通知预算和投递声明。先持久化声明,再授权构建通知。
· 给权威的 C3 升级一次新的投递机会。已关闭的条目保持关闭,拒绝过期声明和回调。
· 保存的元数据缺少计数或时长时,历史提醒文案仍要可读。分组通知原因使用同样的事实摘要。
· 设置里的保存按钮在浅色和深色主题下都要清晰可辨。
· 更新高峰时优先处理人工等待和定时任务。限制通知派发,说明投递尝试耗尽的原因,同时保留待处理条目。
验证包括 258 项测试、已发布的 Host 契约、十二个用例的安全回放,以及安装包的 Windows Edge 检查。GitHub 和 npm 使用同一份归档。
这是 RC 版。通知需要运行中的 Host 和渲染器、相应权限以及合适的系统设置。原生桌面窗口唤起和应用退出后的投递要等 Host 公开相应能力。Supervisor 仍为实验性,默认关闭。
在 WebUI 上安装:
dsh plugin --profile web add dsh-deepcanary@0.1.6-rc.4 --registry=
桌面安装用「插件 → 添加插件」,选择附带的 tgz。按官方管理器的激活说明操作。README 涵盖更新、卸载、设置和兼容性。
latest 和 next 都指向这个候选版本。用附带的 SHA256SUMS 校验归档。
v0.1.4-rc.12026-10-02预发布
DeepCanary 帮你留意 DeepSeek Harness 任务何时需要关注,让正常的工作保持安静,并回到正确的任务。
本次候选版本面向 DSH 0.2.0-rc.2(639ed015397290b3745d163aafe02ffee4aa3f84)。
变更:
· 所有插件 HTTP 贡献统一走公开的 Connection API 认证,移除旧路由,限制流式写入并清理响应。
· 保留带修订围栏的设置,以及可靠的问题、并行工具、恢复与完成摘要行为。
· 把完成摘要返回到经公开目录校验的精确保留会话。
· 改进不透明浅色/深色收件箱界面、布局、键盘操作与窄面板。
· 修复来源归属、反馈聚合与独立离线评估;记录当前安装与配置档工作流。
验证:210 项测试、源码/测试/Host 类型、锁定的 Session/Settings/Connection 契约、12 次安全回放,以及把这份冻结归档逐字节安装到 Windows Web 与 Desktop 配置档。Web 服务端客户端字节与冻结客户端一致;Desktop 设置持久化,收件箱回到匹配的保留会话。
范围:这是 RC。Windows Toast 投递与通知驱动的隐藏窗口唤醒仍未验证。自然证据不足以做跨工作日校准;阈值未变,选择性 Judge 没有合格案例,Supervisor 仍为实验性且默认关闭。
用 DSH 官方插件管理器安装。Web 命令行用户可运行:
dsh plugin --profile web add dsh-deepcanary@0.1.4-rc.1
Desktop 用户可通过 Plugins → Add plugin 添加本版本的 tgz,然后完全退出并重新打开应用。设置与更新说明见 README。
源码提交:1e56777aa55585bed945e690223c4de140745bed
归档 SHA-256:07d1b0777276b079979af520a86f959c554775f30121115e96ed169505523176
归档大小:300113 字节
v0.1.1-rc.62026-09-06预发布
· DeepCanary v0.1.1-rc.6
更新了 DeepCanary 的指南和统一的安装说明。DeepCanary 是 DeepSeek Harness 的本地任务关注收件箱。
· 改进内容
· npm 包现在包含更新的英文和简体中文 README,导航清晰,附有更新/卸载说明、故障排查常见问题和致谢。
· 安装指南统一覆盖默认通道、预览通道、固定版本和 DSH 源码检出。
· 贡献者工具会对照 lockfile 检查已安装依赖,选择特定版本的冻结产物,并防止误将已发布版本重新打包。
除插件版本号外,运行时行为与 RC5 一致。已安装 RC5 的用户无需为运行时修复紧急升级。
· 安装或更新
终端中已安装并可用 DSH 时:
dsh plugin --profile web add dsh-deepcanary@latest
dsh web
如需固定安装,使用 dsh-deepcanary@0.1.1-rc.6 或附带的 .tgz。npm 的 latest 和 next 均指向 RC6。已有安装不会自动更新;重启 DSH 前请先完成进行中的任务。
使用 DSH 源码检出?在该检出目录下运行命令,并加上 npx --yes pnpm@11.7.0 前缀。参见英文指南或简体中文。
· 兼容性与限制
DSH 0.1.2-alpha.5 仍是构建/CI 基线。DSH 0.1.3-alpha.1 有单独的早期兼容性覆盖。宿主要求 Node.js 22.19+(22.x 系列内),或 Node 24 及更新版本。
这仍是预发布版。Persistent Supervisor 为实验性功能,默认关闭。此前 Windows/Edge 通知的观察结果仍归因于 RC4;RC6 未新增桌面设备、WSL2 或长时间运行的资格验证。参见兼容性。
本次发布的源码 · 完整更新日志
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。
README
由 DeepSeek 最新模型翻译生成DeepCanary
任务安心运行,需要处理时及时提醒,回来后直接找到正确会话。
English · 简体中文 · 文档 · 更新记录
DeepCanary 为 DeepSeek Harness 提供本地任务收件箱,将提问、审批、异常和完成摘要集中呈现,并通过通知预算、合并与去重减少打扰。
当前发布候选为 0.1.6-rc.4。 宿主基线为已发布的 DSH 0.2.1-rc.2,覆盖 WebUI 与官方 Windows Desktop。安装包见 npm 和 GitHub Releases,latest 与 next 均指向此 RC。
本版加入后台任务持续跟踪、重载补收、待办优先排序和反馈处理闭环。后台失败可从收件箱返回所属会话,健康任务保持安静。
选择稍后提醒的时间后,可在收件箱查看安排、改期或恢复待办。各次安排分别跟踪,到期后遵循当前通知策略;普通动态集中到来时,人工等待和已安排的事项优先保留。
DeepCanary 收件箱
安装
Desktop
从发布资产下载 dsh-deepcanary-0.1.6-rc.4.tgz 和 SHA256SUMS。在 DSH 的“插件 → 添加插件”中通过官方管理器选择本地 tgz,按界面提示启用。需要重启时先保存进行中的工作。桌面版通过应用管理自己的 profile 与插件。
展开完整文档(README 剩余 1 节)
DeepCanary 任务安心运行,需要处理时及时提醒,回来后直接找到正确会话。 English · 简体中文 · 文档 · 更新记录 DeepCanary 为 DeepSeek Harness 提供本地任务收件箱,将提问、审批、异常和完成摘要集中呈现,并通过通知预算、合并与去重减少打扰。 当前发布候选为 0.1.6-rc.4。 宿主基线为已发布的 DSH 0.2.1-rc.2,覆盖 WebUI 与官方 Windows Desktop。安装包见 npm 和 GitHub Releases,latest 与 next 均指向此 RC。 本版加入后台任务持续跟踪、重载补收、待办优先排序和反馈处理闭环。后台失败可从收件箱返回所属会话,健康任务保持安静。 选择稍后提醒的时间后,可在收件箱查看安排、改期或恢复待办。各次安排分别跟踪,到期后遵循当前通知策略;普通动态集中到来时,人工等待和已安排的事项优先保留。 DeepCanary 收件箱 安装 Desktop 从发布资产下载 dsh-deepcanary-0.1.6-rc.4.tgz 和 SHA256SUMS。在 DSH 的“插件 → 添加插件”中通过官方管理器选择本地 tgz,按界面提示启用。需要重启时先保存进行中的工作。桌面版通过应用管理自己的 profile 与插件。 WebUI 使用 DSH 0.2.1-rc.2,在明确的 Web profile 中安装: dsh --version dsh plugin --profile web add dsh-deepcanary@0.1.6-rc.4 --registry=https://registry.npmjs.org/ dsh web 通过 npm 运行宿主时,可以在每条命令前加 npx --yes --package=@deepseek-ai/dsh@0.2.1-rc.2。例如: npx --yes --package=@deepseek-ai/dsh@0.2.1-rc.2 dsh web 打开 DSH 输出的认证地址。已构建的源码检出可使用其文档规定的 pnpm dsh 入口,并遵循该检出的包管理器版本。 使用已校验的 GitHub 压缩包安装时,填写本地文件路径: dsh plugin --profile web add ./dsh-deepcanary-0.1.6-rc.4.tgz --registry=https://registry.npmjs.org/ 更新与卸载 优先使用官方管理器提供的更新操作。当前管理器可能拒绝重复安装已存在的组合包;此时先在管理器中移除该包,再安装替换包。按实际生效或重启提示处理,并确认加载版本。 Web CLI 将包操作转交 pnpm。更新 Web 时,执行上方指定版本的安装命令,完成当前工作后停止对应 Web 宿主,重新执行 dsh web 并刷新页面,确认实际加载版本。卸载 Web profile 中的插件: dsh plugin --profile web remove dsh-deepcanary 会话和配置由 DSH profile 管理。改变宿主进程前先保存当前工作。 使用 1. 从 DSH 侧栏打开 DeepCanary。 2. 在 DSH“设置 → 内置插件 → DeepCanary”中调整提醒级别、每小时打断预算和静默时段。 3. 按需启用浏览器通知,然后正常运行任务。 4. 从收件箱返回对应会话、查看依据、稍后处理或提供明确反馈。 | 级别 | 含义 | 行为 | | C1 | 建议查看 | 正常结果和完成摘要保留在收件箱 | | C2 | 需要关注 | 异常和可能的停滞按策略提醒 | | C3 | 需要及时处理 | 活跃提问、审批或阻塞须有宿主权威事实 | 相关事件会合并并去重。健康长工具享有有界进展宽限;异步问题超时后仍可回答,宿主正式接纳答案后闭合。完成摘要在恢复和重载后保留。停止任务保留其状态,分叉历史保持安静。 后台任务运行期间显示活动数量,进展恢复后闭合原停滞提醒。实时观察中,结果尚待接收的任务在正常完成时进入 C1,执行失败时进入 C2;已被接收的结果和主动取消保持安静。回复结束后仍有后台工作时,摘要会明确说明。重载可恢复跟踪并补收缺失的观察,补收摘要会标明恢复背景;原先的结果接收情况及宿主无法确认的任务保留待确认状态。 收件箱按处理优先级排列,紧急提醒、提问和审批优先呈现,其余动态可以继续展开。“问题已解决”会记录反馈,并将该条提醒标记为已处理;后续新的提问继续遵循独立的提醒生命周期。 “稍后提醒”可选择5、15、30或60分钟,已安排事项显示恢复时间,并支持查看、改期与恢复待办。到期后,C1回到收件箱,C2遵循静默时段和滚动预算,C3需要当前权威依据;已解决或确认处理的事项保持闭合。本地profile保存去重记录、通知预算与发送状态,供插件重载后继续使用。实际送达取决于设备设置和应用生命周期。 面板使用不透明的深浅色表面,支持缩放、键盘及展开依据。返回操作通过 DSH 的公开会话目录确认目标。目标失效时保留摘要并说明当前可用性。 设置通过宿主配置服务持久化。并发修改产生冲突时保留草稿,放弃草稿后读取当前宿主值。插件替换会等待提醒状态写入结束,随后再读取新实例状态。 隐私 提醒状态保存在本地 profile,仅包含有界元数据、哈希引用、明确反馈和必要的本地会话导航句柄。会话原文、提示词、模型输出、工具参数和凭据由原有宿主服务管理。 HTTP 接口继承宿主认证及 Host/Origin 检查,限制 JSON 大小并使用脱敏错误。反馈按需提供,提醒是否有用由明确反馈表达。详见安全说明和反馈校准。 兼容性与限制 - 通知依赖持续运行的宿主和渲染页面、浏览器权限及操作系统设置;实际送达和点击结果需要设备观察。 - 桌面端共用核心、设置和收件箱;原生窗口唤回及渲染页面之外的通知需要宿主进一步提供公开能力。 - 设备验证面向 Windows WebUI 与 Desktop;CI 覆盖其列出的系统源码检查。 - Supervisor 为实验能力,默认关闭,其本地投影随所属宿主进程运行。 - 实时提醒采用确定性规则,真实反馈和独立评估用于改进后续策略。 更多信息见兼容说明、发展路线、开发、架构和参与贡献。 许可证 MIT。通过 DeepSeek Harness 的公开插件接口构建。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Oscar-Williams/dsh-deepcanary
任务安心运行,需要处理时及时提醒,回来后直接找到正确会话。
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,804已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,344已汉化DSH
71.5
终端编码代理esengine/DeepSeek-Reasonix
· 指南 · ACP · 扩展开发 · 规格 · 官方网站 · Discord · QQ
★ 36,045已汉化DSH
71.2
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 151,202已汉化DSH
71.1