Skip to content

feat: read full recorded Explore history in Goal Overview - #6616

Closed
loopx-agent wants to merge 14 commits into
mainfrom
codex/research-history-workspace-20261016
Closed

loopx-agent wants to merge 14 commits into
mainfrom
codex/research-history-workspace-20261016

Conversation

@loopx-agent

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

Copy link
Copy Markdown
Collaborator

Goal Overview currently offers folded findings and task relationships without a readable account of the recorded research history. This change reads every bounded page of a Goal-scoped frozen Explore snapshot and presents its questions, attempts, explicit relationships, versions and findings in place. One optional selection opens the recorded evidence and revision history; reload and return preserve context.

Sparse questions are collected by first recorded UTC date. Grouping creates no supporting or causal edges. Source labels, record time, unknown attempt-time coverage and unverified checking/adoption remain explicit. A failed refresh retains the last complete snapshot; a cold partial read stays partial, and an unread source is not reported as zero or absence.

前端默认读取完整已记录历史,一次可选选择展开版本与依据。父子主题只表示分组,记录空窗不证明研究停滞。事实图不启动 Agent;按需分析尚未接入。

Entry points and boundaries:

  • Goal Overview extends the existing loopback Explore reader with view=history; existing findings callers keep their response contract. Python adapts canonical records, and the shared TypeScript presentation module owns parsing, replay identity and display grouping. No second graph authority, evaluator or shared state vocabulary is introduced.
  • A redacted EdgeBench operator capture gives the display workflow durable real structure: 364 events, 120 nodes, three explicit typed edges, parent history over 12 nodes, and a recorded span of 9 days 14 hours. Prose is rewritten and identities/references are opaque. Whole-day date translation preserves UTC-day buckets, time of day, intervals and append order. It is not a solver trajectory or a benchmark result release.
  • The fixture uses the production HTTP history owner with disposable state. Its digest is frozen with its input bytes; later file edits cannot retag a served snapshot. Surrounding execution/session services are test scaffolding, not installed App qualification.
  • This is the recorded-history reader stage under the merged two-layer research contract. Native outcome curves, original artifact-file navigation and shared Agent analysis execution remain open. No CLI or messaging execution policy changes.

Validation:

  • Real history HTTP and existing findings compatibility: 3 tests passed. Typed history/replay, missing anchors, earlier negatives, sparse grouping and 200-node coverage: 5 tests passed.
  • Packaged research-history passes with all ten history pages and exact event order, the three typed edges separately from parent grouping, selection/reload/Escape, 390px/reduced motion, failed-refresh retention/recovery, unchanged source bytes, no history-owner mutation attempts and no Agent starts.
  • Packaged managed reports, research results, monitor readback and blocked-reason readback pass. Overview and Files each require their own exact report/projection read. The default extension inventory stays inside the fixture; it no longer falls through to an unrelated unconfigured service. Task inspection targets the active Tasks surface rather than duplicate Overview/rail copies. Console diagnostics retain the failing resource URL.
  • Integrated latest main (f6cf9583794eb8c4cca41fa832a1c2f150059583) without rewriting branch history. Conflicts in three browser scenes preserve directory laziness, the exact active Tasks panel and inventory-before-body assertions. No new first-screen composition was introduced.
  • Packaged attached-host-follow-up also passes, including the confirmed/uncertain native fixture and non-JSON interruption recovery brought in from main. This is a disposable peer qualification, not installed Codex adoption.
  • Packaged build/source verification, fresh dashboard/control-plane typechecks and the full semantic-vocabulary drift smoke pass. The pre-merge semantic advisory identified the already-upstream local runtime method work_item.replan_semantics.project; this integration adds no vocabulary owner. Advisory syntax/untracked limits still apply.
  • Ego readback exercised a separate authorized frozen worker input through the same HTTP/packaged path, including full loading, grouped evidence, reload/return, narrow layout and reduced motion. Raw inputs, native scores and real-case screenshots remain private. The public fixture was separately verified against its source structure and time partitions before publication.
  • The previously recorded capture_present storage collection error no longer reproduces after main integration: the affected storage test module passes all 33 tests. This scoped readback does not certify the full stage2c CI shard. New-head remote CI and independent review remain pending.

The first-screen composition was owner-approved before commits. The bounded future-facing pass keeps interpretation in the existing typed read model, reuses canonical event validation and freezes fixture provenance. New timing/analysis presentation and installed desktop behavior are not claimed complete.

Before Proposed recorded-history view
Synthetic research overview before Synthetic recorded research history

These approved composition images use synthetic data. They are not screenshots of a live experiment, the redacted capture, or the installed App.

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>
@mergify

mergify Bot commented Oct 16, 2026

Copy link
Copy Markdown

This pull request has merge conflicts with main and cannot be merged
until they are resolved. Please rebase or merge the base branch, @loopx-agent.

Choose the remote for the base repository, not an out-of-date fork.
For a fork clone, first inspect git remote -v; upstream must point
to https://github.com/loopx-project/loopx.git. If it is absent, add it
with git remote add upstream https://github.com/loopx-project/loopx.git.
Then run:

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 HEAD

For a same-repository clone whose origin points to
https://github.com/loopx-project/loopx.git, use origin instead of
upstream for fetch/rebase. If you prefer merging the base, use
git merge <base-remote>/main and push normally.

Keep the DCO Signed-off-by trailer on every commit when you rebase.
https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify Bot added the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Oct 16, 2026
…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>
@mergify mergify Bot removed the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Oct 16, 2026
@mergify

mergify Bot commented Oct 16, 2026

Copy link
Copy Markdown

This pull request has merge conflicts with main and cannot be merged
until they are resolved. Please rebase or merge the base branch, @loopx-agent.

Choose the remote for the base repository, not an out-of-date fork.
For a fork clone, first inspect git remote -v; upstream must point
to https://github.com/loopx-project/loopx.git. If it is absent, add it
with git remote add upstream https://github.com/loopx-project/loopx.git.
Then run:

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 HEAD

For a same-repository clone whose origin points to
https://github.com/loopx-project/loopx.git, use origin instead of
upstream for fetch/rebase. If you prefer merging the base, use
git merge <base-remote>/main and push normally.

Keep the DCO Signed-off-by trailer on every commit when you rebase.
https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify Bot added the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Oct 16, 2026
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>
@mergify mergify Bot removed the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Oct 16, 2026
loopx-agent and others added 2 commits October 16, 2026 16:19
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>
…e-lens-20261016

feat(research): time-anchored Explore history lens for late-phase attribution
@loopx-agent

Copy link
Copy Markdown
Collaborator Author

Superseded by #6648. #6629 was merged into this PR's source branch (codex/research-history-workspace-20261016) at 062df0f8302f9abd6e414c29ee8d87c7b5a7943c, not into main.

The active integration #6648 already contains #6629's exact head 916cec603e8537c0791a9bb4042e07538c579e60 as an ancestor, together with corrections for omitted earlier decisions, misleading wait/stop continuation labels, delayed backfill ordering and touch targets. Closing this older proposal avoids presenting its uncorrected source branch as an alternative merge candidate. No branch deletion or history rewrite is needed; #6648 remains open for independent exact-head review and required checks.

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