# R2.17 任务报告

## 近期错误

- 最近 2 小时全分组共 480 个请求、73 个客户错误；盈利池 225 个请求、65 个客户错误，客户错误率 28.89%，上游错误率 28.00%；自用池 247 个请求、客户错误 0；Grok 8 个客户错误均不能归因到上游。
- 盈利池错误集中在 `https://www.xiaobaishu.org plus 0.01`：2 小时评分 37/E，94 次尝试中 66 次评分失败，64 个客户错误；状态分布 54×504、6×429、5×502，路径为 52×`/v1/chat/completions` 和 13×`/v1/messages`，均标记为 upstream 阶段。
- 三个代表 request ID 最终均由原生 trace 记录为 HTTP 499，耗时 36–60 秒，未发生当前请求 failover；管理端 request-errors 的 429/502/504 与 access log 最终 499 是不同阶段的记录。客户端 deadline 不可见，因此不能精确计算剩余切号预算。
- 原生日志未保留这些上游响应正文，不能扩大模板关键词，也不能声称 54 个 504 都能通过规则修复。

## 配置优化

- 运行时清单显示，除明确例外 `lyon9801 0.0` 外，只有 `https://api.recurdream.com plus 0.02` 和 `https://www.xiaobaishu.org plus 0.01` 未绑定通用 `codex-upstream-failover` 模板。
- 对账号 35、37 精准批量 dry-run：均为 0 -> 7 条规则，状态码为 400、429、500、502、503、504、524；模板保持状态码加稳定短语双重匹配，冷却 1 分钟。
- Confirm 返回 `writeSucceeded=2`、`reconciled=2`、`mismatched=0`；最终 runtime list 显示两个账号均为 7 条规则并匹配通用模板。
- 未修改 lyon、版本、源码、priority、容量、代理、凭据、分组、状态、可调度或外部哨兵。

## 官方源码边界

- 官方 v0.1.156 源码提交 `12f991d` 中，`gateway_upstream_response.go` 在 `MarkResponseCommitted` 前调用 `HandleUpstreamError`；规则命中返回 `UpstreamFailoverError`。
- `ratelimit_service.go` 只有在账号启用规则、状态码相同且响应正文命中稳定关键词时才设置临时不可调度。
- Chat Completions/Responses handler 只有在客户端仍连接且响应尚未提交时才切换账号；客户端已断开或响应已写入时停止 failover。因此本次优化覆盖响应前明确上游错误，不覆盖最终 499 或已提交流式响应。

## 即时回归

- 写入后 5 分钟窗口共 62 个请求：盈利池 11、自用池 51；客户错误率和上游错误率均为 0%，队列为 0。
- 该短窗口只证明没有即时配置回归，不能作为长期效果结论；后续应使用新的完整窗口比较客户错误、规则命中、切号成功、候选耗尽和 499 长等待。
