upstream-radar 0.22.0 → 0.22.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -3
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/docs/README.zh-CN.md +12 -4
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -195,21 +195,29 @@ If your team wants a scheduled CI gate before wiring a machine to a live DSH pro
|
|
|
195
195
|
```yaml
|
|
196
196
|
steps:
|
|
197
197
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
198
|
-
- uses: MicroMilo/upstream-radar@v0.22.
|
|
198
|
+
- uses: MicroMilo/upstream-radar@v0.22.1
|
|
199
199
|
with:
|
|
200
200
|
config: upstream-radar.config.json
|
|
201
201
|
fail-on: high
|
|
202
202
|
```
|
|
203
203
|
|
|
204
|
-
The Action is a thin wrapper around `radar check --frozen --state :memory: --fail-on high --json`. `--frozen` is deliberate: it uses the graph in the reviewed config and does not try to read a developer's local DSH profile. Each run is independent, exits `2` when an active vulnerability meets the threshold, and exits `1` for an operational or source error. It does not deliver a DSH Agent task or modify a branch; the native DSH bundle remains the always-on analysis path. Pin the Action to a release tag such as `v0.22.
|
|
204
|
+
The Action is a thin wrapper around `radar check --frozen --state :memory: --fail-on high --json`. `--frozen` is deliberate: it uses the graph in the reviewed config and does not try to read a developer's local DSH profile. Each run is independent, exits `2` when an active vulnerability meets the threshold, and exits `1` for an operational or source error. It does not deliver a DSH Agent task or modify a branch; the native DSH bundle remains the always-on analysis path. Pin the Action to a release tag such as `v0.22.1`, and pin the checkout Action in your workflow according to your repository's policy.
|
|
205
205
|
|
|
206
206
|
The Action requires the caller to check out the repository first. It does not install the project's dependencies or run their lifecycle scripts; it only reads the committed graph and queries the configured upstream sources. For a fully explicit, lower-level invocation, the equivalent command is:
|
|
207
207
|
|
|
208
208
|
```bash
|
|
209
|
-
pnpm dlx --package=upstream-radar@0.22.
|
|
209
|
+
pnpm dlx --package=upstream-radar@0.22.1 upstream-radar radar check \
|
|
210
210
|
./upstream-radar.config.json --frozen --state :memory: --fail-on high --json
|
|
211
211
|
```
|
|
212
212
|
|
|
213
|
+
For a runnable consumer example using the real [`dsh-cloudflare-browser-run@0.1.1`](examples/github-actions/consumer/upstream-radar.config.json) graph, see the [consumer smoke README](examples/github-actions/consumer/README.md) and its [copyable workflow](examples/github-actions/consumer/upstream-radar.yml).
|
|
214
|
+
|
|
215
|
+
Run the same released Action locally from this repository with:
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
pnpm run try:consumer
|
|
219
|
+
```
|
|
220
|
+
|
|
213
221
|
For a local or self-hosted DSH machine, omit `--frozen` so Radar refreshes the selected profile before each cycle. Use `--fail-on` only with `radar check`, `radar status`, or `radar watch --once`; a long-running watch should continue routing incidents instead of terminating on the first one.
|
|
214
222
|
|
|
215
223
|
## How the loop works
|
|
@@ -307,6 +315,7 @@ Advisories, release notes, links, package names, and repository strings remain u
|
|
|
307
315
|
- automatic selection of the only DSH profile with third-party bundles, plus a network-free `radar status` snapshot;
|
|
308
316
|
- commit-friendly `init` output that records the project workspace as `.` by default;
|
|
309
317
|
- a reusable GitHub Action that turns the reviewed graph into a two-step, frozen CI gate;
|
|
318
|
+
- a real DSH plugin consumer smoke that runs the published Action against 18 exact package versions;
|
|
310
319
|
- an actionable, network-free `radar status` summary with exact active paths, candidate signals, and next steps;
|
|
311
320
|
- a network-free `doctor` command that checks local DSH registration, overlay/config alignment, state readability, and dependency coverage;
|
|
312
321
|
- compatibility signals for Node.js, peers, exports, entrypoints, bundle paths, dependencies, and version boundaries;
|
package/dist/src/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const TOOL_VERSION = "0.22.
|
|
1
|
+
export declare const TOOL_VERSION = "0.22.1";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/src/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const TOOL_VERSION = '0.22.
|
|
1
|
+
export const TOOL_VERSION = '0.22.1';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/docs/README.zh-CN.md
CHANGED
|
@@ -183,21 +183,29 @@ pnpm run try:dsh
|
|
|
183
183
|
```yaml
|
|
184
184
|
steps:
|
|
185
185
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
186
|
-
- uses: MicroMilo/upstream-radar@v0.22.
|
|
186
|
+
- uses: MicroMilo/upstream-radar@v0.22.1
|
|
187
187
|
with:
|
|
188
188
|
config: upstream-radar.config.json
|
|
189
189
|
fail-on: high
|
|
190
190
|
```
|
|
191
191
|
|
|
192
|
-
这个 Action 只是 `radar check --frozen --state :memory: --fail-on high --json` 的薄封装。`--frozen` 是有意的:它只使用配置文件里的依赖图,不会尝试读取 runner 上不存在的本地 DSH profile。每次运行彼此独立;达到阈值时返回 `2`,运行或漏洞源出错时返回 `1`。这个入口不会投递 DSH Agent 任务,也不会修改分支;需要持续监控和项目级分析时,仍使用原生 DSH bundle。建议把 Action 固定到类似 `v0.22.
|
|
192
|
+
这个 Action 只是 `radar check --frozen --state :memory: --fail-on high --json` 的薄封装。`--frozen` 是有意的:它只使用配置文件里的依赖图,不会尝试读取 runner 上不存在的本地 DSH profile。每次运行彼此独立;达到阈值时返回 `2`,运行或漏洞源出错时返回 `1`。这个入口不会投递 DSH Agent 任务,也不会修改分支;需要持续监控和项目级分析时,仍使用原生 DSH bundle。建议把 Action 固定到类似 `v0.22.1` 的发布标签,并根据团队策略固定 checkout Action。
|
|
193
193
|
|
|
194
194
|
调用方需要先 checkout 仓库。这个 Action 不会安装项目依赖,也不会执行项目的 lifecycle script;它只读取提交到仓库的依赖图并查询配置中的上游漏洞源。如果需要完全显式的底层命令,等价写法是:
|
|
195
195
|
|
|
196
196
|
```bash
|
|
197
|
-
pnpm dlx --package=upstream-radar@0.22.
|
|
197
|
+
pnpm dlx --package=upstream-radar@0.22.1 upstream-radar radar check \
|
|
198
198
|
./upstream-radar.config.json --frozen --state :memory: --fail-on high --json
|
|
199
199
|
```
|
|
200
200
|
|
|
201
|
+
如果想先跑一个真实消费者样例,可以参考使用真实 [`dsh-cloudflare-browser-run@0.1.1`](../examples/github-actions/consumer/upstream-radar.config.json) 依赖图的[consumer smoke 说明](../examples/github-actions/consumer/README.md)和[可复制 workflow](../examples/github-actions/consumer/upstream-radar.yml)。
|
|
202
|
+
|
|
203
|
+
在本仓库中也可以直接运行同一个已发布 Action:
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
pnpm run try:consumer
|
|
207
|
+
```
|
|
208
|
+
|
|
201
209
|
在本地或自托管 DSH 机器上不要加 `--frozen`,这样 Radar 会在每轮检查前刷新选中的 profile。`--fail-on` 适用于一次性 `radar check`、`radar status` 或 `radar watch --once`;长期运行的 watch 不应该因为第一次告警就退出。
|
|
202
210
|
|
|
203
211
|
## 闭环如何工作
|
|
@@ -266,7 +274,7 @@ DSH Agent 收到的任务要求:只读分析、引用项目证据、保留不
|
|
|
266
274
|
|
|
267
275
|
## 当前能力与边界
|
|
268
276
|
|
|
269
|
-
已经支持:DSH profile 实际安装树和 npm lock 依赖图、重复版本路径、未解析依赖的覆盖提示、OSV 精确版本匹配、恶意包记录、npm release 监听(只接受高于当前安装版本的候选;npm 的 `latest` 回退不会制造 breaking 告警;最新版本有确定性阻断时会检查历史候选的 OSV 状态和最早一小段传递依赖图,并筛出第一个没有确定性阻断且没有已知漏洞路径、值得交给 DSH 分析的候选;图不完整、图解析或 OSV 失败时不推荐候选)、公开 GitHub Release 说明、OSV 故障时保留已确认状态、连续失败后的 source-health DSH notice、持久事件、DSH 原生投递,以及 Node/peer/exports/入口/bundle/版本边界检查;还包括不联网的 `doctor` 接线检查、默认可提交的相对 workspace
|
|
277
|
+
已经支持:DSH profile 实际安装树和 npm lock 依赖图、重复版本路径、未解析依赖的覆盖提示、OSV 精确版本匹配、恶意包记录、npm release 监听(只接受高于当前安装版本的候选;npm 的 `latest` 回退不会制造 breaking 告警;最新版本有确定性阻断时会检查历史候选的 OSV 状态和最早一小段传递依赖图,并筛出第一个没有确定性阻断且没有已知漏洞路径、值得交给 DSH 分析的候选;图不完整、图解析或 OSV 失败时不推荐候选)、公开 GitHub Release 说明、OSV 故障时保留已确认状态、连续失败后的 source-health DSH notice、持久事件、DSH 原生投递,以及 Node/peer/exports/入口/bundle/版本边界检查;还包括不联网的 `doctor` 接线检查、默认可提交的相对 workspace、把审查过的图接入 CI 的可复用 GitHub Action,以及基于真实 DSH 插件的 consumer smoke。
|
|
270
278
|
|
|
271
279
|
`init` 在省略 `--profile` 时可以自动选择唯一一个含第三方 bundle 的 DSH profile;多个候选仍要求显式指定。默认读取实际安装树,因此 pnpm override 和本地解析选择会被纳入;原生解析 pnpm lockfile 以支持安装前/CI 检查仍未实现。加上 `--dsh-patch <path>` 可以生成不依赖环境变量的 DSH overlay。`radar status` 提供离线的首次运行检查、活动事件摘要和下一步提示,但不会替你刷新漏洞源,也不会自动升级插件。暂未支持 Yarn 图适配、changelog/比较 diff/迁移文档源、项目级 Session 精确路由、把 Agent 结论写回事件,以及自动创建 Issue 或 PR。
|
|
272
280
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "upstream-radar",
|
|
3
|
-
"version": "0.22.
|
|
3
|
+
"version": "0.22.1",
|
|
4
4
|
"description": "Always-on dependency security monitoring for DeepSeek Harness (DSH) plugins: find exact installed or candidate transitive vulnerable paths and breaking updates, then route evidence to a DSH Agent.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -77,6 +77,7 @@
|
|
|
77
77
|
"showcase:admission:reports": "pnpm run build && node scripts/showcase.mjs --write-reports",
|
|
78
78
|
"showcase:radar": "pnpm run build && node scripts/radar-showcase.mjs",
|
|
79
79
|
"showcase:radar:reports": "pnpm run build && node scripts/radar-showcase.mjs --write-reports",
|
|
80
|
+
"try:consumer": "node scripts/consumer-smoke.mjs",
|
|
80
81
|
"try:dsh": "pnpm run build && node scripts/dsh-headless-showcase.mjs",
|
|
81
82
|
"try:dsh:live": "pnpm run build && node scripts/dsh-headless-showcase.mjs --live-feeds",
|
|
82
83
|
"try:dsh:report": "pnpm run build && node scripts/dsh-headless-showcase.mjs --write-report",
|