diff --git a/docs/channels-parity.md b/docs/channels-parity.md index 1a319be..f44fe73 100644 --- a/docs/channels-parity.md +++ b/docs/channels-parity.md @@ -315,3 +315,60 @@ internal/lua/plugin_adapter_bridge.go | `internal/lua/channels_gemini_adapter_test.go` | 身份五头逐值 + 不得发 google key/Accept + 字母序 + 响应剥信封 | | `internal/core/channels_codearts_adapter_test.go` | 装机/归属 + **Go stdlib 独立复算 HMAC 验签** | | `internal/core/channels_private_adapter_wiring_test.go` | 三平台的**源真的引用了**自装适配器 | + +--- + +# 生产实测:不可用的真相(2026-10-14) + +## 症状与根因 + +用户报"完全不可用"。实测(`/api/plugins/http/channels/account/list` 逐平台): + +| 平台 | 账号数 | **有凭据的** | +|---|---|---| +| buddy | 2 | **1** | +| trae | 3 | 0 | +| minimax | 1 | 0 | +| lobsterai | 1 | 0 | +| codearts | 5 | 0 | +| 其余 7 平台 | 0 | 0 | + +**13 个账号里只有 1 个真有凭据**,其余全是**占位壳子**(`has_credential: false`)。 +占位账号不是"已登录",它只是为「先建账号行、登录后填凭据」这个两步流程预留的 +行。此前的判断只看「12 平台 0 个 manual」,那是**错的判据** —— manual 是 +flow 类型,不是"登录成功"。 + +## 排除项(都实测过,不是猜) + +| 检查 | 结果 | +|---|---| +| 服务状态 | `active`,`NRestarts=0` | +| 部署一致性 | 4 个插件 sha256 与仓库**全部一致**;关键标记(installCodeartsAdapter / installTraeAdapter / installGeminiAdapter / sorted_json / sign_parts)全部在位 | +| **推理链路** | `POST /v1/chat/completions` 实测返回 `"OK"`(走 buddy 源、deepseek-v4.1-flash)—— **网关本身完全可用** | +| 登录机制 | minimax 真实返回 `user_code=T49S-RC7G` + 验证地址;trae 起了服务端浏览器 + 回环回调 | +| 设备码轮询 | 5 次全部 `pending`(未授权时**不误判**为失败或成功 —— 这是正确行为) | + +## 结论:不是代码坏了,是**授权没完成** + +剩下的 12 个平台都需要**人工动作**才能走完登录: + +- **device-poll**(minimax / cline / qoder):把 `user_code` 拿到 + `account.minimax.cn/oauth-authorize` 之类的**官方页面**输入 +- **callback**(trae / gemini / lobsterai):在 **VNC 窗口**里点授权 + (回环回调只能由本机解析,远程浏览器永远接不住) +- **qr-poll / wechat-poll**(raccoon / loomy):扫码 +- **init-poll**(zcode):授权页 + 可能的验证码 + +这些**按设计就必须人工**,assistant 无法独立端到端完成。 + +## B 类:实测结论 + +| 项 | 行数 | 结论 | +|---|---|---| +| qoder-wasm + envelope | 706 + 226 | **二进制不在仓库**(`find -name '*.wasm'` 为空,属构建产物)。没有 `qoder-auth-wasm.wasm` 无法实现;拿到才有意义 | +| zcode-captcha + carrier | 2119 + 93 + 280 + 206 | 阿里云滑块。且**登录本身不需要它** —— captcha 只用于**签到/领取**环节(`zcode-auth.ts:22-23`:claim 时每个 plan 单独 mint captcha)。登录闭环不受阻,受阻的是自动领取 | +| captcha-pool | 280 | 同上,服务于领取环节的验证码供给 | + +**修正判断**:B 类不是"登录闭环的拦路虎"。zcode 的登录(`/api/v1/oauth/cli/init` +→ poll)不需要验证码;captcha 只在**自动领取**时出现。所以 B 类的真实价值是 +"让领取全自动",而不是"让平台可用"。