Skip to content

Drop the causal trace's arrowheads, keep one only on the stub - #799

Merged
xmap merged 1 commit into
mainfrom
fix/status-relay-drop-causal-arrowheads
Sep 11, 2026
Merged

xmap merged 1 commit into
mainfrom
fix/status-relay-drop-causal-arrowheads

Conversation

@xmap

@xmap xmap commented Sep 11, 2026

Copy link
Copy Markdown
Owner

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 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.html
locally and eyeballing the scripted shift.

🤖 Generated with Claude Code

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
xmap enabled auto-merge September 11, 2026 18:19
@github-actions

Copy link
Copy Markdown

Coverage report

This PR does not seem to contain any modification to coverable code.

@xmap
xmap merged commit fbe3a77 into main Sep 11, 2026
17 checks passed
@xmap
xmap deleted the fix/status-relay-drop-causal-arrowheads branch September 11, 2026 18:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant