Skip to content

test(workspace): respect modal Todo refresh boundaries - #7475

Merged
huangruiteng merged 1 commit into
mainfrom
codex/workspace-browser-ci-recovery-20261027
Oct 27, 2026
Merged

huangruiteng merged 1 commit into
mainfrom
codex/workspace-browser-ci-recovery-20261027

Conversation

@loopx-agent

Copy link
Copy Markdown
Collaborator

At narrow widths the Todo inspector makes the underlying workspace inert. The blocked-reason browser scenario still tried to activate the hidden workspace refresh button, so packaged browser CI timed out before reading the repaired dependency state.

Close the narrow inspector with Escape, refresh through the existing status owner, then reopen the same Todo. Keep the desktop inspector open during refresh. Assert modal/inert behavior before and after recovery; retain the real File-authority CLI updates, missing-reason case, delayed response check and zero browser writes.

Validation at ca17664d0ccf6176373cbc8cb57515c1c6591880 on main 17b2a0f9b818dc6e6fe77ccc567b20ff91b3bc40:

  • Reproduced the original packaged timeout on the unchanged base. Diagnostic readback identifies the narrow inspector as modal with the workspace inert; the desktop path completes.
  • Packaged blocked-reason-readback passes Chinese/English × desktop/390px, including reopening the same task and restoring modal isolation.
  • Packaged task-inspector-return passes; typed-actions also passes on this main, which already contains the compact-header correction from test(workspace): follow current composer and settings actions #7427.
  • JavaScript syntax, diff hygiene and standard premerge pass. No production markup, styling, runtime behavior, scoring or default changes.

Browser evidence: manually inspected the same packaged UI against a disposable canonical authority in Ego Lite, including desktop versus narrow layout, Escape, real CLI dependency repair, refresh and updated task readback. This is synthetic local browser validation; it is not installed-App or live-model qualification. The fixture's unavailable execution service remains visibly unavailable. No first-screen design change is proposed.

#7427 and #7467 are already merged. This follow-up addresses the remaining browser qualification failure; their historical failed checks remain historical failures. Remote CI and independent review are separate from these local results.

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; gpt-6.1-sol; OpenAI; runtime_reported; reasoning_effort=max

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

动机 / Motivation

运行打包浏览器验收的维护者会遇到此问题。原场景在窄屏详情打开后操作已 inert 的工作区刷新控件并超时;本次先 Escape 返回工作区,刷新后重开同一任务。后台依赖已修复却无法完成页面读回,会使打包验证失去作用。同一真实 File CLI→HTTP→打包页面的中英、桌面与 390px 场景全部完成,modal/inert 隔离仍成立。本 PR 只修复验收路径,不更改产品交互、状态权限或默认行为,不证明安装态、真实模型或远端 CI 合格。

改动思路 / Approach

沿用既有 refresh 和 openTodo:桌面详情非 modal,保持打开刷新;窄屏详情 modal,关闭后才能操作工作区,再以原任务身份重开。做更小的超时调整不能让 inert 控件合法接收输入,修改产品隔离规则也不符合本次验收目标。此次直接修原场景,无新增 fixture、通用 wrapper 或第二套刷新 owner。

具体改动 / Changes

审阅完整 base 17b2a0f9b818dc6e6fe77ccc567b20ff91b3bc40 → head ca17664d0ccf6176373cbc8cb57515c1c6591880,仅 examples/personal-workspace-browser/blocked-reason-readback.mjs 一处测试文件,+15/-2;生产 JSX、样式、HTTP、CLI 和 canonical authority 均未修改。

规范 spec_ref=docs/development/good-smokes.md,spec_revision=17b2a0f9b818dc6e6fe77ccc567b20ff91b3bc40:Start With The Contract 对应既有真实 CLI/HTTP 边界;Prefer Semantic Pressure 对应刷新前后 modal/inert、延迟响应、缺原因和归档反例;Public-Safe Fixtures 对应一次性合成 authority 及确定性清理,三项均 implemented。

原有原因全文、循环依赖修复、桌面保持详情打开、延迟响应计时、缺失原因、完成归档历史及零浏览器写入断言均保留。新增窄屏 Escape 后工作区恢复可用,以及重开后再次隔离的断言,未用直接 DOM click 绕过产品约束。

对主干的风险 / Risks

未发现阻塞问题。独立在不可变 base 重现原始 page.waitForResponse 30 秒超时;同一打包入口在 head 通过中英 × 桌面/390px 四组,实际 CLI 更新依赖后读回等待状态。另跑 task-inspector-return 与 typed-actions 均 PASS。JavaScript syntax 和 standard premerge 的 4 项 direct、2 项 catalog、1 项 public-boundary 检查全部 PASS,无 manual hold。

邻近 task-inspector-return 负责尺寸切换和返回焦点,当前场景负责真实 canonical 依赖/原因变化后的刷新读回,两者不是同一断言的重复实现。核对当前完整队列及同账号最近 20 项 PR,未见同形新增 smoke 批量复制;共享账号不作为同一 Agent 身份证明。

我的整体评价 / Verdict

APPROVE;交付判断为 goal_achieved,仅指这项可独立复验的测试维护。long_horizon=preserved、user_experience=preserved:产品路径不变,测试继续覆盖恢复和无重复写入。视觉审阅不适用:唯一改动为浏览器验收脚本,渲染页面、文案与布局逐文件未变;本结论不声称视觉改善,安装态及真实模型行为仍未验证。

代码量必要;已检查同域简化,直接复用现有两个 helper 更清楚,无需另抽一层。原 base 失败按其版本保留,源码与打包验证不能冒充远端 CI 或合并授权。

English verdict: APPROVE ca17664; the narrow modal refresh regression is reproduced at base and the packaged recovery path passes without changing production behavior.

@huangruiteng
huangruiteng merged commit 1d78f57 into main Oct 27, 2026
22 of 35 checks passed
@huangruiteng
huangruiteng deleted the codex/workspace-browser-ci-recovery-20261027 branch October 27, 2026 11:27
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