Skip to content

feat(workspace): integrate whole research history and time-anchored reading - #6648

Merged
huangruiteng merged 26 commits into
mainfrom
codex/research-history-integration-20261016
Oct 16, 2026
Merged

huangruiteng merged 26 commits into
mainfrom
codex/research-history-integration-20261016

Conversation

@loopx-agent

@loopx-agent loopx-agent commented Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator

Opening a research Goal now reads the complete recorded Explore history in Overview, with a default record-time lens and an optional relationship view. One optional selection opens original questions, versions and evidence inline. Colliding points open together with every original member, so overlapping 44px targets cannot select a different question; grouped selections survive refresh and browser Back/Forward.

This updates the integration of #6616/#6629 with three real, recent research checkpoints selected for actual downstream restoration. Original text, times, IDs and references are preserved:

Case Checkpoint Turns Explore records Questions / findings
Portfolio risk calibration 58 76 38 / 38
Graph node classification 100 134 66 / 68
Ad placement optimization 87 105 48 / 57

The pinned trajectory dataset contains all seven retained session files: 64,064 native JSONL records, plus the 315 Explore records. All seven remote publication files were downloaded and matched to their local SHA-256. The manifest distinguishes checkpoint digests from evaluation-capsule manifest digests, records the actual continuation receipts and preserves the failed newer Portfolio preparation. Only opaque encrypted-context fields were redacted from sessions, with an audit; Explore logs are unchanged. Full trajectories stay outside the frontend bundle and Git repository.

Presentation: source-status color legends remain visible. Counts now correctly name research items; a source label is not independent verification. All three captures have zero explicit edges and zero parent links. Date/point grouping cannot invent relationships from chronology, shared versions or checkpoint reuse. The standalone reader exposes all three Goals through a disposable native registry and rejects writes; unavailable execution services remain explicit. The first screen was owner-approved before these commits.

Current-head validation: 24 TypeScript history/writeback tests; four Python tests including independent original-byte hashes and real isolated HTTP pagination/scope/failure cases; Ruff, syntax/whitespace, semantic advisory then full drift checks; Chat bundle build and integrity verification; packaged research-history, research-results and managed-goal-results journeys. History checks cover all two/four/three pages, real negative evidence, cross-Goal switching, unchanged source bytes, refresh/Back/Forward, failed-refresh recovery and 390px. A separate synthetic coincident-point regression verifies actual pointer/keyboard selection without altering real captures. All three inputs also generate valid Lark SVGs with the shared research-item count, without undefined values. The existing large-chunk build warning remains. CI and exact-head independent review remain separate.

Evidence and reproduction: guide, Portfolio, Graph, Ad placement, original negative evidence. The independent standalone browser's automatic model/session POSTs are rejected; its captured logs, registry and task state remain unchanged. The packaged history scenario routes unrelated chrome through its existing test scaffold and records zero writes to the isolated history owner.

Ownership and limits: the Python GET adapter transports scoped pages; TypeScript owns the shared history/timeline projection and collision grouping. The interactive workspace and Lark SVG reuse that owner. The HTTP view selector and URL selection format are presentation contracts; canonical Explore vocabularies, scheduling and effect authority are unchanged. No new configuration or execution permission is required for reading. The Lark SVG remains an excerpt example. V11 is partial: missing source relationships, native score curves and installed App adoption are not qualified. V12 requested deep analysis is not implemented. These real captures are diagnostic only, not score-countable or evidence of scientific benefit. The paired RFC checkpoint records this boundary.

#6648 is the single integration proposal. #6629 was merged into the superseded #6616 source branch, not main; its donor head is already an ancestor here, with the integration fixes retained.

loopx-agent and others added 17 commits October 16, 2026 14:16
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…y-workspace-20261016

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…y-workspace-20261016

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

# Conflicts:
#	apps/presentation/dashboard/src/features/personal-workspace/goal-overview.tsx
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…play

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Stacks on #6616 instead of replacing its reader: the full-history pagination,
typed read model, relationship graph, selection and replay invariants remain.
The new default lens projects the same events on a record-time axis so long
runs answer what the late phase produced and why direction changed.

