Skip to content

fix(vis): recover headerless journals and session-root task logs - #314

Merged
elkholy90 merged 1 commit into
mainfrom
fix/reconcile-rows-e-2026-09-15
Sep 15, 2026
Merged

elkholy90 merged 1 commit into
mainfrom
fix/reconcile-rows-e-2026-09-15

Conversation

@elkholy90

Copy link
Copy Markdown
Contributor

Related Issue

Internal visualizer recovery for sessions whose journals or task logs use older on-disk layouts.

Problem

The visualizer rejected headerless wire.jsonl files, treated untyped JSON as a broken main wire, and missed main-agent background tasks that still live under the session-root tasks/ directory. Imported debug manifests also passed through free-form shellEnv and omitted desktop/web log fields. Session workDir was empty when the append index was missing even if state.json still had cwd.

What changed

  • Read headerless journals as protocol 1.4 and migrate them in memory. Normalize legacy plan.revision path values to the current storage key.
  • Recover workDir from state.json when the session index does not have it. Sanitize untrusted agent metadata and keep Dynamic Workflow item labels.
  • Sanitize imported debug manifests: string-only shellEnv fields plus desktop/web log and desktop version fields.
  • List and page main-agent task output from the agent homedir first, then the legacy session-root tasks/ directory. Treat an empty primary log as present so it is not shadowed.
  • Parse both epoch-ms and ISO timestamps in the session and state views.
  • Include apps/vis/server and apps/vis/web in the root Vitest project list.

No changeset: vis packages are not published changelog entries.

Checklist

  • I have read the CONTRIBUTING document.
  • I have linked a related issue (external PRs: the issue must have a maintainer's /approve).
  • I have added tests that prove my feature works.
  • Ran gen-changesets skill, or this PR needs no changeset.
  • Ran gen-docs skill, or this PR needs no doc update.

Treat headerless wires as protocol 1.4, sanitize imported debug
manifests, recover workDir from state, and read main-agent tasks
from the session-root fallback.
@coderabbitai

coderabbitai Bot commented Sep 15, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 15 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

This review ran on the open-source allowance, not this organization's plan, because the pull request author doesn't have an assigned seat. Waiting won't change this — ask an organization admin to assign them a seat, or add seats in Billing if every seat is already assigned, then retry.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 0bdf6495-7266-4cba-9998-ead1a4b7248b

📥 Commits

Reviewing files that changed from the base of the PR and between 09d69fe and ce149b8.

📒 Files selected for processing (22)
  • apps/vis/server/src/lib/agent-record-types.ts
  • apps/vis/server/src/lib/import-store.ts
  • apps/vis/server/src/lib/session-store.ts
  • apps/vis/server/src/lib/task-store.ts
  • apps/vis/server/src/lib/wire-reader.ts
  • apps/vis/server/src/routes/tasks.ts
  • apps/vis/server/test/lib/agent-tree.test.ts
  • apps/vis/server/test/lib/import-store.test.ts
  • apps/vis/server/test/lib/session-store.test.ts
  • apps/vis/server/test/lib/task-store.test.ts
  • apps/vis/server/test/lib/wire-reader.test.ts
  • apps/vis/server/test/routes/tasks.test.ts
  • apps/vis/web/src/components/analysis/TimelineTab.tsx
  • apps/vis/web/src/components/context/ContextTab.tsx
  • apps/vis/web/src/components/state/StateTab.tsx
  • apps/vis/web/src/components/subagents/SubagentNode.tsx
  • apps/vis/web/src/components/wire/WireTab.tsx
  • apps/vis/web/src/pages/SessionDetailPage.tsx
  • apps/vis/web/src/pages/SubagentDetailPage.tsx
  • apps/vis/web/src/util/time.ts
  • apps/vis/web/test/time.test.ts
  • vitest.config.ts

Comment @coderabbitai help to get the list of available commands.

@pkg-pr-new

pkg-pr-new Bot commented Sep 15, 2026

Copy link
Copy Markdown
pnpm dlx https://pkg.pr.new/@pymodel/pythinker-code@ce149b8
npx https://pkg.pr.new/@pymodel/pythinker-code@ce149b8

commit: ce149b8

@elkholy90
elkholy90 merged commit d18aa91 into main Sep 15, 2026
36 of 38 checks passed
@elkholy90
elkholy90 deleted the fix/reconcile-rows-e-2026-09-15 branch September 15, 2026 17:50
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