Skip to content

Commit 0c605ac

Browse files
author
liyanbowne
committed
docs(internal): sync list and watch design notes
1 parent 7091baf commit 0c605ac

File tree

2 files changed

+34
-16
lines changed

2 files changed

+34
-16
lines changed

docs/internal/codexm-list-display-design.md

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ summary 区不应变成第二张表,也不应展开实现细节或推导过程
5959
| `ETA` | 预计变为不可用的剩余时间 |
6060
| `5H USED` | 当前 5 小时窗口使用率 |
6161
| `1W USED` | 当前 1 周窗口使用率 |
62-
| `NEXT RESET` | 当前瓶颈窗口的下一次恢复时间 |
62+
| `NEXT RESET` | 当前账号下一次恢复可用性的关键时间点 |
6363

6464
默认视图不再保留以下列:
6565

@@ -209,7 +209,7 @@ Total: bottleneck 0.39 | 5H->1W 0.39 | 1W 0.42 (plus 1W)
209209

210210
### 5.7 `NEXT RESET`
211211

212-
`NEXT RESET` 只显示当前瓶颈窗口里最关键的那次恢复时间
212+
`NEXT RESET` 只显示当前账号下一次恢复可用性的关键时间点
213213

214214
显示形式:
215215

@@ -218,10 +218,17 @@ Total: bottleneck 0.39 | 5H->1W 0.39 | 1W 0.42 (plus 1W)
218218

219219
默认视图不同时展示两个窗口的 reset。
220220

221+
规则:
222+
223+
- 若账号当前已被 `1W` 窗口阻塞,则显示 `1W RESET AT`
224+
- 若账号当前已被 `5H` 窗口阻塞且 `1W` 未阻塞,则显示 `5H RESET AT`
225+
-`5H``1W` 同时阻塞,则显示两者中更晚的那个 reset,因为那才是账号真正恢复可用的时间
226+
- 若账号当前仍可用,则显示当前更关键约束窗口对应的下一次 reset
227+
221228
设计原因:
222229

223230
- 默认视图里同时放 `5H RESET AT``1W RESET AT` 会显著加宽表格
224-
- 用户默认只关心“下一次什么时候会改善当前瓶颈
231+
- 用户默认更关心“这个账号什么时候真正恢复可用”,而不是“最早哪个窗口先 reset
225232

226233
## 6. 展示格式
227234

@@ -236,16 +243,17 @@ Accounts: <x>/<n> usable | blocked: 1W <a>, 5H <b> | plus x<c>, pro x<d>, team x
236243
规则:
237244

238245
- `usable` 表示当前仍可进入候选集的账号数
239-
- `1W blocked` 表示 1 周窗口已阻塞的账号数
240-
- `5H blocked` 表示 5 小时窗口已阻塞但 1 周窗口未阻塞的账号数
241-
- `plans` 表示按 plan 聚合后的账号数分布
246+
- `blocked: 1W <a>, 5H <b>` 表示阻塞账号按主阻塞窗口拆分后的计数
247+
- 其中 `1W` 表示 1 周窗口已阻塞的账号数
248+
- 其中 `5H` 表示 5 小时窗口已阻塞但 1 周窗口未阻塞的账号数
249+
- 末尾 plan 段表示按 plan 聚合后的账号数分布
242250

243251
如果某个 plan 的账号数为 0,则不出现在 `plans` 段里。
244252

245253
设计原因:
246254

247-
- `usable` / `1W blocked` / `5H blocked` 是默认 summary 中最有决策价值的池子级信号
248-
- `plans` 能快速帮助用户理解账号池结构
255+
- `usable` `blocked` 拆解是默认 summary 中最有决策价值的池子级信号
256+
- plan 分布能快速帮助用户理解账号池结构
249257

250258
### 6.1 Total 行格式
251259

docs/internal/design-history/2026-04-10-codexm-watch-eta-design.md

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -147,28 +147,38 @@ eta = remaining_budget / global_rate_in_1w_units_per_hour
147147
也就是说:
148148

149149
- `1W` 先按 plan 的周额度 profile 归一化
150-
- `5H` 先按 plan `5H` 容量 profile 归一化,再换算成 `plus 1W` 单位
150+
- `5H` 先按同一 plan 的原始 `5H:1W` 比例折算到 `1W`,再换算成 `plus 1W` 单位
151151

152152
实现上集中维护一张 plan profile 表:
153153

154-
| plan | `5H` 容量(plus=1) | `1W` 容量(plus=1) |
154+
| plan | 原始 `5H:1W` 比例 | `1W` 容量(plus=1) |
155155
| --- | ---: | ---: |
156-
| `plus` | 1 | 1 |
157-
| `prolite` | 5 | 25/6 |
158-
| `pro` | 10 | 25/3 |
159-
| `team` | 1 | 1 |
160-
| `unknown` | 1 | 1 |
156+
| `plus` | `20/3` | `1` |
157+
| `prolite` | `50/9` | `25/6` |
158+
| `pro` | `50/9` | `25/3` |
159+
| `team` | `20/3` | `1` |
160+
| `unknown` | `20/3` | `1` |
161161

162162
换算规则:
163163

164164
```text
165165
five_hour_equivalent_in_plus_weekly_units =
166-
five_hour_percent * plan.five_hour_capacity_in_plus_units / 8
166+
(five_hour_percent / plan.five_hour_to_one_week_raw_ratio) *
167+
plan.one_week_capacity_in_plus_units
167168
168169
one_week_equivalent_in_plus_weekly_units =
169170
one_week_percent * plan.one_week_capacity_in_plus_units
170171
```
171172

173+
这里不再假设“一周固定包含多少个 5H 窗口”。
174+
175+
实现直接使用每个 plan 的经验原始比例:
176+
177+
- `plus/team``3:20`
178+
- `pro/prolite``9:50`
179+
180+
这样可以把“同一 plan 内的 `5H:1W` 关系”和“不同 plan 间的周额度容量比”分开表达,避免把两层语义混在单一窗口数假设里。
181+
172182
全局速率定义为:
173183

174184
```text

0 commit comments

Comments
 (0)