Skip to content

workbench audit: the graph does not survive scale, and what every zoom gets wrong on a choudoufu or Terraform estate (#386) #393

Description

@lex00

The workbench (#386, PR #392) exists to put real estates in front of behold. This is what the first pass found, on five of them at every zoom: terralith-4 (301 resources, choudoufu, all bound), terralith-4-adopt (the same, unadopted: 84 bound by derived identity, 85 unowned, 132 neutral), choudoufu-workbench (four estates, 42 cards), waterpark (Terraform, 5 roots, 58 cards / 219 at attributes), choudoufu-cohort-iam-ecr (6). Measured with a headless-Chrome driver over the real SPA (the ⌘K palette picking each zoom), the raw /api/graph SVG, the inspect pane and all four panel tabs.

The headline: the graph does not survive scale

terralith-4's SVG is 144,010 × 316 — a 455:1 strip. Every choudoufu card sits on one dagre rank because the member emits no edges, so fit shows a one-pixel line and nothing is clickable. The 42-card workbench (9,564 × 520) and waterpark (15,833 × 1,164) are the same shape at smaller widths. This is the case the terralith was chosen to expose, and it fails at the first screen.

Per zoom

zoom what a person sees
components The boot default for every non-chant estate, and it lands on "the components lens doesn't apply to a composed estate yet". #182's fallback fires only on zero nodes, so the first screen of every choudoufu and Terraform estate is an apology.
composites / resources Identical pictures. On choudoufu estates the note promises "sourceRef/dependsOn … only appear at detail 3", then attributes says "nothing in this estate references anything else" — both wrong for a terralith full of role attachments. live-check states only cross-estate references, so intra-estate edges are missing entirely.
attributes waterpark jumps 58 → 219 cards and the root boxes become mostly empty space with the cards in a far corner (the baseline box: one card, bottom-right, the rest void). On choudoufu estates it changes nothing.
logical On choudoufu estates the same strip with the note dropped. On waterpark it drops the roots note, the one note that explained the picture.
runtime Offered on every choudoufu estate; always "nothing below the declaration boundary". A Kubernetes stop, offered where it never applies.

Wording and vocabulary that misleads

  • The overlay legend says managed / foreign / pending / unobserved. choudoufu's own words are bound / unowned / pending / neutral. On the unadopted terralith 84 cards read "managed" before any adoption (bound by derived identity), so a reader thinks a third of the estate is already theirs.
  • "estate of 1 projects" on every lone estate.
  • Every card repeats the member prefix in its title (terralith-4/aws_ecs_cluster.main inside the terralith-4 box), the type and the word choudoufu on line two, then rung: and estate: rows — three of five lines on 301 cards carry nothing the box does not already say.
  • The waterpark roots note is long and repeats verbatim at every zoom in a 260px panel, pushing the counts off the bottom.
  • The inspect pane's UNOWNED detail is a paragraph in monospace with the adopt tags below it as JSON. The one thing a person wants — the tag write to run — is not on it as a line to copy.

Bugs

  • Every choudoufu estate fires 500 /api/resources?env=live at boot (No lexicon detected — the panel asks chant for component resources on a kind chant cannot read).
  • waterpark draws an empty box named access at the top right: a member box for the served directory itself, with nothing in it, beside the five root boxes.
  • Wheel zoom on the graph did nothing in headless Chrome (may be a headless artifact; check by hand).

Missing

  1. Intra-estate edges for choudoufu members. The terraform lexicon (0.61, chant#2265) already resolves references in HCL; choudoufu's roster can be joined to it by address.
  2. A layout for edgeless graphs — wrap into a grid, or rank by type / module path, instead of one row. pinhole exposes rankdir; behold already sets nodesep/ranksep (src/render.ts).
  3. Grouping inside a choudoufu estate. The terralith has modules and count fan-outs; every card sits loose in one box.
  4. Search / jump-to-node. The palette has zoom, env, panel and deploy commands and nothing that takes an address.
  5. A collapsed or count view of a box, so 301 cards can read as 301 resources · 85 unowned until opened.

Definition of done

  • just example terralith-4 opens on a picture a person can read without zooming: resources zoom by default, cards wrapped, no box wider than roughly 4:1, boxes badged with counts, edges between the roles and their attachments.
  • No 500 in the console on any workbench entry; no empty member box on waterpark; runtime only offered when a member could have runtime children; the roots note survives the logical zoom and fits the panel.
  • The legend and the counts speak choudoufu's words on choudoufu members; a card inside a box says what the box does not; the UNOWNED inspect shows the adoption line to copy.
  • ⌘K takes an address and lands on the card.
  • The workbench e2e asserts the aspect ratio and the edge count on terralith-4, so the strip cannot come back unnoticed.

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

    bugSomething isn't workingchoudoufuthe choudoufu estate member lane (#366)enhancementNew feature or requestterraformthe plain-Terraform estate lane (#230's remainder)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions