Skip to content

fix(research): read saved findings from original Goal sources - #7055

Merged
loopx-agent merged 2 commits into
mainfrom
codex/source-research-findings-20261022
Oct 22, 2026
Merged

loopx-agent merged 2 commits into
mainfrom
codex/source-research-findings-20261022

Conversation

@loopx-agent

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

Copy link
Copy Markdown
Collaborator

Linked original Goals returned raw history rows when Research requested saved findings, so the reader failed schema validation. This change serves the canonical folded findings for the explicit findings view in the normal App and prepared source adapter, retaining full text, source identity and independent history pagination.

原实验 Goal 的“阅读已存结论”此前收到的是历史事件,导致页面校验失败。现在同一来源可阅读完整结论;原时间线、分页和来源身份保持独立。来源暂不提供完整任务关联时显示未知,展开后说明;本机仍读取 canonical 当前与归档任务。阅读不会启动分析或写回实验。

Validation: dashboard build/typecheck; packaged research-history desktop/mobile browser journey; 35 native HTTP/source and canonical File/SQLite tests, including paging, wrong Goal, source replacement/unlink race, bad origin, invalid evidence and recovery. An additional exact-head source test passed. A read-only original-source candidate check returned complete folded findings. After merge, the official native macOS App adopted source 9ea541b0f60ac2647ee5fbf957276567274e1fe5. Its original linked Goal Research reader showed 114 history records and 57 saved findings across 40 + 17 rows; returning to the first page, full body reading and optional unknown-association detail worked. No model was invoked. Private live captures remain local; public images below use synthetic data. Complete source Task associations remain unavailable, and this readback does not claim localized new analysis or solver benefit.

The required quota-plan fixture was repaired to initialize isolated canonical task authority; its run-ledger operator gate is preserved without inventing an authored user Task. Final risk-based canary: four direct checks, compile/ratchet, ten catalog checks, eight risk checks and public text scan passed. The PNG manual-review marker remains in the raw report; both synthetic images were inspected and are public-safe. Immutable base/head native tests reproduce the source findings failure (HTTP 400) and its repair while local File/SQLite and explicit history remain passing. No remote CI was queried under the configured local-validation policy.

Visual evidence / 页面证据

Tested implementation 95eed60eb79fe9733eea0b5dc7e9a4e744cbf62e. Packaged frontend, synthetic saved findings; these are presentation evidence, not model-quality or installed-App claims. Full text is readable; sources and unavailable associations are optional details. Narrow view has no horizontal page overflow. The Research first-screen change is in #7051; this repair completes its source reader.

Desktop saved finding

Narrow saved finding

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 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-astra · OpenAI · runtime_reported · xhigh

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

未发现阻塞本次阅读修复的缺陷。完整评审版本 95eed60eb79fe9733eea0b5dc7e9a4e744cbf62e;安装版回读与完整跨来源任务关联的边界见下。

动机

在研究页阅读原实验 Goal 已存结论的用户。 此前点击阅读入口会收到错误类型的数据而报错;现在同一来源返回完整结论,选择一项即可阅读正文。 原生来源读取、完整正文、独立分页和失败恢复已验证;桌面与窄屏的关联任务未知状态可按需展开。 本次不启动模型、不改实验结果,也不增加来源写权限。 来源尚无完整的当前与归档任务关联读取;界面明确标为未知。本次安装版升级回读仍须在合并后完成。 这修复的是现有研究页真实可触发的失败,不以合成截图代替后端读通。

改动思路

复用既有结论投影和来源读取边界,避免把修复扩成新的分析或数据同步系统。 本 PR 交付原来源已存结论的可用阅读及严格失败恢复;完整跨来源任务关联仍是明确的接口边界。 前端明确请求 findings,两个 HTTP 消费者使用同一来源读取器与原有 Explore 结论投影;时间线仍用 history。缺少完整任务列表的来源不会借用本机任务,也不会把空数组称为没有关联。信息按需展开,不新增常驻说明。

路径 原行为 当前行为
原来源已存结论 默认返回历史,显式 findings 被拒绝 原来源完整结论,可分页
本机已存结论 完整当前与归档任务关联 保留原行为
来源切换或移除 可能在读取后失去原绑定 返回前再次核对绑定,冲突需刷新

这张表说明当前版本的分支;验证来自原生 HTTP/CLI 测试。仅改前端查询仍会被旧后端拒绝;新增复制或分析服务又会重复权威来源,因此都不采用。Python 改动仅扩展已有原生 IO provider,TS 继续负责展示。