前端默认"时间线"镜头,保留"关系图"切换;三等分卡片展示各段新问题、
来源结论标签与显式转向/继续;密度柱暴露记录空档;路线只由显式边与
父子分组相连,未关联问题单独成蜂群,时间相邻不产生边。finding 详情
按 writeback 拥有者的 Input revision/Applicability/Observation/
Interpretation 分段,并解析 path_delta 的 Outcome 及
retained/changed/stopped 列表,回答"为什么转向、为什么停止"。
非结构化结论保持原始散文,并明确提示无法拆出决策。

- Shared typed presentation module owns section parsing, thirds, routes and
  timeline bins; no new protocol vocabulary, graph authority or progress score.
- Phase thirds are reading groups only; record time is never attempt time and
  marker position never encodes progress, cause, checking or adoption.
- Detail selection, URL focus, keyboard Escape, refresh behavior and the old
  graph lens work from both lenses; 390px collapses phases and trail to one
  column with zero horizontal overflow (EdgeBench fixture verified).
- Validated with the redacted EdgeBench capture (9.6d/364 events, no
  structured decisions) and a real local 2.9d/483-event game research Goal
  (51 path_delta decisions), through the packaged Chat over the real HTTP
  owner. Typecheck, CSS token check, control-plane tests (6), Python history
  test and packaged build pass.

Signed-off-by: huangruiteng <huangrt01@163.com>
…ed history

Same shared read model as the dashboard timeline, rendered to an SVG for
lark-whiteboard publish. Verified byte-identical output against the manual
prototype on both accepted datasets (local 483-event game log and the
redacted EdgeBench fixture).

Signed-off-by: huangruiteng <huangrt01@163.com>
…onship views

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…ries

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
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 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.

Request changes conclusion (author-owned PR; GitHub blocks formal self-review)

Reviewer: model_agent; gpt-6.1-sol; OpenAI; runtime_reported; reasoning_effort=max.

动机

受影响的是打开研究 Goal、需要理解早期尝试、反例与后续选择的读者。此前概览主要展示折叠后的结论,完整过程难以连贯阅读;现在增加默认记录时间视图及可选关系图,并让证据在原处展开。完整历史读取及失败刷新保留数据已经验证,但默认时间线的重叠命中区域会打开另一个问题,尚未完成准确选择证据的用户结果。本次只评审已记录 Explore 历史的只读阅读,不把来源标签、数量、记录时间或图形当作科学进展,也不要求本 PR 完成深度分析服务。

本次完整审查绑定 f657a65c6abd03f1f6b87937c327f4ccfb2ccde2,包含被整合的 #6616/#6629 及本头的图例、测试衔接和文档;没有继承它们的历史结论。

改动思路

Python 只提供作用域内的分页源记录,TypeScript 复用 Explore 的事件与 writeback 结构做展示;这能避免把另一套 evaluator 放进页面。当前 PR 边界是完整记录读取与阅读交互,V11 仍是部分资格,V12、原生指标比较及安装采用继续由既有 owner 承担。

普通路径是打开 Goal 即读取完整覆盖区间,选择问题或日期组后在原处看版本和证据;不需要再配置 provider、复制来源 id 或确认模型调用。记录时间三等分、来源确认标签和分组边都明确限定含义。采用这一有界交付顺序合理,但“数据全部到达”还需要与“实际选中正确对象”一起验收。

基线规格是 dfcb03e6d31361ab65d882e3294b9fdf92b39f6a 的 docs/architecture/rfcs/goal-workspace-surface-v0.md:5.11 Research Goals: whole-history Explore and on-demand analysis、V11 Whole research history、V12 Shared deep analysis,以及同 revision 的 docs/development/design.md 中 Earn The User's Attention 和 docs/development/frontend-delivery.md 的 Task-first delivery / 从用户任务开始。整体 roadmap 的 S5/S11 允许先交付可用的只读阅读,不把全部科学问题关闭作为前置条件。提交前首屏预览已有批准记录,本轮功能反例独立于该呈现批准。

