Skip to content

fix(dashboard): 研究阅读器支持同组切换并保留阅读位置 - #7534

Merged
huangruiteng merged 1 commit into
mainfrom
codex/research-page-refinement-20261028
Oct 28, 2026
Merged

huangruiteng merged 1 commit into
mainfrom
codex/research-page-refinement-20261028

Conversation

@loopx-agent

Copy link
Copy Markdown
Collaborator

从日期或相邻点的问题列表打开一条结论后,旧页面只能反复返回列表切换问题;刷新又会丢掉列表上下文,返回按钮变成“回到全图”。

现在可在阅读器内直接切换同组问题,问题与结论分别标明。刷新和前进后退保留分组、问题与准确结论;返回列表聚焦当前问题,再返回全图恢复原日期或点组入口。完整问题放在选择器旁的按需帮助,手机选择器独占一行,正文保持 16px。相同约束已写入设计规范。

只调整现有研究阅读器及回归场景,沿用历史投影、URL 编码和 ContextHelp。默认研究全景、来源事实、关系与分析执行权限保持原有边界;分组只是阅读范围。

验证

  • npm run build --prefix apps/presentation/dashboard:TypeScript、Dashboard、打包 Chat 通过。
  • 打包 research-route-reading:28.085 秒通过。真实 HTTP/SQLite、86 条合成记录/24 个同日问题,中英文 1440/390、精确结论刷新、前后问题、Back/Forward、首末禁用、键盘焦点、全文帮助、错误父组隔离及零写入。既有七种分析入口状态/三种宽度也通过。
  • 完整打包 research-history:250.417 秒通过,覆盖原有分组、记录、来源与失败恢复路径。中间迭代中发现的重复 React key 与按需帮助断言均已修正,最终结果单独记录。
  • 不可变基线 a85a804aa 在同一合成夹具的四种语言/宽度组合均复现刷新丢列表;另在已有公开 Graph 历史的 134 条记录、首日 36 个问题中确认真实断点。
  • 精确作用域 CQR cqr_cb738bbcf792c290b3a2 有效;4 直接检查、4 catalog、8 选中 smoke 和 1 公共边界检查通过。标准 premerge 仍返回 8 张图片人工评审留置:作者已逐张查看像素及元数据,尚不是独立评审或 merge-ready。

验收范围为源码打包与隔离真实后端;尚未在正式安装 App 验收,也未执行分析模型、benchmark、安装或合并。

整页视觉证据

修后版本 0abf7107ec0e72ec7a0483c0c4b103a58165dd30;修前版本 a85a804aa93ec937cc5fdd715fd8e746ed8b4770。同一公开安全合成夹具,86 条记录,原文保持中文;中英指界面控件语言。图片是实际打包页面的完整 1440×900 / 390×900 视口,均已逐张检查。选择的是同一问题、同一旧结论刷新后的状态。

界面 / 视口 修前 修后
中文 / 1440 Before zh-CN 1440 After zh-CN 1440
中文 / 390 Before zh-CN 390 After zh-CN 390
English / 1440 Before en 1440 After en 1440
English / 390 Before en 390 After en 390

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.

Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
Exact head: 0abf710; base: 98c4ba3.

动机

在研究历程中比较同组问题与多条finding、刷新后继续阅读的用户。 从同日24问题集合打开第5个问题并选定finding,旧base刷新后只剩回到全图;新head保留问题、finding和原集合,返回后焦点回到第5个问题。 用户能在同组问题间前后切换、直接选择并查看完整原问题,刷新或浏览器往返保留精确finding与返回路径,无需重找集合或重复输入。 不翻译或改写原证据,不改变原生指标、来源权限、研究状态、模型调用或调度;不以页面可用认证科学收益或正式安装采用。
剩余缺口:正式桌面App未安装验收;合成HTTP/SQLite和真实浏览器验证不能证明独立读者理解或科学收益。未启动分析模型、未查询CI、未执行合并。
验收依据是变更前设计 design.md,source revision 98c4ba315d98c7e79b16f1ae184c5dd120d54a20:research-reading-persistence、complete-original-readable、source-authority-preserved。分别要求精确阅读位置/返回、长原文可读和原始状态/来源保真,不以作者新加条款自行证明完成。

