From 0b858bb34358daa134afd7b22a14d896e2ab901b Mon Sep 17 00:00:00 2001 From: jkooe <62494645+jkooe@users.noreply.github.com> Date: Tue, 27 Oct 2026 08:04:33 +0800 Subject: [PATCH] =?UTF-8?q?docs(changelog):=20=E8=AE=B0=E5=BD=95=E6=9C=AC?= =?UTF-8?q?=E8=BD=AE=E5=9B=9B=E9=A1=B9=E9=81=97=E7=95=99=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=20+=20=E5=8D=95=E6=B5=8B=E6=95=B0=20477=E2=86=92480?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - CHANGELOG [未发布] 补:依赖彻底清零、看门狗日志轮换、L2 参数常显、 e2e 子进程兜底清理; - README 单测数同步 480(docs-numbers 守卫强制耦合)。 --- CHANGELOG.md | 33 +++++++++++++++++++++++++++++++++ README.md | 2 +- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7209534..a833370 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,39 @@ Quality Gate 的「依赖漏洞扫描(SCA)」在 `451d44a` 上为红,全 `pnpm-workspace.yaml`)—— 写在那里会被**静默忽略**,与「一直红所以等于没有」 是同一类失败形态,故覆盖项写在 workspace 文件里并注明原因。 +### 安全 —— 依赖漏洞彻底清零(中低危一并处理) + +在上一节之后复扫仍余 6 条(2 low / 4 moderate),全部经 MCP SDK 传递: + +- `hono <4.13.11`(serveStatic 路径二次解码绕过中间件)→ overrides `^4.13.14`; +- `ip-address <=10.7.3`(zone 标识符二次方耗时 DoS)→ overrides `^10.7.5`; +- `fast-uri <3.1.9`(scheme 伪造 / host 混淆 / 路径等价 4 条)→ overrides `^3.1.9`。 + +三条与 dependabot #3/#6/#7 同源,覆盖后那三个 PR 已无增量(随提交一并关闭)。 +当前 `pnpm audit` 输出 **No known vulnerabilities found**。 + +### 修复 —— 看门狗日志无界增长(常驻被控端,写满磁盘会拖死 agent) + +`startup-guard.log` 一直是 `appendFileSync` 无限追加。看门狗本身常驻被控端, +「坏版本 + supervisor 反复重启」时写得很快,磁盘满会连带把 agent 的审计写入拖死。 +现按 **1MB × 4 份**(当前 + `.1`…`.3`)轮换:超阈值先丢最旧、再逐个后移、当前滚为 `.1`。 +轮换与写入**双双失败静默** —— 日志问题绝不能反过来拦住被控端启动。 +判断逻辑放 `startup-guard-core.mjs` 纯函数(`shouldRotate` / `rotationTargets`), +并补 3 条单测(阈值边界含 NaN、命名序列、真实滚存三轮)。 + +### 修复 —— 控制台 L2 采集参数必须先出结果才出现 + +`AuditView.vue` 里「采集窗口 / 条数上限」两个输入框原先在 +`v-if="l2Rows.length"` 容器内 —— 用户想「先设 72 小时再采集」做不到,只能先按 +默认值点一次再改。参数与结果无生命周期关系,已拆出容器常显。 + +### 修复 —— e2e 连跑偶发失败(固定端口被上一轮残留占用) + +套件有 8 处 `spawn`,各自 `finally` 只发 `kill()`(SIGTERM)就 `process.exit`, +被控端可能来不及退出 → 下一轮固定端口仍被占,表现为「连跑第二次偶发失败,重跑又绿」。 +改为**包一层 spawn 统一登记**子进程(调用点零改动),进程退出时对存活者 `SIGKILL`; +单点收口,将来新增 spawn 也不会漏。实测连跑两次 34/34、退出后无残留 agent 进程。 + ## [2.1.0] - 2026-10-26 > 本段为 **v2.1.0** 定稿段(版本统一见 `a75c5c9`):selfupdate 代理出网、LKG 内容指针、 diff --git a/README.md b/README.md index 955c2ee..871e0c1 100644 --- a/README.md +++ b/README.md @@ -168,7 +168,7 @@ nodeagent --node win audit anchor --note "每日例行" # 追加一个锚点 > 真正发挥价值的前提:把锚点文件指向**另一台机器 / 网盘同步目录**。 > 本机文件被整盘重写时,锚点也随之消失 —— 那就等于没锚。 -**52 项能力** · **42 个 MCP 工具** · **477 项单元测试** · **50 项端到端用例**(34 通用 + 16 Windows 专属) · **23 项 Rust 壳单测**(真跑 Node sidecar)(CI 在真实 Windows / Linux runner 上验证) +**52 项能力** · **42 个 MCP 工具** · **480 项单元测试** · **50 项端到端用例**(34 通用 + 16 Windows 专属) · **23 项 Rust 壳单测**(真跑 Node sidecar)(CI 在真实 Windows / Linux runner 上验证) > 关键里程碑:**GUI 语义**(`window.list` + `screen.find`,UIA 找不到自动降级 OCR) > 让 AI 从「看得到画面但读不懂界面」变成「按名字取坐标点下去」。