Skip to content

diff: ghost changed/removed edges + surface config-string dependencies #52

Description

@lex00

Context

The composite-tier diff (#49) classifies and paints nodes (added/removed/changed/same) and renders the union so removed nodes ghost. Two gaps remain on the edge / dependency side.

1. Edge diff status

unionGraph already carries removed edges, but the renderer doesn't style edges by diff status — a removed or added edge draws like any other line. Classify edges (added/removed/same by from→to[→viaAttr]) and paint them (removed = red dashed/ghost, added = green) the way nodes are.

2. Config-string dependencies aren't graph edges

A real dependency expressed only as a config string never becomes a ref, so it's invisible at every tier and in the diff. Concretely: FargateAlb({ environment: { DB_HOST: db.endpoint } }) produced no app→db edge — db.endpoint resolved to a value, not a tracked ref. So "the app now talks to the DB" doesn't surface.

Options to explore (likely needs chant-side support):

  • chant tracks AttrRefs even when embedded in string values / environment maps, emitting them as edges (with the consuming attr as viaAttr).
  • or pinhole heuristically scans attr values for resolved refs — fragile, probably wrong place.

This is a known limit of diagramming intent: logical links hidden in config strings aren't in the graph.

Related: #49, #3.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions