Skip to content

fix(workspace): restore tasks on Back and repair CI journeys - #7040

Merged
huangruiteng merged 8 commits into
mainfrom
codex/workspace-ci-readback-20261022
Oct 22, 2026
Merged

huangruiteng merged 8 commits into
mainfrom
codex/workspace-ci-readback-20261022

Conversation

@loopx-agent

@loopx-agent loopx-agent commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

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

Criterion Disposition Implementation / evidence
Return to the same selected Task and source implemented Existing settings/Task route readers; native full-request Back/Forward regression
Preserve unavailable, read-only and failure states implemented Work-map source failure/retry, settings parity and synthetic unavailable-request captures
Exercise the shipped entry and owning backend implemented Compiled Chat catalog; disposable SQLite/HTTP request owner
Keep optional configuration and provider dependencies optional implemented Settings/model-discovery assertions; collection marker regression; explicit provider suite still collects

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@7e37342 and targets main; 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

  • Tested revision: d95eab25d6597adfd409edbb2cfe5b0352f4f41e; production change is in 5f399b5c7 and the final source/build is unchanged by the later test and image commits.
  • Input classes: synthetic and public fixture; disposable native backends.
Kind Result Evidence / limitation
real_entrypoint passed All 72 compiled Chat browser catalog scenarios, in three shards; includes desktop/narrow, history and settings journeys
real_backend passed Disposable SQLite/HTTP work map restores the same complete canonical request on Back; Forward closes it; source failure/recovery retained
regression_parity passed Task Back failure, three obsolete navigation assertions and digest failure reproduced on immutable CI base dd2c43e; settings reload/Back parity also passed
unit passed Digest-owner contract: 17 tests on Node 22.22.3 and 24.21.0; optional suite isolation: 2 tests prove no default conftest import and explicit discovery
integration passed Real default Stage 2C collection: 29 selected / 27,560 discovered; collection only, not full execution
static passed Strict TypeScript, production dashboard/Chat build, changed Python Ruff and RFC pair check; existing bundle-size advisory retained
static passed Standard premerge: 5 direct checks and 11 selected canary/public-boundary checks passed. Overall gate remains held by CQR remote-CI gap and 3 image review holds
integration not_run Final-head remote CI. Earlier published f61ea82 CI failed, including Windows disposable-runtime shutdown; no Windows fix or pass is claimed
manual blocked Three image paths still require independent pixel/privacy review; author inspection does not clear that hold

CQR cqr_331a7d36618e9091e0f2 records 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

  • UI impact: changed. Primary question: “Can I return to the same Task I was reading?”
  • Source data: synthetic showcase. Built browser surface, not an installed App acceptance claim.
  • No shareable preview service is retained. Reproduce using LOOPX_PERSONAL_WORKSPACE_SCENARIO=goal-workspace-m2 in the existing browser harness.
  • Attention review: restoring the inspector brings the selected Task back beside its existing work list; no new navigation or explanatory panels. The synthetic inspector intentionally preserves the unavailable full-request state. Complete request recovery is proved separately by the native-backend regression.
  • Craft review: existing page and inspector composition; no color, typography, animation or grouping-card additions. The broader dense overview verdict remains open.

Before, desktop 1440 × 1000 (f61ea82): the URL identifies a Task but its inspector is absent after Back.

Before: restored Task route without inspector

After, desktop 1440 × 1000 (5f399b5c7 source): Back restores the selected Task inspector.

After: selected Task inspector restored

After, narrow 390 × 844: the existing Task reader remains usable; unavailable request content stays explicit.

After: narrow Task inspector

Type And Area

  • Bug fix
  • Test update
  • Public presentation surface
  • CI / test discovery

Shared-authority RFC fixture impact: N/A; no provider/store protocol change.

Boundary Checklist

  • Public-safe synthetic screenshots; no private operating state, paths, messages or raw logs in the diff/body.
  • Scoped to workspace navigation and its demonstrated validation failures.
  • No paired RFC changed; staged pair checks passed.
  • First viewport evidence is directly above, with data/build and revision boundaries.
  • Every authored commit has a DCO sign-off.

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 loopx-agent changed the title test(ci): repair workspace navigation and optional suite collection fix(workspace): restore tasks on Back and repair CI journeys Oct 22, 2026

@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: 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.

@huangruiteng
huangruiteng merged commit f1bd2e2 into main Oct 22, 2026
35 of 48 checks passed
@huangruiteng
huangruiteng deleted the codex/workspace-ci-readback-20261022 branch October 22, 2026 07:26
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