Repository navigation
fix(research): keep archive records focused on evidence - #7407
Conversation
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
left a comment
There was a problem hiding this comment.
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 三项在本提交落实;完整安装采用和科学效果仍是上述剩余范围。
关键代码讲解
-
ResearchRecordSearch 从既有 complete/stale/busy 推导计数和状态,复用一个范围帮助入口;空匹配不再另堆说明。记录展开恢复完整标题与正文,记录、结果、运行、问题及引用仍在同一来源 disclosure 中,没有删除或改写证据。
-
ResearchRecordComparison 继续由 researchRecordVersions 确定真实版本,匹配原记录身份而非标题推断。差异数和版本选择保持可见,解释和精确 event ID 进入共享帮助。所选/对照的日期在窄屏并排,完整长正文仍纵向展示,未测量与真实零值不混淆。
-
记录样式 的两行规则只命中关闭的记录标题,打开后恢复正常正文行高。既有场景增加长中英正文、键盘开合、来源返回和范围帮助的验证;其原分页、下载、比较、失败恢复与跨 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.
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):
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.
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.