Repository navigation
feat(research): time-anchored Explore history lens for late-phase attribution - #6629
Conversation
Stacks on loopx-project#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>
|
Added the reusable Lark-whiteboard renderer ( |
|
Product integration assessment at The integration reproduces and repairs three reading failures: phase filtering after per-question deduplication hides an earlier decision when that question has a later decision; non-replan tick marks label wait/stop/no-change as continue; append order can make a delayed historical backfill look like the latest recorded decision. The packaged markers also inherit a 44px minimum height while keeping a 14px width, stretching points into ovals. The refined candidate retains all decisions, selects phases in the shared TypeScript presentation owner, preserves the actual outcome and separates the circular glyph from its touch target. The consolidated proposal also carries #6616’s later UTC-day-preserving capture and frozen snapshot identity correction. It discloses the static Lark example’s excerpt limits and reuses the same decision selector. The complete event-history reader and a compact current-state projection remain different sources; missing native edges, attempt intervals, costs and adoption bindings remain unknown. Current author validation: the real scoped HTTP history test, 24 TypeScript presentation/digest regressions, dashboard typecheck, packaged build/integrity and semantic vocabulary check pass. Packaged research-history, ordinary Goal showcase, managed results, research results and blocked-reason journeys pass, including failed-refresh recovery. These do not establish independent review, installation, full V11 acceptance or a completed V12 analysis service. Independent exact-head review has been requested; the consolidated first-screen preview is awaiting owner confirmation before publication. This integration note is not an approval verdict. |
062df0f
into
loopx-project:codex/research-history-workspace-20261016
Stacks on #6616 (does not replace its reader). Validated on both accepted datasets: the PR's redacted EdgeBench capture (9.6 days, 364 events) and a real local long game research Goal (2.9 days, 483 events, 51 path_delta decisions), through the packaged Chat over the real loopback history owner.
Why
Research collaborators and product users need to answer, without scanning a node grid:
Input revision / Applicability / Observation / Interpretationsections; path_delta decisions exposeOutcomeplusretained / changed / stopped.What
loopx/control_plane/presentation/explore_timeline.ts): section parser, thirds, density bins, routes via edge/parent union-find, decision trail. Display-only — no protocol vocabulary, graph authority, evaluator or progress score.Validation
node --test tests/control_plane_ts/explore_history.test.ts: 6/6 pass (added thirds/routes/decision parsing case incl. "unstructured stays raw").pytest tests/presentation/test_explore_history.pypasses; dashboardtsc --noEmit, CSS custom-property check and packagedvite build+build:chatpass.First-screen screenshots were reviewed locally against both datasets before this PR; no private screenshots are uploaded. The companion Lark baseline experiment used the redacted EdgeBench capture only.
Not included (separate owning work under #6606): native outcome curves, agent deep-analysis action, Lark sink changes.