Drop the causal trace's arrowheads, keep one only on the stub - #799
Merged
Merged
Conversation
A marker's size scales with the edge's own stroke width, so the heaviest hop drew a head at 4.5 * 2.1 = 9.5px, wider than the 5-7px mark it pointed at: fattest exactly where edges crowd hardest, undoing the thinning that lets the near story read before the far one. The time axis already states direction, since a cause is always earlier than its effect, so the head was answering a question nothing needed answered. Hue now carries the whole split the head used to gesture at, "why did this happen" against "what did it set off", in both the edges and the tooltip card's rows. The stub keeps its head: it hangs into empty space with no second mark to orient against, so without one it would read as an error bar rather than a pointer at an off-window cause. Also, in the same pass: - edgePath no longer stops short of the target mark to leave room for a head. Paths now run centre to centre and tuck under the marks, which the edge layer's paint order already allows for free. - the pinned tooltip card is the one card a reader can scroll into now; pointer-events toggles off for the hovering and released states so a following or hidden card never swallows pointer events over the chart. - the preview fixture moves from picking random stream/event pairs to a scripted "one shift at 2-BM" narrative, timed against the same snapshot numbers the tables already show, so a causal chain reads as a real sequence rather than nonsense (a run completing before it started, a mount dismounted that was never mounted) when eyeballing this change. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
xmap
enabled auto-merge
September 11, 2026 18:19
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 marker's size scales with the edge's own stroke width, so the heaviest hop
drew a head at 4.5 * 2.1 = 9.5px, wider than the 5-7px mark it pointed at:
fattest exactly where edges crowd hardest, undoing the thinning that lets the
near story read before the far one. The time axis already states direction,
since a cause is always earlier than its effect, so the head was answering a
question nothing needed answered.
Hue now carries the whole split the head used to gesture at, "why did this
happen" against "what did it set off", in both the edges and the tooltip
card's rows. The stub keeps its head: it hangs into empty space with no
second mark to orient against, so without one it would read as an error bar
rather than a pointer at an off-window cause.
Also, in the same pass:
head. Paths now run centre to centre and tuck under the marks, which the
edge layer's paint order already allows for free.
pointer-events toggles off for the hovering and released states so a
following or hidden card never swallows pointer events over the chart.
scripted "one shift at 2-BM" narrative, timed against the same snapshot
numbers the tables already show, so a causal chain reads as a real
sequence rather than nonsense when eyeballing this change.
No build step, lint, or test runner covers this directory (see the harness
comment); verified by serving
infra/status-relay/design/page-preview.htmllocally and eyeballing the scripted shift.
🤖 Generated with Claude Code