Repository navigation
fix(workspace): restore tasks on Back and repair CI journeys - #7040
Conversation
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…adback-20261022 Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
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: actor_kind=model_agent; model=gpt-6.1-sol; provider=OpenAI; declaration_source=runtime_reported; reasoning_effort=max
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
详细中文评审
动机
用户在工作区按浏览器历史返回任务时会丢失详情;维护者验证同一路径时,还会遇到旧导航断言及可选依赖导入失败。
用户关闭任务详情后按 Back,原先只恢复 URL,详情却消失;当前监听器只清除自己的设置选择,让原任务 reader 保留恢复结果。验证脚本同时修正旧设置入口、空报告和可选依赖发现。
当前打包页面在 Back 后恢复同一任务和完整原生请求,Forward 正确关闭;九条相关浏览器旅程通过,桌面、窄屏、来源失败恢复及设置持久化均核验。
本轮未验安装 App、完整远端 CI、真实模型和 Windows 关闭资格;Goal 概览整项折叠及安静更新仍属原 owner 的独立未闭要求。
改动思路
原有 Task 和设置 route reader 已拥有各自恢复逻辑;只限制设置监听器清除自己的状态即可修复竞争,无须新增缓存、URL 协议或用户确认。
当前边界为一个生产监听器、既有验证旅程与收集配置,共16文件;三张合成页面图已独立检查,原有权限与后端 owner 不变。
Task reader 继续从 URL、当前来源和原生请求取得详情;设置 listener 在没有设置目标时,仅清除设置自己的选择。此处是普通导航正确性,不增加可选执行策略或第二份任务状态。
具体改动
规范依据:docs/development/good-smokes.md(7e37342dd1babb25c7913318cb6294324dd3f470),并核对同修订的 frontend-delivery 与 design。Start With The Contract 已实现:用户按 Back 就应回到原任务,精确基线复现 URL 恢复而详情缺失;Public-Safe Fixtures 已实现:原生一次性后端与合成展示明确分开,三图像素、元数据和来源已独立检查;Validate The Change 已实现:保留完整请求、失败恢复及只读断言并执行当前入口。更广的概览折叠与安静更新保持原任务范围,不据本PR宣称完成。
关键代码讲解
PersonalWorkspacePage 的设置 popstate restore 改为函数式更新,只清除 kind=settings;现有 routedTodoId effect 仍负责原任务恢复、无目标清除及远端未知任务隔离。openEmptyFiles 等待当前 Goal 的HTTP200完整空报告清单,再断言次要区域省略。test_core_collection_keeps_optional_provider_tests_explicit 使用真实pytest验证默认收集不导入可选依赖、显式选择仍可收集;路径排除仅补MemT。CANONICAL_CONSUMERS 注册两个已有真实摘要消费者,严格集合和重复实现变异检查不放松。reopenGoalCadence 校验重载保留了明确Goal,再沿中英文现有入口读取配置;不额外打开另一个设置目标。
对主干的风险
主要风险是把设置修复变成任务状态残留,或以改断言掩盖产品错误。独立基线M2在关闭任务后按Back,于原86行等待详情超时;当前M2与真实SQLite/HTTP work-map均验证同一Task、完整原请求和Forward关闭。当前九条打包旅程全过,含设置持久化、来源503撤出旧请求与重试、远端未知Task不读本地owner、390宽和200任务混合状态。观察到详情可读、动作与来源错误保留,未增加用户确认轮次。三张公开图只展示合成上下文;其中完整请求不可用的状态明确可见,不拿图证明原生请求恢复。
当前正常源码准备、严格TypeScript和生产Chat bundle通过;标准预检5直接、10 catalog及1公共边界检查通过,但完整命令仍exit1/manual_review_required,保留三张图的人工门,不能称整体绿。549 Python、17摘要及56/27560 Core收集为初始f61头的独立结果,七个相关文件逐字节不变,按失效矩阵有界复用;九条浏览器、bundle和预检均在当前d95头重跑。原五条基线旧断言失败与历史Windows/远端CI边界保留;未查询、轮询或等待CI,也未独立重跑作者的72场景总目录。
我的整体评价
这个切片交付了可观察的任务返回修复,且没有隐藏依赖或删除既有负例。long_horizon为preserved:执行、调度、原生持久状态与权限未扩张;user_experience为improved:普通Back直接恢复原任务,Forward、错误恢复和设置仍可用。
原有 Task 和设置 route reader 已拥有各自恢复逻辑;只限制设置监听器清除自己的状态即可修复竞争,无须新增缓存、URL 协议或用户确认。
当前边界为一个生产监听器、既有验证旅程与收集配置,共16文件;三张合成页面图已独立检查,原有权限与后端 owner 不变。
当前完整16文件没有验证出的阻断发现。局部修复沿既有owner,新增图和测试用于验证实际用户路径;更大概览需求、安装、模型收益和最终合并资格仍未验,不由本次APPROVE代替。
英文简短结论
English verdict: APPROVE — d95eab2. The immutable base reproduces the missing Task inspector after Back; the current native request path and all nine focused packaged journeys pass. Existing scope checks support reuse of unchanged Core/digest evidence. Automated premerge checks pass, while its three image manual holds, installed-App/Windows boundaries and final merge qualification remain explicit.
Goal And Delivered Outcome
Closing a Task inspector and pressing Back could restore the Task URL while leaving its inspector missing: the settings history listener cleared a selection restored by the Task route reader. The listener now clears only its own settings selection. Back restores the same Task, and Forward closes it again.
This also repairs the validation follow-up to #7033: existing browser journeys follow persisted settings, the current Files inventory and keyboard-accessible evidence disclosures. The canonical digest inventory includes its two existing media consumers. Default pytest collection leaves optional MemT and Ark suites to their explicit workflows.
Author Declaration
model_agent, OpenAI GPT family.Scope And Continuation
The Task history fix and validation repairs are complete as an author proposal. They add no state authority or permissions. The broader overview density work continues separately: this PR does not claim that all supporting-outcome bodies are collapsed or that quiet background updates are complete. No install or merge is claimed.
The branch is based on
main@7e37342and targetsmain; latest target changes were inspected for overlap. Existing negative assertions remain, including complete request text, source loss, invalid/no-write actions, locale persistence and no implicit model discovery.Validation
d95eab25d6597adfd409edbb2cfe5b0352f4f41e; production change is in5f399b5c7and the final source/build is unchanged by the later test and image commits.real_entrypointreal_backendregression_paritydd2c43e; settings reload/Back parity also passedunitintegrationstaticstaticintegrationf61ea82CI failed, including Windows disposable-runtime shutdown; no Windows fix or pass is claimedmanualCQR
cqr_331a7d36618e9091e0f2records the final 16-file scope and retains a blocking remote-CI qualification gap. This is not a passing merge gate. Full CI, Windows qualification and exact-head independent review remain required.Frontend / Visual Evidence
LOOPX_PERSONAL_WORKSPACE_SCENARIO=goal-workspace-m2in the existing browser harness.Before, desktop 1440 × 1000 (
f61ea82): the URL identifies a Task but its inspector is absent after Back.After, desktop 1440 × 1000 (
5f399b5c7source): Back restores the selected Task inspector.After, narrow 390 × 844: the existing Task reader remains usable; unavailable request content stays explicit.
Type And Area
Shared-authority RFC fixture impact: N/A; no provider/store protocol change.
Boundary Checklist