Skip to content

feat(charts): drag across a linked chart group to zoom its page to that span - #2571

Merged
Makisuo merged 1 commit into
mainfrom
feat/chart-drag-zoom
Nov 13, 2026
Merged

Makisuo merged 1 commit into
mainfrom
feat/chart-drag-zoom

feat(charts): drag across a linked chart group to zoom its page to th…

5ecabf8
Select commit
Loading
Failed to load commit list.
Maple Review Bot / Maple / review succeeded Nov 13, 2026 in 2m 54s

Confidence 9/10 · No issues found

🟢 Confidence 9/10 · safe to merge. The pixel→time→URL math is pinned and consistent across the four pages; only the DOM gesture (threshold, Escape, click swallow) has no test.
1 note · tests partial −1 · risk medium

Makes drag-to-zoom part of the linked cursor: a drag paints a band on the whole group and a push navigation opens that span. The pixel-to-time mapping and the URL patch agree, and all four pages push, so it is safe to merge.

  • MountLinkedZoom paints a band across a group's charts and reports the span on release
  • zoomSearchPatch turns the span into absolute URL bounds, preset cleared
  • Service detail, release detail, Overview and host detail opt in
  • The overlay splits its cursor line and zoom band into separate children

Findings

🔵 Note · F1 · [data-chart-overlay] matches nothing, so the marker guard never fires

correctness · packages/views/src/charts/linked-cursor.ts:34

No file in the repository sets data-chart-overlay, so this clause of PRESSABLE_SELECTOR can never match. A press that starts on a commit-marker dash (markers-view.ts:49, pointer-events-auto inside the chart) still begins a drag and paints a zoom band, which the PR says markers must not do.

Either add `h.DataAttribute("chart-overlay", "")` to the markers overlay root in `markers-view.ts`, or drop the dead `[data-chart-overlay]` clause.
What was checked
  • Time mapping agrees with the band: the [data-chart-plot] anchor rect and the chart's canvas px both start at the plot box (chart-mounts.ts:227)
  • All four navigations push: services/detail/update.ts:814 passes isReplace=false, the other three default to it
  • Both new URL fields land on routes that carry TimeRangeSearchFields (route/search.ts:57, :450, :460, :789)

5ecabf8 · Reply "won't fix" to dismiss a finding, or mention @maple-review-bot to ask about one.

Annotations

Check notice on line 34 in packages/views/src/charts/linked-cursor.ts

See this annotation in the file changed.

@maple-review-bot maple-review-bot / Maple / review

correctness: `[data-chart-overlay]` matches nothing, so the marker guard never fires

No file in the repository sets `data-chart-overlay`, so this clause of `PRESSABLE_SELECTOR` can never match. A press that starts on a commit-marker dash (`markers-view.ts:49`, `pointer-events-auto` inside the chart) still begins a drag and paints a zoom band, which the PR says markers must not do.