Skip to content

Lineage: View::Lineage + Scene::Lineage (emit) #3

@JonathanTurnock

Description

@JonathanTurnock

Part of #1 — data lineage canvas. Depends on the model analysis.

Goal

Add a lineage view/scene to crates/pseudoscript-emit.

  • View::Lineage { of: String } in project.rs:19; arm in project_view (project.rs:143) → Scene::Lineage(project_lineage(graph, &of)) reading graph.lineage(of).
  • Scene::Lineage(LineageScene) in scene.rs:18. LineageScene carries a directed flow graph in the same node/edge shape C4Scene uses (so the Svelte canvas reuses dagre, laid out rankdir=LR: upstream left → target → downstream right) plus the usages list for a side panel. Node kind: "data", edge kind: "lineage".
  • project_symbol (project.rs:100) stays C4/sequence — lineage is opened explicitly, not the default symbol view.
  • Add a to_golden arm for Scene::Lineage (scene.rs:241) for parity (generation conformance goldens deferred).

Tests

project(&graph, View::Lineage { of }) returns Scene::Lineage with the expected nodes/edges. cargo test -p pseudoscript-emit.

Rust authoring: use the idiomatic-rust skill.

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