Skip to content

fix(research): restore original history and saved analysis on shared Core - #7336

Merged
loopx-agent merged 1 commit into
mainfrom
codex/research-registered-read-roots
Oct 25, 2026
Merged

loopx-agent merged 1 commit into
mainfrom
codex/research-registered-read-roots

Conversation

@loopx-agent

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

Copy link
Copy Markdown
Collaborator

When Chat uses a separate Session store, the Research page can show zero history and no saved analysis even though both exist in the registered work runtime. Completed-task and accepted-result readers suffer from the same routing mistake.

Reuse the existing coordination_runtime_root owner for these readers and for linked-source analysis storage. Session storage, namespace/origin checks and explicit analysis actions keep their existing owners. No Goal or conversation data is copied or migrated.

Validation covers real isolated File/SQLite HTTP reads, paging, citations, owner/source rejection and corrupt-source recovery. Six regression cases fail before the routing fix. The retained-content fixture now initializes canonical authority, matching the current read contract; its four old unpromoted cases also fail on the base revision. npm run build and the complete packaged research-history journey pass (179122 ms). The consolidated suite passed 68 tests (95.36s). Fixed-base/head same-fixture checks produce six split-store failures at base and six passes at head, with all six same-root controls passing at both. Local premerge ran six direct and seventeen selected automated checks successfully; four static image-review holds were inspected manually (pixels, fixture source and PNG metadata). Exact-head review and installed adoption remain separate gates.

Visual evidence

Revision 46cfc83e080cf66f0ce740a003652b11fcaf7dc2; packaged frontend with public synthetic fixtures and disposable HTTP backends. These show the restored reading journey, not live benchmark outcomes or a new layout design. The default page exposes the recorded history; full source text remains readable in the same page at desktop and 390px. The graph retains its own pan area. Actual owner data is excluded.

Desktop history

390px history

Expanded original citation

390px expanded citation

中文:分离 Chat 会话存储后,研究历史、已保存分析和完成任务仍应沿注册的工作根读取。本改动复用既有路由 owner,修复假空态;完整会话和研究数据均留在原处。公开图片仅为隔离验收,不代表实际 benchmark 结论。

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

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

动机

在共享 Core 中打开原 Goal 研究页的用户。 Chat 会话另存时,原有研究记录和已保存分析被误显示为空;修复后原页面读取注册工作根中的原记录。 隔离真实 HTTP 已验证历史、已保存分析、原始引用、完成任务和验收报告恢复可读;原数据留在原处。 不迁移或合并会话与Goal,不启动 benchmark,不新增分析算法、设置、权限或界面布局。

这不是记录丢失,而是共享Core后,部分研究读者仍把私有会话目录当成工作根。反复刷新不能恢复原记录,还可能诱发不必要的再次分析。当前判断为 justified_increment:本次交付已有页面可用的读取修复;安装后的原App验收与更广的原会话、composer整改继续沿既有工作,不以这个补丁关闭父级目标。

改动思路

现有 coordination_runtime_root 已拥有注册工作根的选择语义;本PR只让遗漏的IO读者复用它,避免第二套配置或数据迁移。 当前边界是研究与完成成果读者的注册根修复,保留Chat存储、来源身份与显式分析动作。

源自精确head 46cfc83 的流程说明:请求先经过原有loopback、Origin、Goal与来源命名空间核对,再由既有根选择器找到注册工作目录,最后交给既有历史、pack或canonical结果读者。只修改History一处会留下已保存报告和完成任务仍不可读;复制原数据会产生双份事实源。此处Python是既有HTTP IO适配,不新增Python决策权威、功能开关或迁移事务。没有新增协议词汇;下一次改变工作根规则仍在原owner集中处理。

具体改动

关键代码讲解

  1. loopx/chat_completed_todos.py:125 的 _goal_result_scope 保留原来的访问核对,随后复用 coordination_runtime_root。Explore、当前Goal分析、引用和验收结果列表都从同一入口得到正确工作根。旧代码在目录有效但读错位置时会返回看似成功的空结果,新代码不再让Chat目录覆盖注册事实。
  2. 同文件183行的 _completed_todos 将声明的公共工作根传给canonical完成历史读者;没有公共根时仍保留原None/override语义。排序、40条分页、归档、搜索、证据以及任务状态的含义均交给原读者,不能把修根扩展为重新判定任务完成。
  3. loopx/presentation/goal_source_routing.py:10 的 goal_source_catalog 把本机已保存的来源分析放回同一协调根,物理来源namespace和原Goal核对照常生效。重建catalog或重新关联来源仍能读取同一个已保存结果,不能借修根扩大来源或模型执行权限。

