|
1 | 1 | # 2026-05-26 |
2 | 2 |
|
| 3 | +## Codex 请求模式重新布局 |
| 4 | +- 结论:`#frame=codex&workspace=account-list` 的请求模式区改成了两段式 header,上行只放标题、说明和当前模式,下行把 `顺序 / 均衡` 两个切换按钮铺满整行,空白感明显少了。 |
| 5 | +- 体验:这比把模式按钮挤在右上角更稳,也更适合当前只有两个模式的场景。 |
| 6 | + |
3 | 7 | ## CLIProxyAPI 刷新成功未清理异常态 |
4 | 8 | - 结论:`sdk/cliproxy/auth/conductor.go` 里 `refreshAuth` 的成功分支只清了 `LastError / NextRefreshAfter / UpdatedAt`,没有把失败后留下的 `StatusError / Unavailable / StatusMessage` 显式回收;因此一次 refresh 失败后,即使后续 refresh 成功,auth 仍可能一直显示“异常”,直到 app 重启把内存态重建。 |
5 | 9 | - 证据:失败分支会把 auth 标成 `unauthorized` 并写入运行态;对象存储 / 文件持久化只保存 metadata,不会把这类运行态带到磁盘,所以重启后状态恢复正常。 |
|
12 | 16 | - 验证:`node --test frontend/src/features/channel-routing/tests/channelRouting.test.mjs frontend/src/features/codex/codexAccountList.test.mjs` 通过。 |
13 | 17 | - 风险:当前 in-app browser 里按钮点击没有稳定触发可见状态变化,视觉上只能确认新布局已热更新;同时 `npm --prefix frontend run typecheck` 仍被仓库里既有的 `UnifiedComposeModal.tsx` `formatLabel` 缺失报错阻断。 |
14 | 18 |
|
| 19 | +## routing.strategy 完整绕过计划启动 |
| 20 | +- 决策:Codex / Claude 的 channel routing 进入“完整绕过 `routing.strategy`”收口,后续以 `channel-routing` 快照作为唯一决策源;旧 `config.yaml` 只保留 legacy relay 边界,不再参与渠道路由主路径。 |
| 21 | +- 计划:已新增 space 计划 [routing.strategy 完整绕过实施计划 v01](../spaces/20260524-account-routing-engine/plans/routing-strategy-bypass-v01.md),首批动作是补红灯测试,锁住 `config.yaml` 与 `channel-routing` 的分裂现象,再拆读写链路。 |
| 22 | +- 风险:如果侧边车仍有遗留路径读取 `routing.strategy`,请求结果会继续出现“配置已改、实际路由没改”的错觉;这次必须同时断读取和写回。 |
| 23 | + |
15 | 24 | ## Codex 路由不切换的诊断 |
16 | 25 | - 结论:当前“看起来有另外两个可用号,但请求仍死盯第一个号”的现象,主要不是账号卡展示问题,而是运行时路由没有把 quota 预览状态纳入候选阻断;本机 sidecar 的 `~/.config/gettokens/config.yaml` 仍是 `routing.strategy: fill-first`,而 `~/.config/gettokens-data/channel-routing/config.json` 里的 `routeMode: balanced` 是独立工作台状态,二者没有自动同步。 |
17 | 26 | - 证据:`channel-routing` runtimeStates 为空,说明没有额外的运行态阻断把那三个账号拦住;`fill-first` 会优先反复选第一个仍然 requestable 的账号,所以 5H 视图里显示 0% 也不会自动把它踢出候选池。 |
|
21 | 30 | - 决策:`#frame=accounts` 的独立 `+ ADD ACCOUNT` 按钮不再单独占据 header 动作区,改为收进右侧 actions menu 的第一项;同一个菜单继续承载 `ChatGPT 登录`、`导入 Auth File`、`粘贴账号内容`、`添加 Codex API Key` 和 `轮动设置`,避免 header 再出现一层独立入口。 |
22 | 31 | - 实现:`AccountsHeader` 新增扁平菜单模型与图标映射,菜单项使用纯行式 hover / active 状态,不再套用 card shell;`+ ADD ACCOUNT` 保持原文案但只在菜单中出现。 |
23 | 32 | - 验证:本地预览确认 header 外只剩刷新与菜单按钮,菜单展开后首项为 `+ ADD ACCOUNT`,并且菜单项没有 border/shadow 卡片壳。新增单测 `frontend/src/features/accounts/tests/accountHeaderMenu.test.mjs` 已通过。 |
| 33 | +- 补充:用户反馈菜单项字号过小后,将 actions menu 行字号提升到 `--font-size-ui-md`,图标同步提升到 20px;Playwright 复核 5 个菜单项实际字号为 12px、行高 44px,且无横向溢出。 |
24 | 34 | - 归档:验收截图已保存到 `docs-linhay/spaces/20260526-account-provider-picker-icons/screenshots/20260526/accounts/20260526-accounts-header-actions-menu-after-v01.png`。 |
25 | | -- 风险:`npm run typecheck` 当前仍被仓库里既有的 `ChannelRoutingWorkbench` `onSave` 契约问题阻断,和这次账号页头收口无关,后续需要单独修。 |
| 35 | +- 归档:字号修正截图已保存到 `docs-linhay/spaces/20260526-account-provider-picker-icons/screenshots/20260526/accounts/20260526-accounts-header-menu-font-after-v01.png`。 |
26 | 36 |
|
27 | 37 | ## v1.0.28 发版验收 |
28 | 38 | - 结论:`v1.0.27` tag 已推到远端但未触发 Release workflow;按发布治理“不复用已创建 tag”的规则,版本继续 bump 到 `1.0.28` 并发布 `v1.0.28`。 |
|
0 commit comments