Repository navigation
Restore saved case chapters from their links - #8424
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 · max
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
动机 / Motivation
受影响的是读完研究解读的一部分、之后要继续读或把某一节发给同事的人。 主干的目录按钮会滚动到章节,地址栏仍指向整份解读。 例如读到第二节“另一个版本中的同名章节 ID”,复制旧地址再打开会回到开头,收件人要再找一次。候选的同一操作会打开原先保存的版本并定位第二节。 打开或刷新章节链接即可继续阅读;浏览器后退和前进恢复相应章节,章节里的原文仍可查阅。
本轮只验证已保存的解读与只读来源,不验证模型执行、线上数据或已经安装的客户端。
改动思路 / Approach
保留 Research 的 URL 和读源所有权。仅在当前解读加载后由章节组件定位,现有原文读取和版本选择继续共用。 目录生成固定版本的普通链接;页面就地打开时沿用 History 更新,首次载入或历史导航后由章节组件恢复焦点。 如果只给地址加章节片段,默认版本变了仍可能打开另一份材料;目录第一次生成链接就固定版本。
本 PR 只改变 Case 解读的目录导航与恢复;不引入新持久状态、分析入口或数据访问权限。
具体改动 / Changes
审查 05edd379eb765abdbbed1f1084db4837fd0f7238,对照主干 71190b6b4ef4e146f3bf4a10d31ce61ac42fd021,覆盖 4 个文件(+79/−16)。验收依据:Research Workspace · docs/development/design.md。
research-reading-selection。重开、刷新或使用浏览器历史时,保留已选的阅读内容。 桌面与窄屏都恢复了第二节和第三节;主干重开没有章节焦点。research-source-boundary。阅读位置绑定原来源、Goal 和确切保存版本。 两个版本有同名章节 ID;把一个版本的片段用于另一个版本、无解读 Goal 或另一来源时均未定位。original-evidence-return。已选内容的依据和原文可按需读取,普通研究记录仍是独立视图。 读到指定三行原文,窄屏模拟读取失败后重试成功,关闭时焦点返回引用;普通研究记录仍可进入。
关键代码讲解
navigate:换保存版本时清理前一版本的章节片段。 沿原版本读取路径选择新版本。 源码studyNavigation:为当前版本和 Goal 生成地址,复用既有来源及路由。 目录首次点选也带上当前版本 ID。 源码ResearchCaseStudy:在挂载、后退、前进或片段变更时恢复当前文章的合法章节。 目标必须存在、可见、属于当前文章,且模式、Goal、版本、来源片段都匹配。 源码case-outline:呈现键盘可用的章节链接。 普通点击沿现有 History;修饰键保留浏览器原有链接行为。 源码ResearchCitationPanel:沿既有原文入口展示原始片段、等待和错误。 关闭返回发起引用,证据保持只读。 源码
对主干的风险 / Risks
最大的风险是同名章节跨版本误恢复,或者恢复时抢走普通研究记录页的焦点。对照使用相同的合成研究输入和真实 Chat 读后端,包含两个已保存版本及没有解读的 Goal。
| 场景 | 主干 | 候选 |
|---|---|---|
| 同一份解读打开第二节,重新打开地址 | 目录只滚动;重新打开回到导语 | 固定原版本,恢复第二节与焦点 |
| 浏览器重载、后退和前进 | 章节没有自己的地址或历史条目 | 恢复保存版本的对应章节 |
| 另一个版本复用同名章节 ID,或片段不存在、来源不符 | 无章节地址可恢复 | 不聚焦该片段,仍可读当前版本 |
| 进入研究记录,浏览器后退 | 普通记录可读;回到报告开头 | 普通记录投影一致;后退恢复第二节 |
| 从章节展开原文,失败后恢复 | 既有原文入口和读失败处理 | 窄屏故障提示、重试三行原文、关闭归还焦点 |
在 1200 × 900 与 390 × 844 验证点击、键盘、重开、刷新及历史往返。模拟阻断原文读取后,候选能显示错误、重试读到三行并将焦点归还给引用按钮。普通研究记录页对照一致;无解读的 Goal 仍显示研究历程。两端源文件读回不变且无写请求。
两端 Chat 源码构建通过;候选的研究原文 smoke、快速预合并 4 项直接检查和 2 项所选检查通过。 视觉检查限于两种宽度的本地 Chat 源码构建和合成资料;未独立复装作者的 wheel,未复测外部已登录来源及其他浏览器。
我的整体评价 / Verdict
实看了桌面和窄屏:默认先见版本、标题和结论,范围仍折叠;深链将章节标题置于可见区,展开的原文在窄屏能换行并关闭返回。 视觉检查限于两种宽度的本地 Chat 源码构建和合成资料;未独立复装作者的 wheel,未复测外部已登录来源及其他浏览器。
当前提交的证据支持批准。目录可独立恢复位置,原文和普通研究记录仍沿用已有入口。
English verdict: APPROVE. The exact head restores chapters for the pinned study version across fresh open, reload and browser history, with evidence recovery and record-view parity verified in the local Chat build.
|
This pull request has merge conflicts with Choose the remote for the base repository, not an out-of-date fork. git fetch upstream
git rebase upstream/main
# Resolve each conflict, git add the resolved files, then git rebase --continue.
git push --force-with-lease origin HEADFor a same-repository clone whose Keep the DCO |
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 · max
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
动机 / Motivation
受影响的是读到研究解读中后段、之后要继续读或分享某一节的人。 主干目录能滚动到第五节,但复制地址重新打开会回到导语;候选链接固定同一保存版本,并恢复第五节。 在桌面和窄屏中,重开、刷新、后退和前进恢复已选章节;章节原文失败后能在原处重试。
复制一个章节后仍要重新寻找正文,会在每次阅读中断时重复消耗注意力。原来的研究记录和引用入口已能读取资料,缺的是继续阅读同一份资料的位置,而无需重新选版本或输入已知信息。本轮只验证已保存解读的阅读导航与只读来源,不证明模型研究效果或已安装客户端行为。 安装后的实际 App 阅读仍待部署后读回;研究完整性与科学结论的验证继续由原研究任务负责。
改动思路 / Approach
保留现有 Research URL、保存版本与引用读取所有权,只把章节选择投影到地址并在文章内恢复焦点。 本 PR 只交付已保存 Case 解读的章节链接与恢复,不增加持久 Goal 状态、分析权限或后台执行。
目录第一次生成链接就固定当前版本,避免只加片段后跟随新默认版本。普通点击沿现有 History 就地更新;修饰键仍使用浏览器普通链接行为。重新挂载或历史导航后,仅允许当前文章内存在且可见、Goal、版本和来源均匹配的章节恢复焦点。现有引用的版本隔离、失败重试和焦点归还继续由原控制器负责,不增加第二个分析或读源实现。
| 操作 | 主干 | 当前候选 |
|---|---|---|
| 复制第五节地址后重开 | 回到导语,没有章节焦点 | 打开同一保存版本并恢复第五节 |
| 同名章节跨版本 | 无章节恢复能力 | 不借用另一版本的章节;主动切版清除旧片段 |
| 原文失败后重试并关闭 | 既有错误与恢复入口 | 仍读同一原文,归还章节焦点与原地址 |
具体改动 / Changes
审查提交 cd5b09de97ca308442ccd16087c3800f1fd8316d,对照主干 cffb53fe46ea57bae5394cd633bf98f71af93d3a。本次整合包含前置 #8384、#8411 已合并的能力;重新核对当前差异是四个文件(+81/−17),不是 GitHub 一度缓存的旧主干比较。旧提交的批准不覆盖这个整合提交。
验收依据为 docs/development/design.md#research-workspace--研究工作台,固定版本 cffb53fe46ea57bae5394cd633bf98f71af93d3a。以下标签是这份阅读合同的描述性索引,不是新增合同词汇:research-reading-selection 已实现重开、刷新和历史恢复;research-source-boundary 已实现 Goal、来源和保存版本隔离;original-evidence-return 保留原文、失败恢复和独立研究记录入口。对应验证使用真实编译后的 Chat 页面及原生只读后端,不以组件出现作为恢复成功。
关键代码讲解
navigate沿现有版本选择更新地址,只在切换版本时清除章节片段;不会把新目录引入为读源或状态权限。studyNavigation从现有来源、Goal 和 pack 派生可复制地址。章节选择是明确的阅读意图,其余信息均复用当前目录事实,浏览器历史负责回放。ResearchCaseStudy.restore在挂载与历史变化后核对模式、Goal、版本、来源前缀和当前文章可见性,清理旧 frame/listener。未知目标直接忽略。case-outline用真实链接替代滚动按钮,保留键盘与修饰键行为;焦点和滚动共用局部 helper。静态 smoke 的真实调用 fixture 同步补齐 navigation,没有生产兼容分支。
对主干的风险 / Risks
最强反例是两个版本有同名章节,旧片段把读者带到另一份资料;另一风险是延迟原文响应或普通记录视图夺走章节焦点。当前 1200×920 与 390×920 真实入口对照验证了同名 ID、缺失章节、外来片段、切版及 Back、刷新与 fresh open。带着子 Goal 选择进入父 Goal 时,实际读源返回不可用而没有借用子资料;未知片段不聚焦。普通研究记录可进入,返回后仍恢复第五节。
PASS:两端源码构建、当前 TypeScript/Chat bundle、CSS 检查、研究分析原生读 smoke、原文到本地化结果与延迟响应回归、标准预合并四项直接检查和两项所选检查。严格质量凭据与当前 base/head 匹配。注入 HTTP503 后同一原文重试成功,关闭归还原章节;源文件未变且无写请求。独立恢复断言在主干实际得到 null、候选得到预期第五节标题,证明检查能够识别旧缺陷。
保留失败历史:整合最初暴露静态 fixture 缺少 navigation,修正 fixture 后按原断言通过;一个额外负例脚本曾等待不存在的父页 CSS 类,改为检查实际不可用提示后完成。此前报告的 CI 延迟原因仍 UNVERIFIED,没有称作已修复。本轮遵循不等待 CI 的既定策略,没有查询或轮询 CI。改动没有新增激活、权限、配额或 agent 指令;无功能开关隔离承诺,也没有为获得通过而降低门槛。
我的整体评价 / Verdict
这是 justified_increment:long_horizon 和 user_experience 在重复阅读的连续性上 improved,不代表研究结论或模型得分提高。实看桌面与窄屏的长篇合成解读:默认先见结论,展开后可见全部五条依据;恢复链接将章节标题和正文带回阅读区。 视觉资格限于当前源码构建、真实读后端与合成资料;当前未复装 Desktop/WK,也未复测外部已登录来源。
保留现有 Research URL、保存版本与引用读取所有权,只把章节选择投影到地址并在文章内恢复焦点。 本 PR 只交付已保存 Case 解读的章节链接与恢复,不增加持久 Goal 状态、分析权限或后台执行。 小范围 helper 和现有 URL owner 足够,无需并行状态、兼容解码器或新抽象。完整内容、依据与普通记录仍可到达,版本恢复没有要求额外确认。源构建和真实读路径已达到本次导航切片验收;安装后的观察与原任务的完整研究验收分别保留,不能从批准推断已部署或科学效果。
English verdict: APPROVE. Exact head cd5b09de97ca308442ccd16087c3800f1fd8316d restores the pinned study chapter across reopen, reload and history, with source/version isolation and citation recovery verified in the compiled Chat/native read path.
Goal And Delivered Outcome
A reader returning to a later chapter of a saved case study used to reopen its introduction. Each chapter now has a normal link bound to the same child Goal, source and saved version. Reload, fresh open and Back/Forward restore the selected passage; a hash from a different version or source does not focus another chapter.
Author Declaration
Written by OpenAI Codex as a model agent. Implemented against the Research Workspace reading contract.
Integration And Scope
Tested revision:
cd5b09de97ca308442ccd16087c3800f1fd8316d, based oncffb53fe46ea57bae5394cd633bf98f71af93d3a.The current revision integrates the merged #8384 and #8411. It preserves their single-expansion conclusion evidence, same-result refresh, citation version fence and in-place retry. Conflict resolution keeps the existing evidence state owner and shared citation list. The static reader fixture now supplies its required navigation context for both single- and multiple-version checks.
No analysis, source registration, persisted Goal state, execution permission or benchmark scoring changes. Original records remain a separate reading view.
Validation
cqr_00051d02606434a774bfverified.05edd379ebdoes not approve this integration. Current browser qualification uses synthetic data and the real read handlers; the earlier three archived-case checks remain evidence for their original revision.The initial combined static smoke failed because its controller fixture lacked the navigation callback. The fixture was corrected; production reading did not gain a compatibility fallback. Previously reported CI latency remains a diagnostic observation with an unresolved original trigger; this PR does not claim to repair it. Remote CI was not queried under the current managed policy.
Frontend / Visual Evidence
All current images show the same public-safe synthetic study in the compiled Chat bundle at
cd5b09de97ca308442ccd16087c3800f1fd8316dwith the native HTTP read backend. This is a source bundle qualification, not installed Desktop or a new benchmark result. The first viewport keeps the conclusion; optional originals and provenance remain below one disclosure. A chapter link restores its heading and full text in the narrow reading column.Type of Change / LoopX Area