netmon 复用 Clash 监控差异审查

2026-10-24 用户要求复用原有 netmon,避免重复守护程序。

结论与实际变更

原项目 ${HOME}/dev/netmon 已有显式代理探测、DIRECT 独立端口、并发、SQLite 历史、原子状态、锁、日志轮换、hold、外部选择尊重、连续失败判定、冷却、Selector 候选测试、切换后验证和回退。新脚本这部分重复且更弱,不移植。

已将新脚本有价值的两个目标站探测加入原项目 config.json:ChatGPT Codex models(200/401 表示传输可达)与 OpenAI OIDC discovery(仅200)。两者403不记健康。保持非关键目标,不用单站异常触发整体 Selector 切换。项目 README 已补充边界。

未合并独立脚本的 AI-JP URLTest 组重测:它未经故障路径验收,且原项目 Selector 恢复不等同于 AI-JP 的恢复。当前改动改善诊断,不声称完成该专用组自动恢复。

验证

  • 修改前51项单元测试通过;修改后51项通过。
  • 真实复用 netmon.probe_target:两个新增目标均 TLS/连接阶段约4秒超时,正确标为 timeout,不虚报健康。
  • 只读查询原 SQLite samples:两个新增 target_id 已由定时轮次写入,均 timeout,证明现有 timer 已自动加载新配置。
  • netmon.timer active;独立 clash-health-watch.timer disabled,不重复调度。
  • 修改前备份:${HOME}/dev/netmon/data/backups/target-probes-20261024-161858/。

后续

目标站慢/超时仍存在。若继续扩展,应在 netmon 内增加独立 AI-JP 健康域和隔离验收,不放宽原有全部路由成功标准、不把403推断为账号失效。不运行 deploy.py,避免为新增普通探测不必要地重载 Clash。