Skip to content

Add folder chart command with interactive line chart - #280

Open
stalep wants to merge 1 commit into
Hyperfoil:mainfrom
stalep:cli-charts
Open

stalep wants to merge 1 commit into
Hyperfoil:mainfrom
stalep:cli-charts

Conversation

@stalep

@stalep stalep commented Aug 21, 2026

Copy link
Copy Markdown
Member

Features:

  • Line chart of range node values plotted over domain node values
  • Multi-fingerprint overlay (up to 3 series) with interactive selection
  • Change detection markers: FixedThreshold, RelativeDifference, StdDevAnomaly, EDivisive with type-specific symbols and colors
  • HorizontalLine for FixedThreshold min/max bounds
  • Auto-detect terminal size for chart dimensions
  • Braille rendering by default (unicode/ascii via --style flag)
  • Alternate screen buffer for clean full-screen display
  • Interactive viewport scrolling: arrow keys or h/l to scroll, Home/End to jump, q to quit
  • Fingerprint selection menu when multiple fingerprints exist
  • Fixed Y-axis range during scrolling for consistent visual comparison
  • Centered title showing range node name and folder

Data retrieval:

  • New ValueService.getChartData() method using separate recursive ancestor CTEs per node, joined in Java by root_id (~480ms vs 22s with the full getGroupedValues CTE)
  • DISTINCT ON (root_id) deduplication to handle DAG fan-out through shared edges
  • Sequential index X-axis (domain values may be non-numeric)

@stalep
stalep force-pushed the cli-charts branch 2 times, most recently from f10eef3 to b532105 Compare September 15, 2026 10:12
@stalep
stalep marked this pull request as ready for review September 15, 2026 10:12
@stalep
stalep marked this pull request as draft September 17, 2026 13:37
Adds a 'chart' command that renders node values as an interactive line
chart inside the terminal. Features:

- Multi-fingerprint overlay (up to 3) with 'f' key switcher
- Optional --domain for x-axis ordering (upload order by default)
- X tick labels from root payload (timing.start / BUILD_ID / sequence)
- Change detection markers pinned to the series line, filtered to
  same-metric detections only, toggled with 'c' key
- Marker legend and label decluttering via aesh-charts native support
- Tab completion restricted to plottable (numeric) nodes
- REST endpoint GET /folder/{id}/alignedValues
- Notice when no detections target the charted metric
- Quarkus bumped to 3.39.5, aesh-charts to 3.18.2
- NotificationTest adapted for String... varargs H5mTest.run API
@stalep
stalep marked this pull request as ready for review September 24, 2026 14:55
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