Repository navigation
fix(research): lead with selected findings and expand question context on demand - #7283
Conversation
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 | reasoning_effort=max
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
动机
在 Goal 研究页查看已有结论、原问题和历史证据的用户。
阅读已保存结论的用户在窄屏选中一条结果时,长父问题和分行导航占据首屏,正文需要继续滚动才能看到。
同一合成记录、390×844 阅读区中,原版正文从约 y=769 开始,而阅读区止于 y=774;新版中文正文从约 y=454 开始,字号仍为 16px。
直接选结论先看到完整已记录结果;从路线打开问题仍一次展开完整已记录标题,三条混合状态结论、来源与全部 14 条历史记录均可回读。
这里只资格化打包网页上的布局和只读导航;未测科学结论质量、模型理解、真实用户采用、阅读速度或安装版 App。
改动思路
在原阅读器内保留本地展开意图:问题入口展开,直接结论入口折叠父问题;自动补全结论 URL 不覆盖刚打开问题的意图。每条结果拥有自己的标题,原导航和混合状态计数排在紧凑单行,来源和全历史入口保留。
这里只资格化打包网页上的布局和只读导航;未测科学结论质量、模型理解、真实用户采用、阅读速度或安装版 App。
一个局部布尔量保留不能从补全后的 URL 恢复的展开意图;原生 details/select 和既有组件足够,不需要第二历史 owner、持久配置、通用阅读框架或多余包装器。
既有 HTTP/SQLite 和类型化历史投影继续提供记录;组件只改变选择、展开与焦点,不生成新的研究事实或分析任务。比起缩小字号、删减正文或另建阅读器,这个边界直接解决已经复现的阅读障碍。
| 入口 | 原版 | 当前精确头 |
|---|---|---|
| 直接选择结论 | 长父问题先占空间 | 完整结果先读,父问题可展开 |
| 从路线打开问题 | 完整问题 | 一次打开仍呈现完整已记录问题 |
| 读取失败 | 原有读取/重试 owner | 保留原数据,明确报错并可重试 |
这是源码与实际浏览器观测的简表,不把截图当作科学效果证据。
具体改动
仅审查 7283@9c5775685579e0e173a259e8830a813e0e6986d8。先读不可变原契约 docs/reference/trajectory-assessment.md,规格修订为 158b4fa7bbb350e5da74cee0f6406e49cd44f10c,再检查完整差异和当前讨论。以下是该无编号段落的审计映射标签,不冒充原规格编号。
readable-body:implemented;三种宽度、两种界面语言的六组原/新配对验证,结果正文均保留 16px。original-question-and-source:implemented;路线入口一次展开,直接入口按需展开;相同父子标题时摘要仍在来源中。whole-history-return:implemented;全部 14 条记录、完整原始摘要及身份可展开,刷新与 Back 保留结论选择,Escape 返回原路线控件。reading-never-executes:implemented;原生后端独立读回为零写入尝试,源记录、注册表和夹具字节未变。scientific-effect-and-adoption:out_of_scope;契约本就把科学有效性与独立采用留给另外的验收。
完整差异为 10 路径 +83/-17,其中两份生产 UI 文件 +31/-13;其余是既有浏览器场景、说明和五张合成截图。无后端、公共 schema、CLI、模型提示或自动加载指令变化。每个 commit 的 DCO、公开文字及全部五张 PNG 像素和元数据均已检查。
关键代码讲解
GoalResearchHistory / questionExpanded(apps/presentation/dashboard/src/features/personal-workspace/goal-research-history.tsx:75):问题入口与直接结论入口保留各自展开意图,自动 URL 补全不再混淆两者。
select(apps/presentation/dashboard/src/features/personal-workspace/goal-research-history.tsx:274):既有 URL、选择和焦点 owner 同步入口意图;结论切换折叠父问题,原键盘返回继续生效。
selected reader rendering(apps/presentation/dashboard/src/features/personal-workspace/goal-research-history.tsx:444):完整结论独立标题;父问题原生 details、混合状态计数、来源及无结论路径仍由同一 reader 呈现。
.research-reader-question / .research-finding-navigation(apps/presentation/dashboard/src/features/personal-workspace/goal-research-history.css:237):折叠标题单行,主动展开完整换行;窄屏导航保持单行与原点击尺寸,正文不缩字。
对主干的风险
最强反例是:父问题折叠虽让画面紧凑,却让真正请求打开问题的人仍找不到完整原文。实测问题入口保持展开,自动固定 finding URL 后也不塌回;直接切换结论才采用折叠默认。两种入口意图都沿现有生产调用链,未另加确认、配置或资料重填。
缺失结论 ID 明确显示未找到,不偷换成另一条;相同父子标题不重复占位而父问题摘要仍在来源中;无结论、受阻原因、长负结果和空历史保持真实。503 刷新失败保留旧记录,重试恢复读取。
本次独立执行完整 dashboard/Chat 构建和 TypeScript 检查、CSS 自定义属性检查、仓库声明范围 Ruff、配置的 17 文件 mypy、两份 mjs 语法与 diff 检查;另用 Ego 在真实只读 HTTP/SQLite 后端上执行六组原/新配对及七个负例/恢复场景。原作者 Playwright 场景未在本次另跑,未把作者声明记成本次结果。不可变两臂的完整历史 JSON 相同;最终两臂均零写入尝试、来源未变,隔离后端和测试窗口已关闭。
严格质量回执 cqr_93849207057d59d9e31b 为 PASS,精确范围 verify valid。标准预合并 4 项直接检查、10 项目录检查、8 项风险 smoke 和 1 项公开边界检查全过,自动失败为零;总体仍为 ok=false / manual_review_required,五个二进制图片人工 hold 保留;逐张查看图片不自动消除原生人工要求。未查询或等待 CI。打包构建的大 chunk 提示保留,不代表性能已获资格。
我的整体评价
APPROVE,仅对应当前精确头的有界阅读修正;未发现由本次补丁引入且尚未修复的阻塞缺陷。长期工作路径 preserved:记录、选择身份、失败和后续回读保持;使用体验 improved:已复现的窄屏结果正文遮挡被修正。这个结论不等同父 Goal 完成或长期净收益。
已检查长重复问题、三条混合状态结论、受阻长正文和下方原始记录的整页。新版先呈现结果标题与 16px 正文,父问题按需展开,负结果计数仍在顶部;展开的窄屏问题与下方来源可读,未见控件重叠或页面横向溢出。
未资格化真实材料的理解效果、科学有效性、翻译质量、安装版 App 或真实用户采用;旧生产器本已截限的英文标题只验证完整已记录值,不能恢复未记录原文。
有界重构判断:一个局部布尔量保留不能从补全后的 URL 恢复的展开意图;原生 details/select 和既有组件足够,不需要第二历史 owner、持久配置、通用阅读框架或多余包装器。 来源、权限和重试仍归原 owner,保留这个局部设计;更大的框架化或语言迁移无关。本次为 author-owned COMMENTED 批准结论;批准收尾、合并就绪、质量资格、人工要求和 merge authority 仍分别处理,本次不合并。
English verdict: APPROVE. Six same-input base/head browser pairs show the intended result-first reading at 1200/768/390px in both interface languages, while recorded questions, mixed states, reload/Back, focus return and all originals remain reachable. Seven negative/recovery cases pass against the production read-only HTTP/SQLite owner; both sources remain unchanged with zero mutation attempts. Exact-scope quality is PASS/valid; native manual image holds and maintainer merge authority remain separate. No scientific, comprehension, adoption or installed-App qualification is claimed.
Selecting a finding could put its result below the narrow viewport because the parent question, navigation and exception counts occupied most of the page. The selected finding now leads with its full title and readable body; the parent question expands on demand. Opening a question from the route still reveals its complete title immediately, including after automatic finding-ID pinning.
The existing Explore and analysis owners, source/history controls, negative states, stable selection and keyboard return remain in use. Narrow navigation occupies one row with the existing 44px targets. No analysis dispatch, persisted schema or execution authority changes.
Visual evidence
Packaged Chat with the production read-only HTTP/SQLite owner and populated synthetic data: long repeated questions, multiple mixed-state findings and saved analysis. Both images use the same selected finding and reader scroll anchor. Desktop is 1200×888; narrow is 390×844. Before UI:
920f18809d906b840325c4f40013e9224e4a3a2e; the touched UI was unchanged at the current base158b4fa7bbb350e5da74cee0f6406e49cd44f10c. Tested source:9c5775685579e0e173a259e8830a813e0e6986d8.The complete parent context remains available:
Pixels and PNG metadata were inspected; captures contain only the synthetic fixture. These qualify presentation and navigation, not scientific/model quality or an installed App.
Validation and limits
research-route-readingand the fullresearch-historybrowser scenarios passed at the integrated head. Coverage includes Chinese/English, 1440/768/390 widths, complete question/finding reading, mixed states, keyboard return, reload/Back, unavailable-source recovery and empty history, with no reader model dispatch or source mutation.