Wire local NVD key loading

这个提交包含在:
hao
2026-03-18 19:54:45 -07:00
父节点 baf8e8fa64
当前提交 eb0e5d587a
修改 85 个文件,包含 4123 行新增455 行删除

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `29`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `30`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `70`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `23`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `100`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `70`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `40`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `26`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `140`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `81`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `89`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `15`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `100`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `27`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `112`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `24`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `71`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `111`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `2`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `3`
- 最近渲染时间: `2026-03-19T02:27:20+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `14`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `82`
- 最近渲染时间: `2026-03-19T02:27:20+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `2`
- 最近渲染时间: `2026-03-19T02:27:20+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `1`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `1`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `1`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `1`
- 最近渲染时间: `2026-03-19T02:27:20+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `1`
- 最近渲染时间: `2026-03-19T02:27:20+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `1`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `1`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `2`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `2`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `40`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `8`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `28`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `42`
- 最近渲染时间: `2026-03-19T02:27:20+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `21`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `2`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `11`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `3`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `3`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `9`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `9`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `30`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `15`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `1`
- 最近渲染时间: `2026-03-19T02:27:19+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `1`
- 最近渲染时间: `2026-03-19T02:27:20+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `2`
- 最近渲染时间: `2026-03-19T02:27:20+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `13`
- 最近渲染时间: `2026-03-19T02:27:20+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `55`
- 最近渲染时间: `2026-03-19T02:27:20+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `60`
- 最近渲染时间: `2026-03-19T02:27:20+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `60`
- 最近渲染时间: `2026-03-19T02:27:20+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `41`
- 最近渲染时间: `2026-03-19T02:27:20+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `20`
- 最近渲染时间: `2026-03-19T02:27:20+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `50`
- 最近渲染时间: `2026-03-19T02:27:20+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `50`
- 最近渲染时间: `2026-03-19T02:27:20+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `135`
- 最近渲染时间: `2026-03-19T02:27:20+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `136`
- 最近渲染时间: `2026-03-19T02:27:20+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `27`
- 最近渲染时间: `2026-03-19T02:27:20+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `6`
- 最近渲染时间: `2026-03-19T02:27:20+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `110`
- 最近渲染时间: `2026-03-19T02:27:20+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -12,7 +12,7 @@
- 已实证(synthetic): `0`
- 阻塞数: `0`
- 待人工/缺浏览器证据: `43`
- 最近渲染时间: `2026-03-19T02:27:20+00:00`
- 最近渲染时间: `2026-03-19T02:54:09+00:00`
## 目标约束

查看文件

@@ -73,6 +73,12 @@ python3 /Users/x/websafe/scripts/lab/main.py serve-dashboard --port 8734
- `NVD_API_KEY`
- 可选,用于提高 NVD 查询配额和稳定性。
本机私有环境文件:
- 默认自动加载 `$HOME/.config/websafe/env.sh`
- 适合放 `NVD_API_KEY``GITEA_TOKEN` 这类不应提交到仓库的本地密钥
- `scripts/sync-gitea.sh``scripts/intel/run-hourly.sh``scripts/intel/run-nightly.sh``scripts/intel/run-weekly-reconcile.sh` 会自动 source 这个文件
运行时建议:
- 使用独立虚拟环境安装 [requirements-intel.txt](/Users/x/websafe/requirements-intel.txt)。

查看文件

