Repository navigation
v1.3.7
✨ 新增功能
① 双区自动路由的完整体验(#26 续) —— v1.3.6 把自动路由发出去了,这一版把它变成看得见的:
-
「本次实际出口」不再靠猜:usage 行新增
realm_reason(三态),面板据此给出确定结论:realm_reason含义 面板显示 model_missing当前区官方清单里没有这个模型 「模型不在默认出口,已自动改走 X 区」 no_account模型本区有、被账号可用性推走 「默认出口无可用账号,已自动改走 X 区」 ""(显式空串)明确没有换区 「按默认出口执行」 键不存在 字段上线前的旧行 「未知(旧记录)」—— 不给用户一个假结论 -
最近请求表新增「区域」列:直接来自 usage 行的
realm—— 反映的是每次对话的真实出口,不是面板自身请求; -
带时间:「最近一次对话 12:03 走了国内版 · 未换区」—— 持久化字段才有的信息量。
🐛 问题修复
- 面板数据源从响应头迁到 usage 行:v1.3.6 冻结的契约(
X-Qoder-Realm只在 chat 类请求出现)让面板拿不到那个头(面板发的都是管理端点)→ 改为读 usage 行,绕开长连接状态泄漏那一整类问题,而且历史可查; - 反向保险:新增「
dashboard.html全文不得再读X-Qoder-Realm」的断言(检查目标是被守护的文件,不是测试自己),并用金丝雀自证(注入一行读取 → 必红)证明它不是摆设 —— 两次独立跑过; - 两条「片段依赖自检」:测试用的 eval 片段必须自带
RECENT_SNAPSHOT声明,否则当场红并说明原因(而不是崩溃成一个读起来像产品坏了的 ReferenceError);并断言该声明在dashboard.html里顶层唯一、引用都在函数体内 —— 把「浏览器里会不会炸」变成可执行断言。
🎨 体验优化:见 ① 的三条。
- 口径收紧两处:最近一次对话取「最近一条非 error 行」(失败行可能没有真实出账区,拿它当结论是错的);旧行显示「未知(旧记录)」而不是「没换区」;
- 流程:报告「全绿」时附两枚指纹(被测文件 md5 + 套件副本 md5)—— 本轮一次误报(过期副本被读成产品故障)就是靠这条把范围锁死的;复核方也贴自己跑的那份,先对齐再谈结论。
验证
- 双入口全绿:
python tests/run_all.py→ 28 suites / 1005 checks / 0 failed(前端六套件 105 = 9/19/19/15/12/31);python _test_qoder.py→ 626 passed / 0 failed; - 金丝雀两次独立跑过(作者一次、复核者一次):注入读取 → 反向保险必红;真文件 → 全绿。