## 结果 app 运行任意时长,平台模型调用使用的 token 始终有效;续期由真实 `expiresAt` 驱动,一切成功续期(含 account 401 重试路径)汇入同一换血入口。 ## 背景(正确性缺陷,非 UX) 注释/测试/整点 tick 调度按 ~7 天 token 假设设计,真实 TTL = 15 分钟 ⇒ 运行中的 sidecar 可携带过期静态 token 数十分钟;account summary 401 触发的续期只更新 main 内存,不换 sidecar 的 {file:} 密钥。Codex 对抗轮定性:正确性问题(2026-07-23)。 ## AC - AC1 续期调度由 `expiresAt/refreshDueAt` 驱动(成功刷新/系统唤醒/登录变化后重排),小时轮询废除。证明:调度单测。 - AC2 任何路径的成功续期后,sidecar 在换血窗口内不再使用旧 token;UI 已恢复态下的首次平台推理不得 401。证明:T7 跨两个 TTL 周期长会话用例。 - AC3 续期失败分类(refreshed/still-valid/transient/invalid-grant):transient 降级保持、禁循环 respawn;invalid-grant 走登出语义。证明:状态机单测。 - AC4 换血遇活动流式生成的行为有明确安全边界并被验证。证明:T7 专项用例。 - AC5 token 不进 sidecar env/renderer/IPC/日志(A6 不变量回归)。证明:既有断言套件扩展。 ## 复杂度 M(单一换血入口 + 调度重写;与 REQ-109 的 A′ 共享续期结果建模) ## 方案基线(共享) https://github.com/jinjunnn/alpha-code/blob/99df5b32d/docs/design/2026-07-23-startup-availability-baseline.md(§① 第 6 条、§② TTL 调度修正、§④ T5) ## Out of scope - 15 分钟 TTL 契约本身的变更(平台侧);D 中继架构(另立)。
Activity
fix(ui-mac): close active connections on token-only rotation stop (#911)
fix(ui-mac): bound the boot fork token-generation settlement
fix(ui-mac): bound the boot fork token-generation settlement (#859) (#…
[-][REQ-110] 平台 token 全程有效:15 分钟 TTL 下运行中的平台调用不因过期 401[/-][+][REQ-162] 平台 token 全程有效:15 分钟 TTL 下运行中的平台调用不因过期 401[/+]jinjunnn commentedon Sep 17, 2026
编号更正(2026-09-16):本需求由 REQ-110 改为 REQ-162。
原因:REQ-110 在 2026-07-18 已由 jinjunnn/alpha-work#12(支付结果按订单归属生效)先行登记;本需求 2026-07-24 在 alpha-code 本地复用了同一个号。
已同步:本需求及其名下 alpha-code 子票标题前缀一律改为
[REQ-162]。未改:仓内历史文档(如docs/verification/2026-07-24-req109-110-pr3-longrun.md)与已合并 PR 中的 "REQ-110" —— 在「平台 token 续期」语境下出现的 REQ-110 即指本需求。jinjunnn commentedon Sep 17, 2026
owner 2026-09-17 裁决:按证据验收,关闭。
这个需求交付的是:桌面端的平台凭证(15 分钟过期)无论应用运行多久,都按真实过期时间自动续上,续上后引擎立刻换用新凭证,平台模型调用不会因凭证过期而失败;续期失败按原因降级或登出;凭证不出现在环境变量、界面、进程间消息或日志里。五条验收均按原文判定,未改写。alpha-code#799(换凭证后发消息偶尔被拦「模型没加载」,8 月 2 日见过一次、未复现)的现象是发送前被拦、不是 401,与 AC2 的判据不同,作为独立 bug 保留开着。
packages/ui-mac/src/main/alpha-auth-clock.ts:1-35(提前 1/3 寿命、封顶 5 分钟,按 expiresAt 排程)与alpha-auth-clock.test.ts(#534 / PR #556);docs/verification/2026-08-06-req109-110-t7-runtime/README.md:60「accelerated two-TTL session」两次续期、两次换血、reload=0alpha@5f8d6096d打包实测 mounts=1、reloads=0,首恢复请求 200 且只带renewed凭证packages/ui-mac/src/main/auth-renewal.test.ts:708分类用例坐标于 2026-09-17 在 alpha-code
origin/alpha@8eb092b73上核对仍然成立。子票 alpha-code#858、#859 已关。