fix(desktop): 修复 Claude 官方订阅下 Fable 模型周限不显示 (#3244) - #3260
Conversation
|
| Filename | Overview |
|---|---|
| apps/desktop/src/shared/claudeSubscriptionUsage.ts | 扩展 Fable legacy 周窗口解析,并统一 scoped 窗口的家族匹配与按家族去重逻辑。 |
| apps/desktop/src/main/usage/tests/claudeSubscriptionUsage.test.ts | 覆盖 Fable display_name 变体、modelId 优先级、legacy 兜底及混合 schema 合并行为。 |
Reviews (8): Last reviewed commit: "fix(desktop): merge legacy scoped usage ..." | Re-trigger Greptile
MagicLizi
left a comment
There was a problem hiding this comment.
格式门未通过,请先补齐 PR 模板后再请求审查。
- Description 缺段落:
这次改了什么/怎么验证的/风险
当前正文有问题/根因/修复/测试,但标题与模板字段对不上,机器门禁和后续审查都对不齐。
请按仓库 .github/PULL_REQUEST_TEMPLATE.md 用这三段重写 Description(可把现有根因/测试内容挪进对应段),推新 commit 或 gh pr edit 更新描述后即可再审。
|
已按 |
8128b3d to
5168049
Compare
|
已按上条意见用 |
|
申请复审 @MagicLizi @dashhuang:格式意见已处理(Description 按模板补齐三段),并已 rebase 到最新 |
CI 红叉说明:与本 PR 无关的主干既有 flaky 测试最新一轮(head 证据表明这是
我无 admin 权限重跑失败 job( |
54f8223 to
9a71993
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9a719931e3
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@yuaiccc 👋 这个 PR 还有 1 条 review conversation 没 resolve(apps/desktop/src/shared/claudeSubscriptionUsage.ts),auto-review 因此暂时跳过、没法继续审查 / 合并。 如果你已经按评论改完或回应了,请到对应 thread 上点 Resolve conversation;全部 resolve 后,下一轮 auto-review 会自动重新审查这个 PR。 |
|
Description 已按 当前 head 麻烦 @MagicLizi 复审并 dismiss 原 CHANGES_REQUESTED,谢谢。 |
matchScopedWindowForModel 之前用 modelDisplayName 小写后与家族名精确相等匹配, 但端点对 display_name 的口径历史上有 'Fable' / 'Claude Fable' / 'Fable 5' 等形态,精确等于会漏掉变体;Opus/Sonnet 碰巧用短名所以正常。 两处修复: 1. matchScopedWindowForModel 改为 includes 家族名(家族互斥不会误命中) 2. 旧 schema 兜底补 seven_day_fable 顶层键——原先只列了 Opus/Sonnet, 走旧端点或降级快照时 Fable 周限直接丢失 补两条回归测试:display_name 变体匹配、legacy seven_day_fable 解析。 Signed-off-by: yuaiccc <yuaiccc@aliaun.com>
Signed-off-by: yuaiccc <yuaiccc@aliaun.com>
9a71993 to
e9e80f0
Compare
|
Codex P1 已按“按模型家族合并 legacy fallback”处理并推送到最新主干基线。
@codex review 请基于最新 head 复核。 |
|
Codex Review: Didn't find any major issues. Nice work! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
这些问题已在当前 head 的后续 commit 中修复(格式门/安全门已通过),自动 dismiss 旧的 CHANGES_REQUESTED 以解除合并阻塞。
|
合了。Fable 周限这次能对上 display_name 变体和旧 schema,订阅栏不会再只剩 Opus/Sonnet。 |
这次改了什么
摘要
修复 Claude 官方订阅下会话信息栏 Fable 模型周限不显示的问题(#3244,必现;同环境 Opus/Sonnet 正常)。
根因有两处:
matchScopedWindowForModel用modelDisplayName.toLowerCase() === family精确匹配,但端点对 display_name 的口径存在Fable/Claude Fable/Fable 5等变体,精确等于会漏掉变体(Opus/Sonnet 碰巧都是短名才没暴露)。parseClaudeOAuthUsageResponse的seven_day_*顶层键)只列了 Opus/Sonnet,漏了 Fable,走旧端点或降级快照时 Fable 周限直接丢失。修复:匹配改为
includes(family)(家族名互斥,不会跨家族误命中);旧 schema 兜底补seven_day_fable;文件头注释同步。变更类型
feat新功能fix缺陷修复refactor/perf重构或性能优化docs/test/chore文档、测试或工程维护范围
apps/desktop/src/shared/claudeSubscriptionUsage.ts匹配与 legacy 兜底修复;apps/desktop/src/main/usage/__tests__/claudeSubscriptionUsage.test.ts两个回归用例UI 变化
不涉及:本次仅修正 usage 数据解析与匹配逻辑,未改动任何 UI 组件、样式或文案;展示路径(TodaySpendChip 等)不变,原本拿到数据就能显示。
怎么验证的
自动验证
CI:client-ci(Linux/Windows unit tests、verify、Desktop Git integration)、DCO、pr-design-basis、Greptile Review 均为 SUCCESS。
手工验证
不涉及:缺陷为纯数据解析/匹配逻辑,已由针对性回归测试覆盖 display_name 变体与 legacy schema 两条触发路径;无 UI 视觉或交互变化需要目检。
未执行的验证
无。
风险
风险分类
影响与回滚
includes后,由于claudeModelFamily返回的家族名(fable/opus/sonnet)互斥且不会作为子串出现在彼此的 display_name 中,不会跨家族误命中;Opus/Sonnet 现有行为不变。legacy 兜底仅在seven_day_fable存在时新增一个 Fable 窗口,缺字段时行为与之前一致。提交前检查
git commit -s,见 DCO)