具体改动

  • [P2,阻塞准确阅读] 时间线相邻或同刻节点的按钮互相遮挡,点击会打开另一问题。 goal-research-timeline.tsx 的 route markers 都在同一条 y 轨道,goal-research-history.css 又给每个 marker 固定 44px 命中区域。实际打包页面、真实分页 owner 和本 PR 的 364 条样本中,早期九个节点位于完全相同坐标;已有选择的 z-index 还会持续盖住邻点。我用真实指针点击已反驳问题 “Does matched continuation reproduce an earlier slowdown?”(node-027)的中心,实际 URL 和详情却打开稍晚的 “Does a slowdown persist at a later matched checkpoint?”(node-030)。两个点中心只相距约 12px,44px 按钮重叠。请在现有展示 owner 内对同刻/邻近点聚合或避让,并保证每个成员可明确选择;不要改写原时间、伪造关系或只靠切换关系图绕开默认视图。补真实指针回归,断言目标节点 id 与详情一致,同时覆盖完全同刻、多点、390px 和键盘返回。
  • [P2] 新的 HTTP 回归文件未通过现有 Ruff 规则。 tests/presentation/test_explore_history.py:43,79 的三个分号语句触发 E702。直接对本次三个 Python 路径检查,只有这个新增文件报 3 errors。请按现有格式拆行并重跑;不需要放宽规则。

全 diff 的其余边界:GET 的 view=history 保留节点更新、历史 finding 和原始 append 顺序,旧 findings 默认保持折叠;cursor 隔离 Goal 和 view,后续页面固定原快照。TS 只去重完全相同的 event,拒绝冲突重放;旧反例与 superseded finding 在详情保留,parent 只是分组,未知时间或断链不制造依据。React 逐页读取、保留已完成快照及 scoped selection;布局、来源标签图例、日期分组、完整记录展开和不可用分析说明均已检查。

公开样本的正文与引用是改写的展示材料,结构与相对记录时间的适用范围有说明;本轮不把源 digest 当成独立科学验证。静态 Lark SVG 复用决策选择器,但只摘录最多八组路线和六条决策,文档已保留这项限制。共享 browser fixture 增加隔离的空 extension inventory;两个邻接成果场景保持原读次数并增加顺序断言,没有把原失败改成可忽略。

独立验证:真实 HTTP 历史测试通过,22 项 TS history/writeback 测试通过;当前 Chat bundle 构建、完整性验证、直接 tsc --noEmit、CSS token 检查及语义 advisory→full drift 检查通过。打包 Ego 页面读取 364/364 条,失败刷新保留完整数据及所选 id,恢复后可继续阅读;关系图详情与日期组、Escape 返回、390px 无全页横向溢出及 reduced motion 已实查。上述真实指针负例失败,Ruff 3 errors 保留。独立服务拒绝写入且原 registry/state/log 字节未变;周边执行/session 服务是刻意不可用的 fixture,不据此资格化完整工作区或安装采用。未运行作者的 Playwright 场景,也未读取或等待 CI。

对主干的风险

默认 Overview 增加完整历史读取及时间投影,风险在覆盖声明、稀疏/密集数据、错误恢复和证据选择,而不仅是 CSS 是否溢出。当前命中错误会把一个反例的点击送到另一个仍待检查的问题,直接破坏读者对来源的判断。页面保留记录时间与尝试时间、来源自报与独立核验的区分是正确的;不能用全量分页通过掩盖这个交互错误。

已检查的 whole viewport 将历史及详情放在一起,灰阶层级、图例和未知态有明确用途。深度分析保持不可用,浏览不授予执行、配额或评测权限。V11 的授权真实历史、原生曲线、安装 App,以及 V12 共享分析仍是明确未完成范围;它们不是这次新增的批准要求。

我的整体评价

完整读取与只读恢复已形成有用增量,但当前精确头需要先修复默认视图的选择绑定及新增文件的格式失败。5.11 Research Goals: whole-history Explore and on-demand analysis 的证据可读性有进展;V11 Whole research history 的准确选择与默认交互目前 not met;V12 Shared deep analysis 按既有分期保留 deferred,不能宣称完成。

相邻重构检查已完成:继续复用同一个 typed timeline/decision selector,让碰撞分组与交互一致;无需再加 evaluator、配置开关或另一套研究状态。HTTP 适配与 TS 展示分工合理,Lark 示例继续保持摘录边界。修复可局部回滚且不需要扩大到科学评价;新 head 需重新核验实际指针及原负例。当前结论不授予合并或安装权限。

