Skip to content

fix(research): restore historical decision reading context - #7501

Merged
loopx-agent merged 1 commit into
mainfrom
codex/research-history-return-context-20261027
Oct 27, 2026
Merged

loopx-agent merged 1 commit into
mainfrom
codex/research-history-return-context-20261027

Conversation

@loopx-agent

Copy link
Copy Markdown
Collaborator

从旧决策链接或刷新进入阅读器后,正文仍正确,但返回会把列表折叠回最新三条,原记录随即消失,键盘焦点退回图顶。现在按精确事件展开所需的问题与记录;关闭、Escape、浏览器 Back/Forward 都回到相应条目,并将它放到页头和页脚之间的可读区域。

复用现有阅读器、URL 和事件身份,默认仍显示三个问题、每个问题三条最近决策。完整原文、停止/保留条目、负结果和真实计数保持;只选择当前决策,不再高亮同节点下所有记录。遵循 研究工作台设计,无需增加说明或产品操作。

验证使用与 1c4afaedf2df53de9f6fd4372d944bb017ac4b17 产品源码一致的生产构建和真实隔离 SQLite/HTTP 后端,所有截图均为公开合成材料。

  • 实际反例:旧版本刷新后返回只剩三条,预期五条;原两个组件与当前 main 的 baseline blobs 完全相同。最终用四个问题、每题五条记录补验更外层折叠,保留原前三个问题的长重复正文和混合状态。
  • 完整 packaged research-history 237.744 秒通过:精确书签、reload、Escape、Back/Forward、跨旧记录返回、中英文、390px、桌面、reduced motion,以及来源故障/引用恢复;读取无来源修改、零 mutation attempts。
  • Dashboard/chat 严格 TypeScript 与生产构建、12 项记录 owner 测试、packaged Goal showcase、Node 语法、语义 advisory、项目作用域公开边界扫描通过。
  • Standard premerge 的 4 项直接检查及 13 项选中自动检查通过,0 失败/跳过。9 张 PNG 的原生人工审阅 hold 保留;作者已逐张看图并检查 metadata,不能据此称自动图审或独立验收通过。

本提案未验证已安装 App、真实模型译文质量或研究净收益;不改变分析执行、状态权威和费用边界。最初误用全局 registry 的检查因无关旧 Goal 未迁移失败,改用项目 registry 的同一公开扫描通过,原失败保留。

视觉证据

1280×900 首屏,默认主视图与按需帮助保持:

合成研究页首屏

390×844 决策区域默认视图:

最近三条决策

刷新后返回:旧图回到图顶,当前图展开并聚焦原决策。旧图来自三问题反例,当前夹具另加一个更早问题用于外层折叠覆盖;这里只比较返回行为,不作密度或性能量化。

修复前 修复后
丢失原记录 返回原记录
完整阅读、英文窄屏及更早问题返回

桌面原文阅读器

窄屏原文阅读器

桌面返回

英文窄屏返回

更早问题返回

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 · max · active_turn_verified=false

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

APPROVE:未发现阻塞本次阅读修复的缺陷。结论绑定 1c4afaedf2df53de9f6fd4372d944bb017ac4b17,属于作者审计,不代表第三方批准或合并权限。

动机 / Motivation

研究者阅读历史决策时会遇到这个问题。刷新旧决策后,原列表只剩最近三条;现在返回原条目并保留必要展开。Escape 与浏览器 Back/Forward 恢复精确条目和可读焦点。本次不新增译文修订产品、模型调用或事实写入。已安装 App 采用、真实译文质量和输入 token 归因仍未验收。 原行为已通过真实打包页复现:阅读器选对了旧结论,但返回只剩三条,导致研究者需要反复展开、重新定位。这里交付的是可独立使用和撤回的历史阅读修复,未用局部通过关闭整体工作台验收。

改动思路 / Approach

折叠范围和焦点均属于现有阅读投影,按原事件恢复即可,无需增加持久化状态或另建返回控制器。当前 PR 只修历史阅读返回;原始事件、分析执行、权限和费用仍由既有 owner 负责。 保留原有 URL、完整 finding 阅读器和默认三个问题、每题三条决策。先按原事件揭开所需范围,再恢复焦点;只改焦点会遇到不存在的条目,默认全部展开又违背既有阅读层级,因此两处原 owner 需要一起修。没有增加设置、确认或信息重填轮次。

触发 原行为 本次行为
旧结论刷新后返回 列表折回三条,焦点退回图顶 原问题及旧记录可见,焦点回准确条目
浏览器跨两条旧记录返回 原 opener 可能仍属于后一条 比对事件身份,再定位当前原记录

