Skip to content

fix(research): keep archive records focused on evidence - #7407

Merged
huangruiteng merged 2 commits into
mainfrom
codex/research-record-reading-20261026
Oct 26, 2026
Merged

huangruiteng merged 2 commits into
mainfrom
codex/research-record-reading-20261026

Conversation

@loopx-agent

Copy link
Copy Markdown
Collaborator

Searching a long research history currently puts full repeated titles and raw record IDs ahead of the observation. This keeps list titles compact, restores the complete title/body on expansion, and groups source identities behind one disclosure. Search coverage and comparison methodology use the existing contextual help; failed refreshes and recorded negative/unknown results remain visible.

The design contract now applies this reading hierarchy to search and version comparison. The existing packaged scenario covers long mixed-language titles, keyboard opening/closing, complete source readback, partial/stale history, downloads, version comparison and Goal isolation. No analysis, model call or state mutation is added.

Validation

Tested revision: 81b7c9cb8b503c9fe996909bfbd9e65f217cfe0a. Packaged Chat frontend with a disposable SQLite authority and the production history HTTP backend, using synthetic records. The same-fixture base fails the compact-list oracle. The candidate passes search/export/recovery, the full research-history journey (181.7s), the shared showcase (3.3s), and 10 retained search/export/version tests. Diff-selected premerge: 4 direct and 19 selected automated checks passed, with no failed checks. Its 8 PNGs remain manual review holds; all 8 were visually inspected, separately from the automated checks.

Installed-App adoption and real-user comprehension are not qualified by these synthetic captures.

Visual evidence

Actual first viewport (before opening search):

Packaged research first viewport

Long record list before Long record list after
Before long records at 390px After long records at 390px
Expanded negative observation before Expanded negative observation after
Before observation at 390px After observation at 390px

The opened observation now fits with both source and comparison entries. Its full original and the source identities remain readable in place. Long list titles are clamped only while closed; opening them restores the entire recorded title at the same reading size.

Desktop comparison preserves unmeasured and zero

Comparison at 390px Explicit source detail in Chinese
Narrow comparison Chinese source disclosure

Visual inspection is separate from folding, data and overflow checks: the list exposes more records, body text keeps its size, and the opened comparison leads with differences instead of a methodology paragraph and hashes. Original evidence retains its recorded language. The whole-page research summary, source selection and execution permissions are unchanged.

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.1-sol · OpenAI · runtime_reported · effort=max

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

动机

需要检索长程研究历史的工作台用户。 旧版长列表和已展开记录被重复长标题、原始标识占满;新版列表先比较标题、时间和状态,展开后完整阅读正文,来源单独按需查看。 用户可直接读到完整观察,并在原位查看来源和版本差异;读取失败仍可见并可重试。 本次不改变研究数据、分析器、模型调用、执行权限或原生评分。 正式 App 采用、全部研究语言覆盖和真实输入归因仍由原有工作继续验收。

改动思路

保留当前两个展示组件和共享帮助即可完成阅读层级调整;不新建读取器、状态权威或配置。 当前 PR 只覆盖研究记录搜索与原始版本比较的展示、规范和对应回归。 生产入口仍是研究页原有搜索操作,数据继续来自同一已读记录快照,过滤、版本身份和下载复用已有规则。列表只在收起状态压缩标题;打开记录后不截断原始内容。范围与方法的辅助说明使用原 ContextHelp,真实刷新失败继续显示,重试由原历史读取逻辑负责。相较于仅缩小字体或另造弹窗,这个边界减少重复信息,又保留原位深读;没有增加配置、模型调用或必需确认轮次。

具体改动

规范依据:docs/development/design.md,不可变基线 cd819fd206cd9de46a789df0669e13bb2ed763e5 的 Research Workspace、Explanations On Demand、Populated Page Review。readable_archive、on_demand_source、populated_review 三项在本提交落实;完整安装采用和科学效果仍是上述剩余范围。

关键代码讲解

  1. ResearchRecordSearch 从既有 complete/stale/busy 推导计数和状态,复用一个范围帮助入口;空匹配不再另堆说明。记录展开恢复完整标题与正文,记录、结果、运行、问题及引用仍在同一来源 disclosure 中,没有删除或改写证据。

  2. ResearchRecordComparison 继续由 researchRecordVersions 确定真实版本,匹配原记录身份而非标题推断。差异数和版本选择保持可见,解释和精确 event ID 进入共享帮助。所选/对照的日期在窄屏并排,完整长正文仍纵向展示,未测量与真实零值不混淆。

  3. 记录样式 的两行规则只命中关闭的记录标题,打开后恢复正常正文行高。既有场景增加长中英正文、键盘开合、来源返回和范围帮助的验证;其原分页、下载、比较、失败恢复与跨 Goal 断言保留。文档和八张合成整页图仅说明同一交付,没有新增运行时产物。

对主干的风险

最强反例是“界面变干净,但完整标题、旧负结果、未知分母或 source ID 已不可读”。同一 79 条长标题 fixture 在基线触发紧凑列表断言失败,准确 head 通过;打开标题后完整文本尺寸及来源值、较早负例、未测量和零分别核对。原生分页 HTTP 与隔离 SQLite 保留全部下载、过滤后旧版本、第二页中断、刷新失败、下载失败重试和另一 Goal 隔离,source_unchanged 且 mutation_attempts 为零。

准确 head 的 TypeScript/打包、10 项原 owner 测试、完整研究页 181.7 秒、共享工作台 3.3 秒通过;premerge 的 4 个直接及 19 个选中自动检查通过。八个 PNG 属人工留置,已逐张读图,未改称自动门禁通过。按当前 wait_for_ci=false 不查询或等待 CI。没有持久协议、actor 生命周期、默认执行开关或权限改变;回滚仅撤回展示与文档提交,不需要数据迁移。

我的整体评价

这是 justified_increment:long_horizon=preserved,user_experience=improved。逐张检查八张实际整页截图:长列表露出更多条目;完整观察与来源、比较入口可同时读到;展开比较保留正常正文字号,差异先于方法和哈希。窄屏身份日期保持并排,长正文仍纵向阅读。 正式安装 App/WebView、真实用户理解、整页译文语义和科学收益未由此合成路径验收。 代码复用结论为 reused,比例判断为 proportionate;保留当前两个展示组件和共享帮助即可完成阅读层级调整;不新建读取器、状态权威或配置。 当前 PR 只覆盖研究记录搜索与原始版本比较的展示、规范和对应回归。 数据正确、折叠和无溢出断言与人工可读性观察分别记录。既有 typed 状态和来源身份保持,新增字符串是局部展示文案,不创造协议词汇;CQR 精确范围资格与合并授权分别核对。作者自己的 COMMENTED 结论不充当独立评审、GitHub 正式批准或合并许可。

English verdict: APPROVE — exact head 81b7c9cb8b503c9fe996909bfbd9e65f217cfe0a. The existing research archive now prioritizes original observations and comparison, with full sources on demand and explicit failed/partial reads. Packaged real-backend recovery, exact-head type/build and owner checks passed; visual evidence was inspected separately. Installed-App adoption and scientific benefit remain unverified.

@huangruiteng
huangruiteng merged commit c1a2fae into main Oct 26, 2026
25 of 31 checks passed
@huangruiteng
huangruiteng deleted the codex/research-record-reading-20261026 branch October 26, 2026 15:52
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