Skip to content

fix(status): show receipt-owned retries in task details - #6369

Merged
huangruiteng merged 2 commits into
mainfrom
codex/blocked-retry-status-20261011
Oct 13, 2026
Merged

huangruiteng merged 2 commits into
mainfrom
codex/blocked-retry-status-20261011

Conversation

@loopx-agent

Copy link
Copy Markdown
Collaborator

Status omitted receipt-owned retry waits, so the task inspector could call an OPEN task “Ready” even while quota correctly waited for the original attempt. Status CLI/HTTP now reuse the existing per-agent retry projection before building the Todo index; task details show the original recorded time, retry-check deadline and Turn, with waiting copy that requires a fresh eligibility check.

The projection expires at the original deadline or on a superseding work Run. Canonical waits, foreign claims, receipts, schedulers, quotas and independent work keep their existing authority; this adds no execution action or timer. The nested readback remains available to structured status consumers.

Validation:

  • 79 focused Python tests, including real File/SQLite status CLI and HTTP reads, unchanged canonical records/history and no spend.
  • Four frontend readback tests, existing workspace contract check and full Dashboard/Chat build.
  • Premerge: five direct and seventeen selected checks passed after regenerating the existing registry I/O line metadata; the initial failure was retained.
  • Ego Lite consumed a real isolated File-provider HTTP projection in the production task-inspector component, in Chinese at 1440px and English at 390px; no horizontal overflow, keyboard close worked. The validation clock and task were synthetic.

The source/UI slice is qualified. Default desktop installation, full packaged App adoption and live Lark delivery are separate stages and were not performed. No new Lark write path is needed for this read-only status change.

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

@loopx-agent loopx-agent left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewer: model_agent; model=gpt-6.1-sol; provider=OpenAI; runtime_reported; reasoning_effort=xhigh

Approval conclusion (author-owned PR; GitHub blocks formal self-approval)

动机

查看原尝试为何等待、何时可以再次核验资格的 Goal 操作员。 quota 已识别原回执的等待,旧 status 却遗漏它,任务详情可能显示可执行;当前从同一来源读回原时点。 CLI/HTTP及任务详情显示原尝试的等待与来源,到期或新工作后下一次读取恢复,任务与回执不写入。 本次不改变任务完成、claim/lease、quota或scheduler权限,不增加执行按钮、计时器或Lark写入。 默认桌面安装、完整App采用和真实Lark送达仍未认证;本轮浏览器消费真实隔离状态,任务/Run为synthetic且没有模型执行。

改动思路

复用原 per-agent retry owner,在 status 构建索引前传递等待事实;任务详情只读原来源,不新增计时器、资格判定或操作权限。 本批交付 status 到现任务详情的完整只读切片;默认安装与真实外部渠道采用独立验收。 既有 history semantic snapshot 在压缩前提供活跃 Run,status 同时投影 agent_todos/project_asset,然后原索引与UI model传播。日期沿原 UTC formatter,原始协议身份留在详情。

具体改动

精确头部 04c796d951e0912e5c6e76fc2d9ba47c76e15866,10files+248/-5; productiontransport34lines, existingUI11lineadjustment and12line readback,149line realprovider-focused tests, bilingual protocol17lines。先读不可变 a4ffcf3f158a77f58cb2df4a824914c02c1d5f73 的 docs/reference/protocols/quota-blocked-causal-closeout-v0.md,按原要求核验;本段行标签仅为评审映射:original-receipt-scope implemented; read-only-recheck implemented; installed-adoption deferred。新的成功陈述不改写原验收。

  • overlay_status_turn_retries 枚举实际actor,调用原overlay而非复制资格规则;在 collect_status 索引前使用。
  • resume_condition.blocked_retry 保留现回执来源,canonical Todo仍未修改。
  • receiptRetryReadback/workspaceAgentTodoFromItem 检查同Todo/claimant及来源、时间/Turn类型,提供纯显示数据。
  • ContextDrawer 状态、下一转换及三项原始时间/Turn读回统一为等待;i18n 中英文明确只是重新核验资格。
  • 149行新增测试覆盖实际provider入口与原bytes,注册manifest只更新原collector行号。

对主干的风险

最高风险是status借用错误actor或用压缩尾部丢失等待;当前精确scope/semantic-history/expire/new-run反例排除。普通列表仍显示OPEN是canonical lifecycle事实,详情解释原尝试等待;不将其改写为新执行状态。 独立13项新增 Python 和31项相关 Python通过;同一原业务断言的实际File/SQLite×CLI/HTTP四组基线全部缺resume_condition、当前四组通过且状态/registry/Run bytes不变。四项前端读回、workspace contract和正常Chat构建通过。 到期、其他Goal/claimant、canonical等待、已完成及superseding工作不借用旧retry;额外同Goal新Todo/foreignowner隔离通过。实际打包Web+生产File后端中英文任务详情显示原时间/Turn,390px无横向溢出,键盘关闭;原due前加入新synthetic工作后同一详情恢复Ready,原回执未改。

语义与 CI 对齐

默认status now includes legitimate receipt-owned waiting provenance; execution/selection semantics unchanged. Existing nested status vocabulary, no new machine flag; waiting copy expressly requiresfresh check, no executionauthority. Development advisory 后风险canary5direct/17selected全部通过,0advisory;normalChat build含TypeScript检查通过。 按当前 wait_for_ci=false 未查询、轮询或等待 CI;独立执行数量与作者声称分开。PackagedWeb built currentH with normal serve_chat/productionFile backend; synthetic isolatedsource/Run/clock. No defaultdesktopinstall/liveHost/Lark. Initialpair wrongcwd importerror and Ego stale ref preserved; recovered with intendedroot/currentstate, no assertionrelaxation. Browser-close cancelledHTTPrequests produced BrokenPipe in unchangedhandler duringcleanup, no stateeffect.

我的整体评价

APPROVE。原等待能在当前task详情完整读回,错误不会转为授权;真实原始来源和恢复路径均有证据。 复用原 per-agent retry owner,在 status 构建索引前传递等待事实;任务详情只读原来源,不新增计时器、资格判定或操作权限。 本批交付 status 到现任务详情的完整只读切片;默认安装与真实外部渠道采用独立验收。 默认桌面安装、完整App采用和真实Lark送达仍未认证;本轮浏览器消费真实隔离状态,任务/Run为synthetic且没有模型执行。 近邻整理采用原日期/读回 helper,status 只加有界适配;未新增第二套资格判断。

English verdict: APPROVE — 04c796d. 44Python and4frontend tests pass; literal File/SQLite CLI/HTTP comparison fails4 on the immutable baseline and passes4 on this head. Current built Web with real File backend shows bilingual original-clock provenance and recovers on superseding work without mutating receipts.5direct/17selected pass; defaultdesktop/liveLark remain unqualified.

@huangruiteng
huangruiteng merged commit fd4d203 into main Oct 13, 2026
37 of 52 checks passed
@huangruiteng
huangruiteng deleted the codex/blocked-retry-status-20261011 branch October 13, 2026 11:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants