Skip to content

Add folder chart command with interactive line chart - #280

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

Add folder chart command with interactive line chart#280
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)

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)
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