DunneFlow · The dashboard
Table and Code
Every routine as a sortable row with what its author said about it, and the source exactly as it was measured, with resolved calls as links.
Table#
Table view lists every routine as a row. The graph answers what is connected to what; the table answers what is here, and what did its author say about it. Reach for it when you want to read rather than explore.
| Column | Contents |
|---|---|
| ROUTINE | The qualified name. |
| WHY | The comment or docstring attached to it: the part the code cannot tell you. |
| CONNECTIONS | How many routines call it and how many it calls, shown as 3← 7→. |
| CHANGED | What the comparison found about it, or —. |
An empty WHY cell is the honest answer, not a gap. CONNECTIONS is the column to sort by when you want the spine of a program you have never read.
Every row is an ordinary selection: clicking one selects it in every other view and fills the inspector.
Finding yourself. A large table is thousands of rows tall, so a banner states where your
selection is, for example SHOWING cli.cmd_serve — row 51 of 910, with a Go to it
button. The rank comes from the same sorted list the table draws.
Sorting and widths. Click a heading to sort; click again to reverse. Drag an edge to resize. Sorting by CHANGED puts what changed at the top on the first click. Widths scale with the interface scale slider.
Row density. Compact, Comfortable (default) or Spacious: compact for scanning names, spacious for reading long WHY text.
When comparing, each row is marked as added, deleted, behaving differently, or edited only. See Comparing two versions.
Code#
Code view shows the source as it was measured.
Where the text comes from. The footer says so, for example Read from the content-addressed sidecar — the file as measured at …, not as the tree stands now. DunneFlow keeps the bytes it read, by content hash. That is what lets you open a sealed snapshot months later, on a machine that never held the tree. Editing the file on disk does not change this pane, because everything else on the screen describes the old bytes.
Links are lookups, not guesses. An underlined name is a link to the routine the resolver actually resolved it to, taken from the graph, not a text match. Click it to select that routine everywhere. Where the same expression occurs more than once on a line, the link goes in the margin instead: DunneFlow records that a call happened on a line, not where on the line, and will not invent a position.
The margin carries what a line does that the line does not say: which import it resolves through, which boundary it touches. The header counts the marks, and ▾ margin folds the column away. detach opens the file in its own window, useful when you are reading code and driving the graph at the same time.
Searching the text. The Code group in the navigator has its own search box, which searches the text of the source: a word inside a comment, a string literal, or anywhere else. It answers files first, each with a count, and fetches one file's matching lines when you open it. Each hit says which routine and class it sits in.
When comparing, the line difference is drawn over the source, and above it a list says which routines behave differently and in what respect (what they call, what they touch, what they take or return). Lines from the other version are shown where they belong with their own numbers; you are reading one version with the other drawn over it. The overlay has its own switch, because heavily marked code is harder to read.
Something unclear or out of date? Tell us.