该表依据源码与下述实路观察,不作为独立测试证据。

具体改动 / Changes

依据 docs/development/design.md,规范版本 e74961a95b0d00e248f2dd9ccbf7a2c3fddb7b32;本次索引标识规范已有未编号条款,没有发明新义务:research-exact-return implemented,reload/Back/键盘返回由现有阅读器及列表共同实现;research-full-evidence implemented,原正文、负/暂定计数、停止和保留条目均继续可读;populated-reading-review implemented,桌面、390、完整详情及恢复页面已逐张观察。

关键代码讲解

  • GoalResearchHistory 仍从原 URL 和事实解析所选 finding,把 event_id 交给时间线;closeReader 和 popstate 共用焦点返回分支。原元素不在或属于另一条记录时,按精确事件找回控制;居中滚动使它避开固定页头和页脚。
  • TrailList / TrailQuestion 各自按所选事件计算必要范围,并保留在原折叠 state 中。没有选择时仍是原默认,较早问题及其较早记录均可返回;高亮只归当前事件,取消原整节点高亮全部决策的近似。
  • readDecisionTrail 扩展既有实际 SQLite/HTTP 场景,覆盖外内两层折叠、书签刷新、跨旧记录 Escape/Back/Forward 和 DOM 命中检查,原六项完整列表及零来源修改断言继续执行。九张合成 PNG 已直接放入 PR description,未提交构建产物或本机材料。

对主干的风险 / Risks

最强反例是:直接点击返回通过,但刷新让 opener 元素消失;或跨历史返回仍错误聚焦另一条记录。原真实反例 3 !== 5 及截图已保留。最终完整 packaged 旅程 PASS(237.744 秒),中英390/reduced motion、桌面及第四问题旧记录都核对准确身份、焦点和遮挡;这与仅检查无横向溢出不同。初始反例为18事件,最终增加一个更早问题至24事件,未把两者宣称同负载密度/性能收益。两版原前三问题正文一致,基线两个生产组件 blob 也与当前 main 起点相同。

严格 TypeScript/生产构建、12项原记录 owner、showcase4.110秒、CQR有效和4直接+13选中自动检查 PASS。9张图的原生人工 hold 仍保留,不能记成自动通过。早期全局 registry 检查因无关未迁移 Goal 失败;明确项目 registry 后同一公开扫描通过,未修写该 Goal 或掩盖原失败。按当前能力合同未查询 CI。PR target 已前移,已核增量不触碰此 reader/timeline/scenario,合并组合与受保护决定仍是独立门;未以 source/package 测试冒充实际安装。

我的整体评价 / Verdict

problem_context=justified_increment,long_horizon=preserved:原历史和后续阅读可持续,未证明 Agent 净效率提升;user_experience=improved 限于这条具体返回旅程。已逐张检查九张合成整页截图;返回条目在页头与页脚之间完整可见,详情保留可读字号和全部原文,没有新增说明段落。未检验真实用户理解、已安装 App 或科研收益。 默认视图仍紧凑,完整旧正文沿同一阅读器按需读取;这里不再增加说明、译文编辑器或新状态服务。代码边界与问题相称,局部可选 prop 不构成共享协议或新语义词汇;无 default-off 宣称、权限扩张或尚需本 PR 再造的框架。当前 head 可作为正常提案交维护者继续独立审阅,不执行合并或安装。

English verdict: APPROVE — 1c4afaedf2df53de9f6fd4372d944bb017ac4b17 restores exact historical decision return through the existing reader; packaged SQLite/HTTP recovery passed. Author-owned COMMENTED conclusion; independent review, native visual holds and installed adoption remain separate.

@loopx-agent
loopx-agent merged commit eecde92 into main Oct 27, 2026
19 of 38 checks passed
@loopx-agent
loopx-agent deleted the codex/research-history-return-context-20261027 branch October 27, 2026 16:23
LIHUA919 added a commit to LIHUA919/loopx that referenced this pull request Oct 27, 2026
loopx-project#7501 keeps the decision a reader just closed expanded and focused in its
question, so a question no longer collapses to three records after an
older finding was read. research-finding-reader asserted the collapsed
default at exactly that point (20 !== 3). Assert the shipped contract
instead: the decision just read stays in view with focus. The default
three-record view remains owned by research-history.

loopx-project#7501's dashboard-browser shards were cancelled, so the scenario had not
run against it.

Refs loopx-project#7384

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Lihua <1017343802@qq.com>
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.

1 participant