@@ -1,5 +1,5 @@
{
"generated_at": "2026-03-19T02:27:20+00:00",
"generated_at": "2026-03-19T02:54:09+00:00",
"title": "\u5f53\u524d\u67b6\u6784\u5e93",
"summary": "\u5de5\u4f5c\u53f0\u3001\u63a7\u5236\u9762\u3001\u6570\u636e\u5c42\u3001\u6388\u6743\u8fb9\u754c\u4e0e\u7cfb\u7edf\u8986\u76d6\u7684\u5f53\u524d\u771f\u503c\u89c6\u56fe\u3002",
"sections": [
@@ -49,7 +49,7 @@
},
{
"label": "\u751f\u6210\u65f6\u95f4",
"value": "2026-03-19T02:27:20+00:00"
"value": "2026-03-19T02:54:09+00:00"
}
],
"links": [

查看文件

@@ -1,5 +1,5 @@
{
"generated_at": "2026-03-19T02:27:20+00:00",
"generated_at": "2026-03-19T02:54:09+00:00",
"advisory_total": 89,
"registry_advisory_total": 2392,
"scope": "latest-run-backed-advisories",
@@ -175,18 +175,18 @@
"active_source_count": 118,
"green_source_count": 118,
"failure_count": 0,
"last_fully_green_run": "2026-03-19T02:27:12+00:00",
"last_fully_green_run": "2026-03-19T02:53:57+00:00",
"open_alert_count": 0,
"resolved_alert_count": 4
},
"monitor_summary": {
"generated_at": "2026-03-19T02:27:12+00:00",
"generated_at": "2026-03-19T02:53:57+00:00",
"active_source_count": 118,
"green_source_count": 118,
"source_failure_count": 0,
"open_alert_count": 0,
"resolved_alert_count": 4,
"last_fully_green_run": "2026-03-19T02:27:12+00:00",
"last_fully_green_run": "2026-03-19T02:53:57+00:00",
"source_catalog": {
"system_count": 62,
"source_count": 173,
@@ -194,12 +194,9 @@
},
"ingest": {
"new_count": 0,
"updated_count": 7,
"updated_count": 0,
"failure_count": 0,
"systems_touched": [
"nextjs",
"undici"
]
"systems_touched": []
},
"validation": {
"passed": true,

查看文件

@@ -1,11 +1,11 @@
{
"generated_at": "2026-03-19T02:27:12+00:00",
"generated_at": "2026-03-19T02:53:57+00:00",
"active_source_count": 118,
"green_source_count": 118,
"source_failure_count": 0,
"open_alert_count": 0,
"resolved_alert_count": 4,
"last_fully_green_run": "2026-03-19T02:27:12+00:00",
"last_fully_green_run": "2026-03-19T02:53:57+00:00",
"source_catalog": {
"system_count": 62,
"source_count": 173,
@@ -13,12 +13,9 @@
},
"ingest": {
"new_count": 0,
"updated_count": 7,
"updated_count": 0,
"failure_count": 0,
"systems_touched": [
"nextjs",
"undici"
]
"systems_touched": []
},
"validation": {
"passed": true,

查看文件

@@ -1,5 +1,5 @@
{
"generated_at": "2026-03-19T02:26:48+00:00",
"generated_at": "2026-03-19T02:53:49+00:00",
"system_count": 62,
"source_count": 173,
"active_source_count": 118,

查看文件

@@ -87,7 +87,7 @@
<h1>当前架构库镜像</h1>
<div class="meta">工作台内置镜像页:当前架构库结构化数据镜像。</div>
<pre>{
&quot;generated_at&quot;: &quot;2026-03-19T02:27:20+00:00&quot;,
&quot;generated_at&quot;: &quot;2026-03-19T02:54:09+00:00&quot;,
&quot;title&quot;: &quot;当前架构库&quot;,
&quot;summary&quot;: &quot;工作台、控制面、数据层、授权边界与系统覆盖的当前真值视图。&quot;,
&quot;sections&quot;: [
@@ -137,7 +137,7 @@
},
{
&quot;label&quot;: &quot;生成时间&quot;,
&quot;value&quot;: &quot;2026-03-19T02:27:20+00:00&quot;
&quot;value&quot;: &quot;2026-03-19T02:54:09+00:00&quot;
}
],
&quot;links&quot;: [

查看文件

@@ -88,7 +88,7 @@
<div class="meta">工作台内置镜像页active/retired source、replacement map 与覆盖摘要。</div>
<pre># Source Catalog Audit
- generated_at: `2026-03-19T02:26:48+00:00`
- generated_at: `2026-03-19T02:53:49+00:00`
- systems: `62`
- sources: `173`
- active_sources: `118`

查看文件

@@ -88,7 +88,7 @@
<div class="meta">工作台内置镜像页89 条 advisory 最新完整度、family 矩阵与 ingest 健康度。</div>
<pre># 全库 Advisory 完整度报告
- 生成时间: `2026-03-19T02:27:20+00:00`
- 生成时间: `2026-03-19T02:54:09+00:00`
- 最新 advisory 完整度: `89/89` `verified-real`
- 合成验证数量: `0`
- 阻塞数量: `0`
@@ -96,7 +96,7 @@
- 完整度百分比: `100.0%`
- active source 全绿: `118/118`
- source open alerts: `0`
- 最近一次 source 全绿: `2026-03-19T02:27:12+00:00`
- 最近一次 source 全绿: `2026-03-19T02:53:57+00:00`
## 系统覆盖矩阵

查看文件

@@ -1,5 +1,5 @@
{
"generated_at": "2026-03-19T02:27:20+00:00",
"generated_at": "2026-03-19T02:54:09+00:00",
"advisory_count": 2392,
"run_count": 140,
"statuses": {
@@ -158,7 +158,7 @@
"green_source_count": 118,
"source_failure_count": 0,
"open_alert_count": 0,
"last_fully_green_run": "2026-03-19T02:27:12+00:00"
"last_fully_green_run": "2026-03-19T02:53:57+00:00"
},
"systems": [
{

查看文件

@@ -1,11 +1,11 @@
# 最新同步摘要
- 渲染时间: `2026-03-19T02:27:20+00:00`
- 渲染时间: `2026-03-19T02:54:09+00:00`
- 系统数量: `62`
- Advisory 数量: `2348`
- 重点 Markdown 数量: `156`
- Run Bundle 数量: `89`
- 新增记录: `0`
- 更新记录: `7`
- 更新记录: `0`
- Triage 数量: `1169`
- 失败的 source adapter: `0`

查看文件

@@ -1,11 +1,11 @@
{
"generated_at": "2026-03-19T02:27:12+00:00",
"generated_at": "2026-03-19T02:53:57+00:00",
"active_source_count": 118,
"green_source_count": 118,
"source_failure_count": 0,
"open_alert_count": 0,
"resolved_alert_count": 4,
"last_fully_green_run": "2026-03-19T02:27:12+00:00",
"last_fully_green_run": "2026-03-19T02:53:57+00:00",
"source_catalog": {
"system_count": 62,
"source_count": 173,
@@ -13,12 +13,9 @@
},
"ingest": {
"new_count": 0,
"updated_count": 7,
"updated_count": 0,
"failure_count": 0,
"systems_touched": [
"nextjs",
"undici"
]
"systems_touched": []
},
"validation": {
"passed": true,

查看文件

@@ -1,14 +1,11 @@
{
"generated_at": "2026-03-19T02:27:20+00:00",
"generated_at": "2026-03-19T02:54:09+00:00",
"system_count": 62,
"advisory_count": 2348,
"markdown_count": 156,
"new_count": 0,
"updated_count": 7,
"systems_touched": [
"nextjs",
"undici"
],
"updated_count": 0,
"systems_touched": [],
"triage_count": 1169,
"run_bundle_count": 89,
"failures": []

查看文件

@@ -1,5 +1,5 @@
{
"generated_at": "2026-03-19T02:26:48+00:00",
"generated_at": "2026-03-19T02:53:49+00:00",
"system_count": 62,
"source_count": 173,
"active_source_count": 118,

查看文件

@@ -1,6 +1,6 @@
# Source Catalog Audit
- generated_at: `2026-03-19T02:26:48+00:00`
- generated_at: `2026-03-19T02:53:49+00:00`
- systems: `62`
- sources: `173`
- active_sources: `118`

文件差异内容过多而无法显示 加载差异

文件差异内容过多而无法显示 加载差异

查看文件

@@ -1,6 +1,6 @@
# 全库 Advisory 完整度报告
- 生成时间: `2026-03-19T02:27:20+00:00`
- 生成时间: `2026-03-19T02:54:09+00:00`
- 最新 advisory 完整度: `89/89` `verified-real`
- 合成验证数量: `0`
- 阻塞数量: `0`
@@ -8,7 +8,7 @@
- 完整度百分比: `100.0%`
- active source 全绿: `118/118`
- source open alerts: `0`
- 最近一次 source 全绿: `2026-03-19T02:27:12+00:00`
- 最近一次 source 全绿: `2026-03-19T02:53:57+00:00`
## 系统覆盖矩阵

查看文件

@@ -2,6 +2,7 @@
set -euo pipefail
cd /Users/x/websafe
source /Users/x/websafe/scripts/load-local-env.sh
LOG_DIR="/Users/x/websafe/08-threat-intel/generated/logs"
mkdir -p "$LOG_DIR"
STAMP="$(date '+%Y%m%d-%H%M%S')"

查看文件

@@ -2,6 +2,7 @@
set -euo pipefail
cd /Users/x/websafe
source /Users/x/websafe/scripts/load-local-env.sh
LOG_DIR="/Users/x/websafe/08-threat-intel/generated/logs"
mkdir -p "$LOG_DIR"
STAMP="$(date '+%Y%m%d-%H%M%S')"

查看文件

@@ -2,6 +2,7 @@
set -euo pipefail
cd /Users/x/websafe
source /Users/x/websafe/scripts/load-local-env.sh
LOG_DIR="/Users/x/websafe/08-threat-intel/generated/logs"
mkdir -p "$LOG_DIR"
STAMP="$(date '+%Y%m%d-%H%M%S')"

14
scripts/load-local-env.sh 普通文件
查看文件

@@ -0,0 +1,14 @@
#!/bin/bash
set -euo pipefail
DEFAULT_ENV_FILE="$HOME/.config/websafe/env.sh"
WEBSAFE_ENV_FILE="${WEBSAFE_ENV_FILE:-$DEFAULT_ENV_FILE}"
if [[ -f "$WEBSAFE_ENV_FILE" ]]; then
# Export variables defined in the local secrets file for child processes.
set -a
# shellcheck disable=SC1090
source "$WEBSAFE_ENV_FILE"
set +a
fi

查看文件

@@ -12,6 +12,7 @@ set -euo pipefail
# 配置
REPO_DIR="/Users/x/websafe"
source "${REPO_DIR}/scripts/load-local-env.sh"
GITEA_URL="https://git.hk.hao.work"
GITEA_API="${GITEA_URL}/api/v1"
REPO_NAME="${REPO_NAME:-websafe-kb}"