Repository navigation
test(workspace): respect modal Todo refresh boundaries - #7475
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
运行打包浏览器验收的维护者会遇到此问题。原场景在窄屏详情打开后操作已 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.
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
ca17664d0ccf6176373cbc8cb57515c1c6591880on main17b2a0f9b818dc6e6fe77ccc567b20ff91b3bc40:blocked-reason-readbackpasses Chinese/English × desktop/390px, including reopening the same task and restoring modal isolation.task-inspector-returnpasses;typed-actionsalso passes on this main, which already contains the compact-header correction from test(workspace): follow current composer and settings actions #7427.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.