Skip to content

Lineage: DataLineageCanvas + open action (web IDE) #5

@JonathanTurnock

Description

@JonathanTurnock

Part of #1 — data lineage canvas. Depends on the wasm export. No new JS deps (reuse @xyflow/svelte + @dagrejs/dagre).

Changes (web-ide/)

  • src/lib/pds.js: add symbolLineage(modules, fqn) wrapping the new export (follow the symbolScene wrapper).
  • src/lib/components/DataLineageCanvas.svelte (new): modeled on components/C4Flow.svelte (SvelteFlow + dagre, rankdir: "LR"). Renders the flow graph; side list shows usages (role + file:line, clickable → selectNode/goto).
  • src/lib/components/DiagramPane.svelte: route scene.type === "lineage" (or a lineageMode flag) to DataLineageCanvas.
  • src/lib/components/C4Flow.svelte: node popover gets a "Show data lineage" button, shown only when node.kind === "data", firing a new onlineage(fqn) prop.
  • src/routes/+page.svelte: add onlineage handler → set lineage state and switch the view (extend the view toggle / add a lineageMode fqn the canvas $derived branches on, calling symbolLineage(allModules, fqn)). Wire the editor hover / find-usages popover to offer lineage for data symbols too.

Rebuild wasm into the IDE: npm run build:wasm.

E2E verification

cd web-ide && npm run build:wasm && npm run dev → load the sample workspace → select AccountDataShow data lineage. Confirm: canvas shows AccountRecord → AccountData flow; usages list includes MainframeFacade.GetAccountData (return type + from-target) and the ViewAccounts/Summary return-type sites; clicking a usage navigates. Drive with the run skill / playwright MCP and screenshot.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    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