Skip to content

Scope the research timeline to loaded history during recovery - #8626

Merged
huangruiteng merged 1 commit into
mainfrom
codex/research-partial-history-20261112
Nov 12, 2026
Merged

huangruiteng merged 1 commit into
mainfrom
codex/research-partial-history-20261112

Conversation

@loopx-agent

Copy link
Copy Markdown
Collaborator

Goal and delivered outcome

Open the Research tab on a Goal and tell how much of the recorded history is available. A failure after page one used to display the loaded interval as a whole-run timeline and describe the first load as a failed refresh.

The reader now labels the loaded interval, keeps its records and evidence available, and shows whole-history periods when the full snapshot is available. Keyboard retry focuses the updated coverage and restores a saved period after recovery. If a refresh fails with a complete snapshot on screen, its timeline and evidence remain available.

The intended base is main. This change uses the existing Explore history reader and its completeness state.

Author declaration

Written by model_agent, Codex (OpenAI GPT-6).

Implemented against Research Workspace in design.md at b9111c37cef9ed46bb3c8ccd455029023216600f.

Criterion Disposition Owner and verification
Display the actual time range and a visible retry when reading fails implemented The dashboard history reader distinguishes an interrupted first load from a failed refresh. The packaged record-search scenario injects a second-page failure.
Retain recorded evidence and navigate the exact original event implemented The existing Explore timeline and finding reader retain records and their sources. The packaged fixture and read-only archive check scope, links, and keyboard return.
Preserve selection, focus and layout implemented The current period bookmark is applied after full coverage returns. The browser checks both widths and keyboard navigation.

Scope and continuation

The fix is complete within the read and recovery journey. Independent review and installed desktop adoption are pending.

Validation

  • Tested revision 51517200cd07a20460d414d5863f84904bee93ff against b9111c37cef9ed46bb3c8ccd455029023216600f
  • Run state finished
  • Inputs synthetic, public_fixture, and authorized_private_read_only
Check kind Result Evidence
static passed Dashboard TypeScript and style checks, exact source bundle and isolated wheel, standard diff-selected premerge
regression_parity passed On the base, an interrupted 40-of-79-record read reported a failed refresh and displayed “Whole run.” The candidate labels the loaded range and restores the bookmarked period after retry. The failure of a subsequent refresh retains the complete axis.
integration passed The packaged research history, source recovery and record search scenarios covered full and partial scope, retry, export, Back/Forward and original evidence.
real_backend passed An isolated wheel frontend used the LoopX 2.3.0 read-only backend for a long native archive. An injected second-page failure recovered at 390 and 1440 px. Earlier, middle and later decisions opened at their original events and returned keyboard focus to their controls. A saved decision reopened after navigation.
manual passed Inspected the packaged fault and recovery layouts at both widths and a fully opened native decision at 390 px.
real_entrypoint not_run Installed native desktop adoption.

Frontend visual evidence

The same synthetic history and the same second-page failure on the two packaged revisions. The loaded date range and retry are visible before the chart at both widths.

Viewport Before After
Desktop 1440 px Partial first load before. The chart labels the loaded prefix Whole run. Partial first load after. The coverage and axis describe loaded records.
Narrow 390 px Narrow partial first load before. The notice calls it a failed refresh. Narrow partial first load after. The notice describes partial coverage and Retry stays visible.

The coverage line carries the loaded date range and count. Retry stays beside the failure notice, and detailed transport information remains available through the existing help control. In the dense native example, the parent title and saved analysis still push the chart below the first narrow viewport.

Type of change

  • Bug fix
  • Test update

LoopX area

Personal Workspace Research

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.

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

Reviewer: model_agent · gpt-6.1-sol · OpenAI · runtime_reported · max

本次评审对应提交 51517200cd07a20460d414d5863f84904bee93ff。

动机 / Motivation

在 Goal 的 Research 页读长历史的用户需要知道记录覆盖和原证据。后续页失败时,主干把 40/79 条的范围标为 Whole run,并提示刷新失败。同一记录源第二页 503。候选用已读时间范围和局部失败提示,重试后恢复 79/79。用户能区分已读范围、完整范围和旧快照,恢复后继续读已保存的时段。本次覆盖既有研究历史的读取和恢复。实际研究执行与分析继续由明确动作触发。

改动思路 / Approach

现有 Explore reader 已提供完整性和原记录。沿用该状态控制覆盖文字、图表时段与当前选择。变更落在现有只读 Research 页面和相邻浏览器场景。 局部范围仍可浏览和搜索。完整性恢复后才应用 URL 中保存的时段。 已保存时段

具体改动 / Changes

关键代码讲解

  • GoalResearchHistory 用 read.complete 和已读记录数区分首次局部、完整旧快照刷新失败和未读源。键盘 Retry 先把焦点交给覆盖行,再触发原读取。 覆盖与重试
  • GoalResearchTimeline 在局部显示从最早已读记录起的轴和已读密度。完整性恢复后显示全程分段、分隔线及对应帮助。 时间轴
  • research-record-search.mjs 扩展原场景,检查局部读取、两个视口、键盘焦点和时段恢复。 浏览器场景

按 docs/development/design.md 在 base 9ce3a46bfe525aa2167de6699fc676ce8ef60247 的条款核验。 loaded_time_range 由 40/79 和可见 Retry 验证。 source_evidence_retained 由展开后原记录的标题、正文和 ID 逐项核对。 period_and_keyboard_recovery 由 79/79 的键盘焦点、原 Late 选择和后续刷新故障验证。 Research Workspace 原文与来源

对主干的风险 / Risks

PASS。用同一 79 条原记录、真实本地 Explore 只读分页和同一第二页 503 对照打包主干与候选。候选在两种宽度均呈现局部时间范围。恢复后显示 79/79 和三张时段卡,焦点在覆盖行。再次刷新失败仍保留 79/79 和 Late。

PASS。首个请求失败时显示来源尚未读取,页面没有时间轴。切到同一来源的另一 Goal 后显示 5/5 来源行,书签没有跨 Goal 继承。源文件读回相同,写入计数为零。两臂 Chat 构建及候选四项直接检查和四项选中检查均通过。远端 CI 为 UNVERIFIED。

语义与 CI 对齐

继续由已有读取状态确定覆盖,错误提示和本地日期均来自当前快照。改动沿原 Research 入口,不增加执行动作。 覆盖投影

我的整体评价 / Verdict

候选完成了局部可读和完整恢复的旅程。用户可以判断当前时间范围,继续读原记录,并从已保存的时段继续。实际查看了 1440 和 390 px 的局部首读、恢复后时段和下方记录。390 px 展开长中英标题后,原文与来源分行可读。独立验证覆盖打包 Web Chat 和合成 Explore 来源。安装态桌面与真实长档案未在本轮独立验证。

English verdict: APPROVE. At 5151720, packaged browser runs scoped the 40-of-79 partial read, restored coverage focus and the saved period on retry, and retained the complete snapshot after a refresh fault.

@huangruiteng
huangruiteng merged commit ec419e8 into main Nov 12, 2026
35 of 48 checks passed
@huangruiteng
huangruiteng deleted the codex/research-partial-history-20261112 branch November 12, 2026 08:17
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