2.1 KiB
稳定运行期间由 Agent 独占故障判定
系统代理的稳定期观察不再主动连接 SOCKS 或 HTTP 入站,也不再根据 PID 存活、运行回执缺失或身份不匹配独立判定运行故障。Agent 已负责 sslocal 子进程监管、自动重启与明确部署失败记录;GUI 重复连接入站会持续触发 sslocal 的 SOCKS5 EOF 日志,又可能把正常重启期间的回执空窗当成故障。本决定细化 ADR-0022 的运行故障观察与暂停边界,延续 ADR-0037 的明确失败屏障。
GUI 运行期间,系统代理意图开启时,每 5 秒读取与当前部署匹配的明确失败记录。发现明确失败后,呈现运行失败并暂停系统代理,保留开启意图;清理失败仍须显式重试,不因轮询反复清理。没有失败记录只表示尚无明确失败结论,不构成健康证明;不增加连续失败计数、宽限窗口或额外的回执/PID 故障检查。后台自动重启期间保留系统代理设置,不因远端服务器或网络波动暂停系统代理。
启动、重启及显式部署的就绪确认保留,仍可能产生少量 EOF 日志。明确失败后的显式重试或新部署,沿用现有成功收敛路径恢复系统代理;失败记录被删除本身不代表恢复,不触发周期性自动重应用。用户主动关闭代理服务时,仍直接清理系统代理并关闭其意图,然后停止后台服务,不等待轮询。观察循环继续刷新 helper 批准状态与操作入口,并继续处理待批准后尚未执行的首次应用。
代价是 GUI 不再检测“进程仍存活但监听端口消失”,也不兜底推断 Agent 未能持久记录的故障。例如 Agent 异常退出或监管资料缺失/损坏不保证产生失败记录;Agent 异常退出的恢复交给现有 launchd 策略。5 秒是失败记录产生后的常规检查间隔,不是从子进程退出起算的严格暂停完成时限,GUI 退出后也不执行检查。拒绝协议或远端连通性探测来扩大健康含义,避免把请求路径的暂时波动升级为系统代理设置变更。