root
2113bfc125
fix(channels): 四渠道修复 —— qoder 裸 token 领取 / trae+buddy 非流式 / opencode 目录 / 隐藏适配器
生产实测逐渠道排查(2026-10-19):
* qoder:PKCE 设备码流无 register 第二跳,落库凭据是裸 token 字符串;
qoderClaim 硬要求结构化 table 导致「缺少凭据对象」(而 account_test
走 token 路径正常 —— 自相矛盾状态)。改为非空裸 tok 就地包
{access_token=tok};补 TestQoderClaimAcceptsBareTokenCredential。
* trae(SOLO 自装适配器):上游对非流式请求也回 SSE(event: 前缀帧),
transform_response 不识别 → 整个 body 原样透传 → Go unmarshal 报
invalid character 'e'。补 aggregate_solo_sse 聚合。
* buddy(CodeBuddy):上游 400 11101 只支持流式。transform_request 强制
stream=true;transform_response 补 SSE 聚合(tool_calls 按 index 拼分片)。
* provider 流式:真实 tool-call 片段之后出现 finish_reason=stop 时归一为
tool_calls(trae 实测如此发);buddy/trae 不再序列化空 tool_calls 表。
* opencode:远端目录端点改为 /zen/v1/models(裸 /v1/models 回 HTML);
兜底目录同步 2026-10-19 实测(space-bunny-free 410 下架等 5 项变化)。
opencodezen 适配器 v1.1.0:会话亲和(client_session / 首 user 消息指纹
分桶),保留免费层门禁四要素。
* 内核:适配器可声明 adapter.hidden = true 退出用户可见列表;被源引用的
隐藏适配器保持可见(源编辑器要回显当前值)。opencodezen 默认隐藏。
* channels UI:切渠道立即清空账号/模型区 + 响应代际校验,修复 qoder 账号
闪现在 opencode 卡片下的渲染竞态。
* channels request_end hook:挂接丢失的 isModelGone/recordDeadModel ——
真实 404(如 codearts GLM-5.3 "The model is not registered")现在会进
deadModels,不再每轮 404 仍可选中。
2026-10-19 22:32:18 +08:00
..
2026-10-14 15:43:09 +08:00
2026-10-14 15:35:49 +08:00
2026-10-13 13:42:45 +08:00
2026-10-14 20:00:58 +08:00
2026-10-14 20:00:58 +08:00
2026-10-14 15:24:24 +08:00
2026-10-16 20:47:14 +08:00
2026-10-13 13:42:45 +08:00
2026-10-14 16:18:27 +08:00
2026-10-14 16:18:27 +08:00
2026-10-16 07:51:21 +08:00
2026-10-14 20:00:58 +08:00
2026-10-19 16:26:59 +08:00
2026-10-16 00:56:14 +08:00
2026-10-13 16:51:15 +08:00
2026-10-13 16:51:15 +08:00
2026-10-19 13:43:18 +08:00
2026-10-13 16:51:15 +08:00
2026-10-19 18:02:30 +08:00
2026-10-11 20:50:52 +08:00
2026-10-19 16:26:59 +08:00
2026-10-16 13:51:36 +08:00
2026-10-14 20:00:58 +08:00
2026-10-19 16:26:59 +08:00
2026-10-19 17:21:22 +08:00
2026-10-13 15:44:51 +08:00
2026-10-13 13:42:45 +08:00
2026-10-13 13:42:45 +08:00
2026-10-19 16:26:59 +08:00
2026-10-13 13:42:57 +08:00
2026-10-16 21:49:12 +08:00
2026-10-13 13:42:45 +08:00
2026-10-13 07:41:42 +08:00
2026-10-15 22:43:08 +08:00
2026-10-19 16:26:59 +08:00
2026-10-13 13:42:57 +08:00
2026-10-16 09:00:47 +08:00
2026-10-19 16:26:59 +08:00
2026-10-19 16:26:59 +08:00
2026-10-14 20:00:58 +08:00
2026-10-19 22:32:18 +08:00
2026-10-13 15:52:26 +08:00
2026-10-13 13:42:57 +08:00
2026-10-13 13:42:57 +08:00
2026-10-14 16:46:43 +08:00
2026-10-19 16:26:59 +08:00
2026-10-16 09:36:02 +08:00
2026-10-14 20:12:10 +08:00
2026-10-13 13:42:57 +08:00
2026-10-13 13:42:57 +08:00
2026-10-16 08:28:36 +08:00
2026-10-17 17:38:23 +08:00
2026-10-13 13:42:45 +08:00
2026-10-17 17:38:23 +08:00
2026-10-13 13:42:45 +08:00
2026-10-17 17:38:23 +08:00
2026-10-16 00:56:14 +08:00
2026-10-17 17:38:23 +08:00
2026-10-17 17:38:23 +08:00
2026-10-14 16:09:22 +08:00
2026-10-16 13:51:36 +08:00
2026-10-16 17:44:04 +08:00
2026-10-15 08:22:57 +08:00
2026-10-15 08:22:57 +08:00
2026-10-15 20:30:33 +08:00
2026-10-15 08:22:57 +08:00
2026-10-16 01:38:34 +08:00
2026-10-17 00:01:00 +08:00
2026-10-13 13:42:57 +08:00
2026-10-13 15:38:35 +08:00
2026-10-13 15:38:35 +08:00
2026-10-19 16:26:59 +08:00
2026-10-19 22:32:18 +08:00
2026-10-11 20:50:52 +08:00
2026-10-13 13:42:57 +08:00
2026-10-15 08:22:57 +08:00
2026-10-14 16:00:34 +08:00
2026-10-13 13:42:57 +08:00
2026-10-11 13:52:29 +08:00
2026-10-19 16:26:59 +08:00
2026-10-19 16:26:59 +08:00
2026-10-13 16:11:11 +08:00
2026-10-07 17:37:22 +08:00
2026-10-19 16:26:59 +08:00
2026-10-13 13:42:45 +08:00