diff --git a/docs/EXECUTION_BOARD.md b/docs/EXECUTION_BOARD.md index 8fbc47d0..cea30573 100644 --- a/docs/EXECUTION_BOARD.md +++ b/docs/EXECUTION_BOARD.md @@ -341,6 +341,53 @@ - `GET /api/routing/logs/decisions?sticky_key=lg:p1t5-failover-1780020305:m:gpt-5.4:conv:conv-p1t5-failover-1780020305` - 第一条 resolve 对应记录 `fallback_used=true`、`sticky_hit=false` - 第二条 resolve 对应记录 `fallback_used=false`、`sticky_hit=true` + - 2026-05-29 已完成基础设施闭环补充 / `cooldown rebinding regression matrix` + - 代码基线:沿用 `eb2242ca feat(routing): add resolver failover fallback` + - 验证目标: + - 人工设置 `cooldown` + - `resolve` 自动跳过处于 cooldown 的高优先级 route + - 写入 `route_failover_events` + - 验证旧 sticky 失效后的重新绑定,以及新 sticky 的后续命中 + - remote43 真实公网 API 验证已通过(`redis` 运行时): + - 创建临时逻辑分组 `logical_group_id=p1t5-cooldown-1780020999` + - 创建两条 route: + - `codex2api-1780020999`,`priority=10` + - `asxs-1780020999`,`priority=20` + - 第一次 `POST /api/routing/resolve` + - `request_id=req-p1t5-cooldown-first-1780020999` + - 正常命中主 route `codex2api-1780020999` + - 返回 `sticky_hit=false` + - 返回 `sticky_action=bind` + - `POST /api/routing/sticky/cooldowns` + - 为 `codex2api-1780020999` 写入 `reason=degraded` + - 返回 `backend=redis` + - 第二次 `POST /api/routing/resolve`(同 subject) + - `request_id=req-p1t5-cooldown-second-1780020999` + - 旧 sticky 指向的主 route 因 `cooldown` 被自动判定失效 + - 返回 `route_id=asxs-1780020999` + - 返回 `sticky_hit=false` + - 返回 `sticky_action=bind` + - 说明已完成 sticky 重绑定到 fallback route + - 第三次 `POST /api/routing/resolve`(同 subject) + - `request_id=req-p1t5-cooldown-third-1780020999` + - 返回 `route_id=asxs-1780020999` + - 返回 `sticky_hit=true` + - 说明新的 sticky 已稳定命中 fallback route + - `GET /api/routing/logs/failovers?request_id=req-p1t5-cooldown-second-1780020999` + - 回读到一条 failover event + - `from_route_id=codex2api-1780020999` + - `to_route_id=asxs-1780020999` + - `reason=active_cooldown:degraded` + - `failure_count=0` + - `GET /api/routing/logs/decisions?sticky_key=lg:p1t5-cooldown-1780020999:m:gpt-5.4:conv:conv-p1t5-cooldown-1780020999` + - 第一条 resolve:`selected_route_id=codex2api-1780020999`、`fallback_used=false` + - 第二条 resolve:`selected_route_id=asxs-1780020999`、`fallback_used=true`、`sticky_hit=false` + - 第三条 resolve:`selected_route_id=asxs-1780020999`、`fallback_used=false`、`sticky_hit=true` + - `GET /api/routing/logs/sticky-audit?sticky_key=lg:p1t5-cooldown-1780020999:m:gpt-5.4:conv:conv-p1t5-cooldown-1780020999` + - 依次可回读到三条 sticky audit: + - `action=bind`,`route_id=codex2api-1780020999` + - `action=bind`,`route_id=asxs-1780020999` + - `action=hit`,`route_id=asxs-1780020999` - 2026-05-26 已把“最终用户 -> 公网域名 -> OpenClaw”这一跳补进正式验证口径: - 公网根地址当前统一为 `https://sub.tksea.top` - OpenClaw 本地 `MiniMax` 运行时故障已定位为 `pi-ai/openai-node` 未继承系统 `HTTP(S)_PROXY`,不是 allowlist 或模型名大小写问题