English verdict: REQUEST_CHANGES — head f657a65. Full paginated reading and failed-refresh recovery work, but overlapping default-timeline hit targets open node-030 when clicking refuted node-027; the new HTTP test also has three Ruff E702 errors. Packaged real-owner UI, HTTP, 22 TS cases and static/build checks were inspected; V11 remains partial and V12 deferred. CI was not consulted.

…y-integration-20261016

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…y-integration-20261016

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…y-integration-20261016

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…y-integration-20261016

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…search-history-integration-20261016

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)

动机

受影响的是打开研究 Goal、需要理解早期尝试、反例与后续选择的读者。

此前概览主要展示折叠后的结论,完整过程难以连贯阅读;现在默认载入完整已记录历史,选择一次即可在原处阅读对应问题、版本与依据。

当前精确头已验证三题 315 条原始 Explore 记录的完整分页、准确分组选择,以及刷新和读取失败后恢复。

本次仅资格化已记录 Explore 历史的只读阅读,不把来源标签、记录时间或关系图当作科学进展,也不完成原生分数曲线、安装 App 采用或深度分析服务。

V11 仍是部分资格:三个真实来源没有显式边和父子关系,原生结果曲线及安装 App 采用未验;V12 共享深度分析尚未实现。

本次完整审查绑定 44c7af3,重新检查全部 29 条路径及 #6616/#6629 的整合内容;旧 f657 评审的重叠命中与 Ruff 两项问题已分别用当前实际指针/键盘反例和格式检查核对,没有继承旧结论。

改动思路

Python 仅运输已限定的原始事件,TypeScript 复用 Explore 与分页 owner 做历史和时间展示,碰撞分组不增加研究关系或评测权威。

当前 PR 边界是完整记录读取与准确的只读阅读交互;V11 的剩余资格和 V12 服务继续保留,不以漂亮图形或数量关闭。

普通路径是打开研究 Goal 即读完整覆盖区间,选择一次日期或点组后原处看每个成员与依据。它不需要配置 provider、复制来源 id、确认分析调用或重复陈述意图。只看最新 finding 的旧 API 回答另一个问题,因此保留原默认值;新的 history 读取共享既有快照与作用域 owner,而不是另建研究状态。原始节点的当前状态仍由 append 顺序决定,时间排序只服务阅读。旧标量选择链接继续可读,多个成员沿既有 router 的数组编码进入 URL。

具体改动

未发现当前头的阻塞问题。基线规格是 Goal Workspace Surface RFC,spec_revision 为 6a4b4e7,同时核对同版本 design.md 的 Earn The User's Attention 及 frontend-delivery.md 的 Task-first delivery。以下按原规格映射,新增 checkpoint 文字不用于自证:

  • 5.11 Research Goals: whole-history Explore and on-demand analysis:已交付记录范围内的事实历史、版本和负例可读性;时间、来源自报和独立核验的含义保持分开,浏览不启动分析。
  • V11 Whole research history:部分交付。三题真实 Explore 记录、完整分页、精准分组、返回和失败恢复通过;真实关系、原生曲线及安装采用未因此完成。
  • V12 Shared deep analysis:按原分期保留 deferred。按钮和说明如实不可用,本 PR 没有另建 evaluator 或假定其已接入。

关键代码讲解

  1. _history_rows / ExploreResultsRequestMixin 仅运输 canonical strict log 的允许字段,复用 completed_todo_pages 的固定快照。Goal 与 view 隔离 cursor;旧 findings 默认仍折叠,早期 node/finding 更新不再被新 history 入口折叠丢弃。任意 research_observation 原始载荷不出现在新响应里。
  2. projectExploreHistory 保存 append 顺序、当前节点及旧 finding revisions;完全一致的事件重放去重,冲突身份拒绝。parent 是分组,缺失端点和时间保持未知,不补造 supports 或因果。
  3. buildExploreTimeline / groupExploreTimelinePoints 将记录时间三等分、密度和原有显式决策投影为阅读视图。碰撞点按实测宽度合拢;数字表示成员数量,分组平均位置不替代任何成员的原时间。默认视图不再让一个 44px 按钮偷走邻点的点击。
  4. GoalResearchHistory / GoalResearchTimeline 逐页验证总量、scope、cursor 与事件一致性后替换快照;失败保留此前完整数据。选择保存在 Goal-scoped URL 中,分组一次展开全部原记录,refresh、Back/Forward、Escape 与旧标量链接均保留实际上下文。