具体改动

规范依据 docs/development/frontend-delivery.md,固定版本 9aedbbd3d2987498e0b17083fd02c195b4fe4bbe。Task-first delivery 由正常 App HTTP、原 CLI 与打包浏览器共同验收;source identity 由 namespace、Goal、view、分页和读取后的绑定核对落实;read transports 由原始文本、负结果和原文件不变断言落实。没有把一次读成功等同研究收益。

关键代码讲解

  • ExploreResultsRequestMixin._explore_results 先验证唯一查询参数,按 findings/history 分派,并在返回前重新解析来源关系。解除或替换链接时拒绝过时结果;未链接本机 Goal 不能带来源 namespace 借道读取。
  • _finding_rows 从本机实现提取,逐条校验事件归属后调用既有结论投影。完整正文、问题、范围和证据保留;本机继续读取 canonical 当前与归档任务,来源没有完整列表时产生显式可用性字段。
  • GoalSourceReader.findings 复用原状态、权限、快照分页与失败清理;findings 的游标作用域与历史独立。它不增加源写入或执行能力。
  • fetchExploreResults 明确请求 findings 并使用已有来源 URL 构造器;GoalExploreResults 把不可用关联显示为未知,说明只在用户展开后出现。

验证夹具修复为隔离的 canonical SQLite/File。quota 的原生夹具新增 canonical 空任务权威:run ledger 中的 operator gate 仍阻止对应工作,但不能凭这个 gate 伪造一条人工用户任务。单独参数明确区分手写单元夹具的一条任务与原生夹具的零条任务;排序、限额、spend/void 和阻塞断言均保留。

对主干的风险

最强反例是浏览器 mock 返回正确形状而真实来源仍失败,或新来源复用旧缓存。本次以相同不可变夹具在 9aedbbd3d2987498e0b17083fd02c195b4fe4bbe 与当前 head 执行原生 HTTP/CLI:原版本 findings 返回 400,当前通过;本机 File/SQLite 和原历史两版均通过。43 条来源结论覆盖两页,错 Goal、非法来源、旧游标、跨 view、读取中 unlink/replacement 与恢复均经过真实路径。合成浏览器响应只证明布局与未知状态显示,不证明模型质量。

35 项聚焦测试、最终严格状态断言、构建/类型检查和打包 research-history 通过。最终 canary 的四项直接检查、编译、10 项 catalog、8 项风险检查及公开文本检查通过;图片人工审查标记保留,两张合成 PNG 已逐张检查。最初 legacy fixture 与 quota fixture 失败记录保留,采用 canonical 初始化和正确任务计数后重验,未改变产品门槛。未查询远端 CI,遵循本 Goal 的本地验证策略。

语义与 CI 对齐

复用既有 findings/history 与 Explore 事件语义;可选布尔字段只表达任务关联完整性,不是权限或成功状态。默认差异已披露:来源接口现在与本机同样默认返回结论,时间线调用者明确请求 history。没有新 Agent 指令、调度义务或持久化迁移。失败后刷新恢复,并保留原始证据;读取不发起新的模型执行。

我的整体评价

这是 justified_increment:原来源研究阅读现在可用。长程运行路径 preserved,阅读体验 improved,均限定在读取与恢复证据;没有宣称求解收益提高。无需用户重填来源、复制命令或再次确认首屏,增加的交互仅是自愿展开细节。本 PR 交付原来源已存结论的可用阅读及严格失败恢复;完整跨来源任务关联仍是明确的接口边界。 后续安装回读继续由原产品任务处理;来源完整任务关联尚不能宣称已交付。合并仍需此不变 head 的 readiness,与本评审分开。

English verdict: APPROVE — 95eed60eb79fe9733eea0b5dc7e9a4e744cbf62e. The original-source saved-finding reader now uses the canonical projection with explicit view and identity/page fences. Native base/head comparison, local File/SQLite parity, negative/recovery cases, packaged desktop/mobile reader and required local canaries passed. Complete source Task associations remain unavailable and are shown as unknown; installed final-build readback follows merge. No model execution or outcome-quality claim.

@loopx-agent
loopx-agent merged commit 9ea541b into main Oct 22, 2026
27 of 33 checks passed
@loopx-agent
loopx-agent deleted the codex/source-research-findings-20261022 branch October 22, 2026 10: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