feat: write on a connection what it carries - #40
Merged
endrix merged 1 commit intoSep 4, 2026
Merged
Conversation
endrix
force-pushed
the
feat/producer-declared-render-hooks
branch
from
September 3, 2026 18:50
b5b61b2 to
7e9d234
Compare
A dataflow diagram's edges are not interchangeable. One may carry a 32-bit value and the next a single bit; one may be a token-carrying channel and its neighbour a plain signal. Drawn identically, the only way to tell them apart is to click each one and read the property panel — which is fine for checking a suspicion and useless for forming one. `meta.label` is text the producer formatted, `meta.width` a bit count, and they describe the same thing at different resolutions. Both reach the model, because both are true and a property panel may want either; the view draws exactly one, preferring the label. Two captions on one line would add no information. Formatted by the producer and shown verbatim, for the same reason a port's type is: the platform re-deriving it from anything structural would drift from how the language actually writes it, and differ between products. Drawn above the line, and higher again when a badge is already there, since the queue depth and the open button occupy the midpoint and a caption landing on one makes both unreadable. The halo is `paint-order` rather than a filled pill: every edge that states a width gets one of these, so a pill would end up weighing as much as the edges do, whereas a halo costs nothing over empty space and only shows up where the text would otherwise be illegible against a line or a box. Inert for a producer that states neither.
endrix
force-pushed
the
claude/edge-carried-labels
branch
from
September 3, 2026 18:51
385cce4 to
0d513b9
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A dataflow diagram's edges are not interchangeable. One may carry far more than the next, or something of an entirely different kind. Drawn identically, the only way to tell them apart is to click each one and read the property panel — fine for checking a suspicion, useless for forming one.
What is drawn
meta.labelis text the producer formatted;meta.widthis a number in whatever unit the producer counts in. They describe the same thing at different resolutions.Both reach the model, because both are true and a property panel may want either. The view draws exactly one, preferring the label — two captions on one line would add no information. That split is deliberate: what is true belongs on the model, what to show is a question for the view.
Text is shown verbatim, for the same reason a port's type is. The platform re-deriving it from anything structural would drift from how the producer's own language writes it, and differ between products.
Placement
Above the line, and higher again when a badge is present. The queue-size badge and the open button already occupy the midpoint, and a caption landing on one makes both unreadable.
The halo is
paint-order: stroke fillrather than a filled pill. Every edge stating a width gets one of these, so a pill would end up weighing as much as the edges themselves; a halo costs nothing where the text crosses empty space and only appears where it would otherwise be illegible against a line or a box.Compatibility
Inert for a producer that states neither key. Full platform suite passes, 4/4 neutrality gates, build succeeds. Five new tests.