You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Feature: MF4 Signals viz P1 — multi-signal overlay on a shared time axis
Stage-2 P1 of the flexible MF4 visualization (design: docs/MF4_VISUALIZATION.md).
New "Signals" bottom-panel tab: left = searchable checkbox list of numeric
channels (via trendDiscoverFields); right = an overlay time-series of the checked
signals on a shared x axis, with per-signal colors, a legend, a hover readout,
normalize toggle (0–1 per signal vs shared real-Y), and click-a-point → jump to
that record's line.
Backend: extractSignalSeries() in trendEngine.ts reads the file ONCE and returns
all selected signals aligned on the master `t` (falling back to record index when
absent), index-bucketed and min/max/avg downsampled to ~maxPoints — so a
multi-million-record MF4 stays smooth (peak memory O(maxPoints × signals), not
O(records)). New TREND_SIGNAL_SERIES IPC wired through shared/types, preload,
main handler, and the renderer Api type.
Tests: 3 for extractSignalSeries (t-alignment, downsample min/max preservation,
index fallback). 317 pass, build + typecheck green.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: src/renderer/index.html
+20Lines changed: 20 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -387,6 +387,7 @@ <h2>LOGAN</h2>
387
387
<buttonclass="bottom-tab-btn" data-bottom-tab="analysis" data-help="Log level distribution, crash detection, component breakdown, and timestamp analysis. Click Run Analysis to scan the entire file.">Analysis</button>
388
388
<buttonclass="bottom-tab-btn" data-bottom-tab="investigate" data-help="Guided root-cause finding. Pick a symptom (it crashed, it froze, it's slow…) and LOGAN runs a recipe that searches, checks time gaps, and trends fields — then pins clickable findings. No expertise needed.">Investigate</button>
389
389
<buttonclass="bottom-tab-btn" data-bottom-tab="trends" data-help="Trend any field over time. Click Discover to auto-find log variables (key=value, JSON), then chart a field as value-over-time, value flips, or correlation. Click a chart point to jump to that line.">Trends</button>
390
+
<buttonclass="bottom-tab-btn" data-bottom-tab="signals" data-help="Overlay multiple numeric signals (e.g. MF4 channels) on one shared time axis. Check signals on the left to plot them; click a point to jump to that record.">Signals</button>
390
391
<buttonclass="bottom-tab-btn" data-bottom-tab="time-gaps" data-help="Find gaps in log timestamps where no events were recorded. Useful for detecting hangs, freezes, or missing data periods.">Time Gaps</button>
391
392
<buttonclass="bottom-tab-btn" data-bottom-tab="search-results" data-help="Results from Ctrl+F search. Click a result to jump to that line. Supports regex, wildcard, case-sensitive, and whole-word modes.">Search Results</button>
392
393
<buttonclass="bottom-tab-btn" data-bottom-tab="search-configs" data-help="Save and reuse complex search patterns across files. Each config stores pattern, regex/case/word flags, and a label.">Search Configs</button>
@@ -456,6 +457,25 @@ <h2>LOGAN</h2>
456
457
<pclass="placeholder">Click <strong>Discover Fields</strong> to scan the log for variables, then add a cell to chart one over time.</p>
<labelclass="signals-toggle" title="Scale every signal to 0–1 so different ranges compare by shape"><inputtype="checkbox" id="signals-normalize" checked> Normalize</label>
0 commit comments