---
template: sheet
title: Doctor 修复记录：4 项全部处理（2026-10-31）
subtitle: Hermes 待处理项从 6 降到 1，三个 high 漏洞清零，HFC 保持全绿
cols: 2
source: hermes doctor · HFC doctor · npm audit · 实测调用
---

Lead: 四项都修完了。Hermes 待处理项从 6 降到 1，剩下那条只是让你去配 discord / xAI 这类可选 key。

## A 四项改动 {span=2}

| 项目 | 原状 | 处理方式 | 结果 |
|---|---|---|---|
| 1 OpenCode Zen key | 失效，doctor 报 invalid | 从 .env 删除该键（主链与备用链都不用它） | 连通性检查不再报错 |
| 2 SiliconFlow legacy | 列表条目，无 providers 双胞胎 | 迁到 providers.siliconflow，字段由 Hermes 自带转换器生成 | doctor 告警消失，8 个辅助槽照常 |
| 3 Ikuncode GPT legacy | 同上 | 迁到 providers.ikuncode-gpt | doctor 告警消失 |
| 4 npm 漏洞 | web 7 个（含 1 high）、ui-tui 2 个（含 1 high） | 三处 override 提升补丁版本，另修 ui-tui 直接依赖 | ui-tui 归零，三个 high 全清 |

## B npm 修复细节

```kv cols=2
undici@^7: 7.30.0 -> 7.30.1（web/jsdom 链）
undici@^6: 6.29.0 -> 6.29.1（ui-tui 运行时依赖）
zod@^4: 4.4.3 -> 4.6.7（root 链）
.npmrc: 加 min-release-age-exclude[]=undici
原因: 仓库的 npmrc 有 14 天冷却，不排除就拿不到 7.30.1
剩余: web 5 个、root 12 个，全是 eslint 家族
剩余性质: 上游没有任何已修复版本，audit 建议的修复是降级插件
```

```callout warn 剩下的 eslint 家族改不动
@eslint/*、typescript-eslint、minimatch 这些告警在 audit 里 fixAvailable 为 False，官方补救方案是把 eslint-plugin-unused-imports 降到 1.1.3 —— 属于降级换漏洞，不做。等上游发版。
```

## C 验证结果

```kv cols=2
hermes doctor: 待处理 6 -> 1（只剩可选 key 提示）
辅助路由: aux validator 无问题
真实调用: profile_describer 21.5 秒 schema 通过
真实调用: kanban_decomposer 8.3 秒出 3 个子任务
web 依赖: 5 moderate，doctor 计为通过行
ui-tui 依赖: 0 漏洞
root 依赖: 12 moderate，无 high
Dashboard: imports cleanly
jsdom/undici 导入: 均正常
HFC doctor: ok，sidecar healthy / ready / generation_match
```

## D 备份与持久化 {span=2}

```kv cols=2
config 备份: /root/backups/config.yaml.bak.20261031_173541
env 备份: /root/backups/hermes.env.bak.20261031_174041
npm 备份: /root/backups/hermes_npm_audit_20261031/
新增补丁: ~/.hermes/patches/local_npm_audit_overrides.patch
reapply 脚本: 已加进 patch 循环 + 升级后自动 npm update undici zod
本地漂移: package.json / ui-tui/package.json / .npmrc / package-lock.json
```

下次 `hermes update` 会 autostash 这些漂移，跑一次 `/root/.hermes/scripts/reapply_local_patches.sh` 即可恢复；npm 那步已写进脚本，无需手动。