改动思路

同组导航复用现有Selection、URL history和原始Explore记录;集合只是当前Goal内经成员校验的阅读位置,不成为研究事实或执行权限owner。 本PR交付可刷新、可返回的同组阅读旅程;正式桌面App安装、真实模型分析、独立理解收益与全站阅读质量仍由原产品工作验收。 URL新增parent只保留阅读意图;恢复时仍由当前Goal节点集合核验合法成员。Question选择与Finding选择分层,不复制研究记录或增加设置,也没有额外确认或重新输入。

对主干的风险

最强反例是伪造parent或刷新后关联错题。本次检查了错Goal、不含节点的parent、集合首尾、缺finding、HTTP失败恢复、Back/Forward和精确返回焦点。完整源码构建通过;真实SQLite/HTTP的packaged research-route-reading场景18.058秒、完整research-history场景241.867秒通过。浏览/切语言不启动模型,最终fixture readback为15次历史读取、0次mutation attempt、来源SHA未变。首两次smoke因隔离HOME找不到既有浏览器依赖失败,显式指定现有依赖后同断言通过;未放宽测试或deadline。

实际immutable base 98c4ba315d98c7e79b16f1ae184c5dd120d54a20 与head使用相同86条记录:base第5题finding2刷新后仍保留finding,却丢失返回问题集合;head保留Question5/24、同finding及parent,返回后焦点准确回到第5题按钮。作者description的8张公开合成图已独立看过像素;另外亲自在Ego检查1440桌面、390窄屏、完整问题帮助和来源/历史展开,前后对照不依赖作者测试结论。
标准premerge的4个direct和13个selected自动检查全部通过;native gate仍返回8个二进制视觉人工hold。本评审逐张核验8图像素、合成来源和metadata,但没有把gate的ok=false改写为green或merge-ready。一次误用不存在的Python模块入口也单列保留,随后运行正确source-checkout console入口。CI未查询。

具体改动

布局同步保留了原来源与历史入口;窄屏让问题选择单独占行,前后按钮保持可点按尺寸,不用缩小正文来容纳长标题。测试扩展原有两条整页旅程,覆盖刷新、首尾、错误parent和返回焦点,没有另建生产导航服务。

  • selectedFromUrl:21:解析当前Goal及阅读parent,旧node/finding URL仍可用;参数本身不证明成员关系。
  • collectionMembers:253:用真实已读成员核对当前节点,错parent不激活同组导航。
  • chooseQuestion:336:切题保留集合,选择该题finding;与原popstate和返回焦点组合,DOM ref不成为持久选择owner。

我的整体评价

APPROVE,无已验证的本次引入阻塞发现。同组导航复用现有Selection、URL history和原始Explore记录;集合只是当前Goal内经成员校验的阅读位置,不成为研究事实或执行权限owner。 本PR交付可刷新、可返回的同组阅读旅程;正式桌面App安装、真实模型分析、独立理解收益与全站阅读质量仍由原产品工作验收。
实际观察86条合成记录、24个同日长问题及每题两条正负/暂定finding的整页:Question与Finding分开,正文16px,原问题帮助按需展开;390px问题选择独占一行,失败与未知正文仍可读,来源/历史和全部记录继续可达。
未验证范围:正式桌面App未安装验收;合成HTTP/SQLite和真实浏览器验证不能证明独立读者理解或科学收益。未启动分析模型、未查询CI、未执行合并。 我区分了自动无溢出/数据检查与实际像素观察:改善体现在同组题目更容易找到、完整问题按需阅读,来源、历史、负结果和未知仍可访问;未从截图推断读者理解收益。此次有界简化已经移除仅内存readerParent依赖;继续拆出导航框架没有当前必要。

English verdict: APPROVE — 0abf710; same-group navigation and reload retain the exact question, finding and return context; installed-App adoption and reader comprehension remain unverified.

@huangruiteng
huangruiteng merged commit 1ad00d8 into main Oct 28, 2026
34 of 45 checks passed
@huangruiteng
huangruiteng deleted the codex/research-page-refinement-20261028 branch October 28, 2026 10:00
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