其余完整 diff:Overview 接入、对应样式、三份原始捕获 wrapper、TS/Python 回归和 browser scenario/standalone owner 已读;周边成果场景保留精确读次数并补顺序断言,未删旧断言来适配新行为。Lark board.mts 复用同一 timeline/decision selector,三题 SVG 均可生成且没有 undefined;静态摘录最多八组路线和六条决策,文档如实披露。两语言 RFC 只追加当前部分资格,截图及复现说明与三题来源匹配;早期示意截图不用于本次真实数据验收。

三题为 Portfolio 76、Graph 134、广告优化 105 条,共 315 条,来源均无显式边及 parent。已实际下载 固定 Hugging Face 版本 的三个 ZIP,核对全部 ZIP 和七个压缩会话 member 的哈希;三份 Explore 解压后的原字节与 fixture 重建、原始 digest 完全对应。清单声明 64,064 个 native JSONL records 及 8,784 个 opaque 字段脱敏;本轮没有解读或重新计数七份会话正文,因此不把压缩文件哈希等同于逐条隐私或科学审计。完整会话没有进入 frontend bundle。

对主干的风险

最强反例是“记录全到达,但选择打开了另一个问题”。实际打包页面中独立构造九个同刻成员和一个晚期成员,用真实指针点击含 hit-6 的组,在 1280px 与 390px 都一次得到全部九个正确 id 及其 refuted 依据;44px 目标没有重叠,键盘、数组 URL 及 reload 通过。真实 Portfolio 的原始 cost-gated 反例和 evidence:opportunity-cost-gates 仍可读,三题切换不串入别的 Goal 记录。网络阻断时完整 76/76 和所选日期保留,解除后刷新恢复;窄屏无整页横向溢出且 reduced motion 生效。

独立检查:4 Python、24 TS history/writeback、原有 presentation 42 项在不可变 base 与当前头各通过;Ruff、tsc/Vite 打包及完整性、CSS token、advisory 后完整 semantic/bindings 159 项及 whitespace 通过。真实 HTTP 读取全部 2/4/3 页并核对每个运输字段;wrong Goal/view cursor 为 409,unknown view 为 400,历史快照在原日志新增后仍固定。未运行作者的 Playwright 场景,也未读取或等待 CI。

测试使用真实生产 history/pagination owner 和本头构建的 React;registry、runtime 及周边 execution stores 是一次性阅读环境。独立 standalone 的外壳自动 POST 全部被 405 拒绝,源码、记录、registry 和 task state 字节不变;这不声称外壳完全没有网络请求,也不资格化完整工作区执行。来源确认和 confidence 仅为来源自报,图形、record time 或 replan 数量不证明科学效果。

我的整体评价

APPROVE,当前精确头没有剩余阻塞。long_horizon 为 improved:原记录、早期反例和迟到回填能持续阅读,失败不抹掉先前结果;user_experience 为 improved:无需额外配置,一次选择即可准确得到全部相关记录,返回和恢复有效。

V11 仍是部分资格:三个真实来源没有显式边和父子关系,原生结果曲线及安装 App 采用未验;V12 共享深度分析尚未实现。

有界未来重构检查已落实到共享碰撞分组和既有 router 数组解析,不需要新增 evaluator、状态 owner 或配置开关。Explore vocabulary 继续复用原 owner;HTTP view、Lens 与 URL selection 只在展示边界内。29 路径的体积主要来自获准原始样本,运行时机制与可用阅读结果相称。代码批准不授予合并、撤销他人评审或安装权限。

English verdict: APPROVE — head 44c7af3. Complete scoped history, original negative evidence, accurate grouped pointer/keyboard selection and failure recovery are independently verified through the packaged UI and real HTTP owner. Four Python, 24 TS, 42 base/head reader and 159 semantic cases plus build/static checks pass. V11 remains partial and V12 deferred; no CI, installed-App or scientific-effect qualification is claimed.

@huangruiteng
huangruiteng merged commit c5af2b4 into main Oct 16, 2026
33 of 41 checks passed
@huangruiteng
huangruiteng deleted the codex/research-history-integration-20261016 branch October 16, 2026 17:48
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