采用的规范是 docs/architecture/rfcs/app-conversation-and-async-inbox-v0.md,固定版本 a66d8de。逐项核对:registered-work-root 已由两个读者及catalog复用原owner实现;private-chat-storage 由原会话JSON不变的控制器测试验证;local-root-fallback 由原分支、同根对照以及无common-root控制例核对。另按design.md的Research约定保留浏览只读、完整引用及明确分析按钮。

文字diff为57增20删,生产只改两个已有IO模块;五个既有测试模块扩展分离存储反例,四张公开合成图直接进入PR描述。旧的大历史夹具还没有初始化当前canonical authority,其四例在base同样失败;本次按当前受信读者合同建立File authority,保留原有全文、分页、去重、归档和无写入断言。

对主干的风险

最强反例是所有同根测试都通过,而真实分离会话目录仍把原数据读成空。用相同fixture摘要 348f858e8822dd591624e11209f0dcc8693a641594fd601e948f341340783b98 加载固定base及head的两个生产适配器,经真实HTTP测试:分离存储6例在base失败、head全部通过;同根6例在两个版本均通过。这覆盖File/SQLite、完成归档、已保存pack、原生测量及原始引用,不依靠mock直接提供正确后置状态。

完整六模块68例通过(95.36秒);生产构建和打包研究全流程通过(179122毫秒),包括长内容、来源不可用、取消/重试的合成进程、原文返回及390px。错误origin、Goal、namespace、路径、跨Goal cursor和损坏事件仍被拒绝;恢复来源后能读回原记录,读取不会启动模型。预合并6项direct及17项自动检查通过;四项binary-image hold已逐张核对像素和来源,PNG无文本/EXIF元数据。工具仍静态标记人工图审,不把它当自动隐私通过。所选公开文件的文本边界扫描通过,PNG另以实际像素、夹具来源与元数据核对;不把文本扫描当成图片隐私检查。

语义与 CI 对齐

注册公共根、原Chat私有根和来源命名空间均沿现有合同;没有新状态分类、prose heuristic、Actor权限或默认关闭功能。正常同根消费者保持原行为,分离目录的错误行为是明确修复的差异。当前Goal策略不等待CI,因此未查询或轮询GitHub CI;本地验证与精确head评审、最终merge readiness分别保留。

我的整体评价

APPROVE,适用于 46cfc83。long_horizon 和 user_experience 的改进是恢复既有证据的持续读取,不是推断benchmark效果变好。已查看打包的桌面和390px整页:历史与范围清楚,说明仍按需展开;展开引用的完整正文保持可读,图谱滚动留在自身区域。本PR恢复读取来源,没有更改排版。 这些公开画面为合成数据;当前安装App采用和原会话实测在合并后单独回读,不据此声称全部研究工作台或双端会话已经验收。

现有 coordination_runtime_root 已拥有注册工作根的选择语义;本PR只让遗漏的IO读者复用它,避免第二套配置或数据迁移。 当前边界是研究与完成成果读者的注册根修复,保留Chat存储、来源身份与显式分析动作。 复用现有owner比增加迁移、复制、标记字段或新配置更小,也补齐了同一个真实入口的多个遗漏消费者。完整会话、来源、错误与显式执行边界被保留;未发现需要阻止这个根路由修复的问题。公开四图均为合成数据,原用户画面与运行证据留在私有验收材料;正式采用后还需直接检查原App中的父Goal、子Goal和已保存中文报告。

English verdict: APPROVE — 46cfc83 restores registered original evidence across split Chat/work stores using the existing coordination owner. Six same-fixture regressions fail at base and pass at head; six same-root controls preserve behavior. 68 HTTP/backend tests, packaged Research flow and required local automated checks passed; four image holds were manually inspected. Installed adoption remains separate. This COMMENTED author self-review is not formal GitHub approval or merge authority.

@loopx-agent
loopx-agent merged commit ec66345 into main Oct 25, 2026
24 of 30 checks passed
@loopx-agent
loopx-agent deleted the codex/research-registered-read-roots branch October 25, 2026 18:50
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