{"schemaVersion":2,"dataVersion":"20260822T105549Z-0a0b366f","generatedAt":"2026-08-22T10:55:49.138Z","source":{"id":"whyihaveyou-dsh-suite-plugin-notify","slug":"whyihaveyou-dsh-suite-plugin-notify","rank":109,"url":"https://github.com/whyihaveyou/dsh-suite/tree/main/packages/plugins/plugin-notify","name":"whyihaveyou/dsh-suite#plugin-notify","category":"notify","description":{"zh":"回合完成、错误或待审批时推送 IM webhook（飞书/企微/钉钉/Slack/Discord/自定义）与本地通知。","en":"IM webhook and local notifications on turn completion, errors, or approval (Feishu/WeCom/DingTalk/Slack/Discord/custom)."},"stars":43,"starsCheckedAt":"2026-08-21","repository":{"owner":"whyihaveyou","repo":"dsh-suite","requestedRef":"main","subpath":"packages/plugins/plugin-notify"},"npm":null,"downloads":null,"installMode":"github-source","upstreamInstall":"dsh plugin --profile web add github:whyihaveyou/dsh-suite#path:/packages/plugins/plugin-notify","tarball":null,"added":"2026-08-14","page":"https://awesome-dsh-plugin.com/p/whyihaveyou/dsh-suite--packages-plugins-plugin-notify/","screenshots":[],"discovery":{"provider":"awesome-dsh-plugin","channel":"plugins.json","indexUrl":"https://github.com/awesome-dsh-plugin/awesome-dsh-plugin","selection":"all curated entries"}},"report":{"sourceId":"whyihaveyou-dsh-suite-plugin-notify","slug":"whyihaveyou-dsh-suite-plugin-notify","policyVersion":"HT-DSH-0.2.2","scannedAt":"2026-08-22T08:20:54.325Z","scanStatus":"static-complete","verdict":"pass","score":99,"commit":"c431ceacf851a46807afb776bb7855a466424b53","commitDate":"2026-08-22T07:47:14Z","artifactDigest":"sha256:e37f512eb4a78fe1d922534ad959cd7f642666a176dc4e3aa8197a90c09878ac","downloadUrl":"https://github.com/whyihaveyou/dsh-suite/archive/c431ceacf851a46807afb776bb7855a466424b53.tar.gz","installMode":"github-source","installCommand":"dsh plugin --profile web add github:whyihaveyou/dsh-suite#path:/packages/plugins/plugin-notify","manifest":{"found":true,"path":"package.json","parseError":null,"packageName":"@dsh-suite/plugin-notify","packageVersion":"0.2.0","bundle":{"patch":"./cordis.patch.yml"},"client":null,"lifecycleScripts":{},"peerDependencies":["@deepseek-ai/cordis","@deepseek-ai/dsh-session"]},"identity":{"status":"found","installMode":"github-source","upstreamNpm":null,"manifestName":"@dsh-suite/plugin-notify","nameMatch":null,"npm":{"name":"@dsh-suite/plugin-notify","latestVersion":"0.2.0","publishedAt":"2026-08-16T10:17:59.560Z","createdAt":"2026-08-13T15:16:33.482Z","versionCount":2,"maintainers":1,"repository":null,"hasInstallScripts":false,"deprecated":false},"repositoryMatch":"missing","provenance":"none","tarballHost":null,"versionMatch":"match"},"permissions":{"bundlePatch":"cordis.patch.yml","inserts":[{"id":"plugin-notify","name":"@dsh-suite/plugin-notify","path":"cordis.patch.yml","disabled":false}],"overrides":[],"jsExpressions":0,"clientPlatform":null,"parseErrors":[]},"capabilities":["credentials","host-bundle","network","session","subprocess"],"outboundHosts":[],"findings":[{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"src/index.ts","pathClass":"source","line":1,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"165497e2a6660ef29786eb22"}],"counts":{"critical":0,"high":0,"medium":0,"low":1},"rawCounts":{"critical":0,"high":0,"medium":0,"low":1},"vulnerabilities":[],"coverage":{"source":"complete","manifest":"complete","bundleConfig":"complete","dependencies":"lockfile-missing","vulnerabilities":"lockfile-missing","identity":"complete","artifact":"not-compared","llmReview":"not-needed","dynamicRuntime":"not-run","humanReview":"not-run"},"inventory":{"filesScanned":5,"bytesScanned":19610,"truncated":false,"lockfiles":[],"pathClasses":{"markdown":1,"cordis":1,"manifest":1,"source":1,"data":1}},"limitations":["此结果为源码静态检测，不等同于无漏洞证明。","尚未比对 npm 发布包与源码的一致性，也未执行隔离运行和人工复核。","危险能力可能是插件功能所需，需结合用途与证据人工判断。"],"limitationKeys":["static-analysis-only","no-artifact-runtime-human-review","capability-needs-context"]},"timeline":[{"scannedAt":"2026-08-22T08:20:54.325Z","commit":"c431ceacf851a46807afb776bb7855a466424b53","policyVersion":"HT-DSH-0.2.2","verdict":"pass","status":"static-complete"},{"scannedAt":"2026-08-21T11:19:44.172Z","commit":"d3acd0df21194cc1872c09fac7f9a288f15ce113","policyVersion":"HT-DSH-0.2.1","verdict":"pass","status":"static-complete"},{"scannedAt":"2026-08-21T10:47:37.319Z","commit":"935a38bbb56ff1f4fb4dd1df390dcce78d517709","policyVersion":"HT-DSH-0.2.0","verdict":"pass","status":"static-complete"}],"events":[{"kind":"policy-change","from":"HT-DSH-0.2.1","to":"HT-DSH-0.2.2","commit":"c431ceacf851a46807afb776bb7855a466424b53","policyVersion":"HT-DSH-0.2.2","at":"2026-08-22T08:20:54.325Z"},{"kind":"policy-change","from":"HT-DSH-0.2.0","to":"HT-DSH-0.2.1","commit":"d3acd0df21194cc1872c09fac7f9a288f15ce113","policyVersion":"HT-DSH-0.2.1","at":"2026-08-21T11:19:44.172Z"},{"kind":"first-scan","from":null,"to":"pass","commit":"935a38bbb56ff1f4fb4dd1df390dcce78d517709","policyVersion":"HT-DSH-0.2.0","at":"2026-08-21T10:47:37.319Z"}]}