Skip to content

P0 Master Tracker: Visual Editor MVP + Dataflow Trace + Debugger Bridge #1118

@emil14

Description

@emil14

Goal

Ship a practical Visual Editor MVP (readonly-first) for Neva, grounded on one runtime execution truth: Dataflow Trace (aka Graph trace).

This tracker coordinates work across repositories:

  • nevalang/neva
  • nevalang/neva-lsp
  • nevalang/vscode-nevalang

Linked Context

Delivery Defaults

  • MVP is readonly visualization + navigation + trace overlay/playback.
  • No full visual write-back in first wave.
  • DAP is non-blocking for MVP; trace core first, thin adapter later.
  • Dataflow Trace is canonical term; Graph trace remains accepted alias.

Phase Checklist

Phase A — Runtime Trace Core (neva)

  • Introduce runtime Dataflow Trace model (message identity, ancestry, sent/recv hop events).
  • Provide trace query API: path / cause trace / formatted trace.
  • Ensure hot-path tracing without stop-the-world default behavior.
  • Panic path prints panic: + dataflow cause trace.
  • Close panic process-exit semantics (Panic doesn't terminate program with exit code 1 #792).
  • Stabilize machine-readable trace event format with explicit versioning.

Phase B — Source Graph Contract (neva)

  • Lock source-level GraphDocument/ComponentGraph contract (AST-level, not IR-level).
  • Add compiler debug sidecar mapping: SourceEdgeID <-> runtime edges.
  • Mark synthetic runtime edges explicitly in sidecar.
  • Provide readonly Mermaid rendering from source graph contract.
  • Lock stable ID strategy for nodes/ports/edges/anchors.

Phase C — Tooling API (neva-lsp)

  • Add endpoints for source graph payload by file/package/component scope.
  • Add trace-query endpoint (path/cause/format), backend-agnostic.
  • Keep runtime internals outside UI payloads (source IDs + overlays only).

Phase D — VSCode UX MVP (vscode-nevalang)

  • Add readonly visual graph preview command with drill-down navigation.
  • Add trace overlay/playback on source edges.
  • Add minimal debugger bridge using trace-query primitives.

Cross-Session Operating Rules

  • Keep this issue as the single status board.
  • At end of each session:
    • update checklist status,
    • post a short progress comment (Done / Decisions / Risks / Next 3 Steps / Links),
    • sync contract changes to docs (docs/qna.md and related issue threads).

Validation Targets

  • Runtime trace deterministic path reconstruction (linear + fan-in/out + bypass cases).
  • Panic output includes cause trace and exits non-zero.
  • Source graph projection preserves source semantics (chain/selector/const/fan-in/fan-out/bypass).
  • Overlay mapping does not leak synthetic runtime internals into UX.

Metadata

Metadata

Assignees

No one assigned

    Labels

    largeWeeksp0It blocks the closest milestonetaskMake it work
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions