Repository navigation
fix(heartbeat): qualify complete thin prompt capability routes - #7701
Conversation
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: model_agent; gpt-6.1-sol; OpenAI; runtime_reported; reasoning_effort=max
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
动机 / Motivation
使用完整能力声明和长 scope 的心跳调用者会遇到错误的超限诊断。
同一合法调用保留五项能力、320 字符 scope 和显式 CLI 路由,旧预算把 4,851 字符判为超限,新预算按 4,900 字符正确接纳。
已验证正文与所有非预算字段一致,诊断由超限变为合规,更长路由仍报告超限。
本 PR 不缩短提示、不证明模型行为或运行恢复,也不修改执行权限和宿主硬上限。
标准 premerge 的 120 秒 smoke 超时仍是独立合入等待项,完整 owning smoke 已通过。
改动思路 / Approach
唯一薄提示预算已有统一 owner,校准该展示策略比删除有用指令或另建路由特例更简单。
本 PR 只交付薄提示预算、对应回归测试和预算取舍说明;原自动订阅切换修复、业务消息与其他预算不在此 diff。
普通 heartbeat-prompt 先生成完整正文,再由统一预算 owner 归一化路径并计算展示诊断。另一个真实调用者是 --bootstrap:已有校验会读取同一 within_budget,因此本次校准也会接纳原来处于 4,500—4,900 区间的 bootstrap;这项间接行为已独立验证并明确披露。它没有新增权限、重试、持久状态或第二套消息消费者。保留旧上限会继续误报;删减能力、结算或恢复要求则会损害信息价值,另建路由特例也没有必要。
具体改动 / Changes
评审依据为 docs/development/testing-and-quality.md#budget-failure-decisions,固定修订 a36e01c32b0a290a96466c766629a0b01850f823。先读取该版本原有三条规则,再检查本 PR 的解释新增,避免用刚修改的说明为实现自行背书。
| 原规则 | 本 head 的处置 | 实际证据 |
|---|---|---|
| 1 同口径测量 | implemented | 同一完整 CLI 夹具为 4,851 归一化字符;原 4,500 失败保留,正文原始长度 5,143 与归一化口径分列。 |
| 2 信息价值与语义 | implemented | 正文及所有非预算字段一致;能力、完整路径、结算与未知效果恢复要求均保留。 |
| 3 取舍披露和复验 | implemented | 4,900 留 49 字符余量,增加超长路由反例;4,000 宿主硬上限和冻结资格阈值不变。 |
关键代码讲解
INTERFACE_BUDGET_CHARS 是已有模式预算的唯一 owner。仅 thin 从 4,500 调到 4,900,其他模式没有跟随增长。代码注释、两个既有期望值和开发说明同步更新,完整 diff 为四个文件 +64/-4,没有引入新的生产模块或公共协议。
build_interface_budget 继续使用原路径归一化和长度比较,返回真实长度与预算判断,不截断正文。生产调用来自 builder 和 bootstrap 校验。新增实际 CLI 测试覆盖五项能力、320 字符 scope、显式路由及更长路由仍超限;独立 bootstrap 对照中,11 个 scope 的 4,294 字符两边均通过,12 个的 4,629 从拒绝变为接纳,13 个仍以原错误拒绝。
对主干的风险 / Risks
最强反例是加预算掩盖了正文丢失或绕过硬边界。相同正文摘要、非预算字段比较、完整指令断言、超长路由反例及既有宿主限制测试共同覆盖它;117 项定向测试通过。直接运行完整 owning smoke 也通过,耗时 176.660 秒,原有内部探针限时未变,没有缩小负载。
标准 premerge 仍为 FAIL:唯一失败项是输出预算 smoke 在 120 秒外层限制下超时,head 记录为 122.621 秒。未修改的固定基线 a36e01c32b0a290a96466c766629a0b01850f823 运行同一命令和 120 秒限制,也在 120.100 秒超时,两边 stdout/stderr 均空。该 smoke 的脚本、负载和两个 240 秒探针未由本 PR 修改,新增两项测试也不在该 smoke 的前置调用列表中;结合完整 smoke 和变更不变量的独立通过,将此项归为 pre_existing_unrelated,但单独保留合入等待。没有用后一次成功覆盖失败,也没有提高外层限时。远端 CI 按当前策略未查询。
语义与 CI 对齐
本次复用既有展示预算词汇,明确区分 ordinary 诊断、bootstrap 校验和 4,000 字符宿主硬上限。没有授予执行额度或动作权限,未改变状态分类、范围选择及结算义务。回滚只需恢复原常量和对应测试说明;历史失败仍需保留。49 字符余量不是所有未来路由都可容纳的保证。
我的整体评价 / Verdict
在 3b562b1030c1924817e135387b1efc713618a863,本次是有用且可独立回滚的 justified_increment:long_horizon 和 user_experience 均 improved,消除了完整调用的误导性尺寸反馈,没有增加人类交互轮次或新的运行状态。一个已有常量承担策略,代码规模与故障范围相称;没有新增默认关闭能力、兼容协议或权限 owner。没有渲染布局或提示正文变化;检查的是 CLI 诊断元数据和同一 bootstrap 校验路径,因此截图不适用。 未验证展示范围为 none;模型遵从、运行部署和性能改进不在此结论中。
APPROVE 仅表示本 diff 的价值、语义和变更不变量已核验;标准 smoke 的既有超时仍是独立 merge hold。当前不据此合入或安装,也不把该校准当作业务任务完成。
English verdict: APPROVE 3b562b1; complete thin-route calibration is validated, with a separate pre-existing 120-second smoke merge hold.
Goal And Delivered Outcome
Complete thin heartbeat prompts with five runtime capability flags, a 320-character scope, Codex App transport and an explicit CLI route emit 4,851 normalized characters. The old 4,500-character presentation allowance incorrectly reports that supported combination as over budget. This changes only that allowance to 4,900; the emitted body and arguments remain identical.
Intended base:
main.Author Declaration
Written by: OpenAI GPT-6.1 Sol, model agent.
Implemented against
docs/development/testing-and-quality.md#budget-failure-decisionsata36e01c32b0a290a96466c766629a0b01850f823:Scope And Continuation
Complete within the diagnostic-calibration scope. This does not reduce output, change execution authority, or establish model behavior or runtime recovery. The existing bootstrap validator also consumes this allowance: a synthetic complete 4,629-character bootstrap changes from rejection to acceptance, while the larger 13-scope case still rejects with the unchanged error. This is a presentation-policy validation change, not transport or execution authority. Merge qualification remains on hold for the separate standard-runner timeout below.
Validation
3b562b1030c1924817e135387b1efc713618a863.Full owning base/head differential: passed, exit 0. The standard 120-second premerge smoke remains a separate pre-existing merge hold; it is not relabeled as passing. No installed-runtime or model-behavior improvement is claimed.
Frontend / Visual Evidence
UI impact: none. No layout, documentation chrome or rendered prompt text changed; screenshots and viewports are N/A.
Type of Change
LoopX Area
Technical Direction
Existing heartbeat output-budget diagnostics; no new runtime, owner, protocol or vocabulary.
Shared-authority RFC fixture impact
N/A: no authority-provider or migration claim.
Boundary Checklist