Skip to content

fix(dashboard): drop -1 not-measured sentinels from perf trends#138

Merged
mvalancy merged 1 commit into
devfrom
fix/dashboard-drop-sentinel-metrics
Jun 19, 2026
Merged

fix(dashboard): drop -1 not-measured sentinels from perf trends#138
mvalancy merged 1 commit into
devfrom
fix/dashboard-drop-sentinel-metrics

Conversation

@mvalancy

Copy link
Copy Markdown
Member

What

scaleSweepMetrics was charting the scale-sweep harness's -1 "not measured" sentinels (e.g. fps/avgTickMs/driftPx on large ULTRA graphs that skip those measurements) as real trend points, since -1 is finite. This corrupted the dashboard's perf trend lines (driftPx, idleFps, avgTickMs series showed spurious -1/0 dips).

Fix

Treat negative scale-sweep values as not-measured → emit null → excluded from trends. All these metrics (fps/ms/px/count) are legitimately non-negative, so the guard is safe.

Test

Added a unit test asserting -1 sentinels are dropped while real values (loadMs, settleMs=0) pass through. node --test tests/lib/dashboard/dashboard.test.mjs → 33/33 green.

Dashboard-only data-quality change; no data/graph/deletion paths touched.

🤖 Generated with Claude Code

The scale-sweep harness writes -1 for any measurement it could not take
(e.g. fps/avgTickMs/driftPx on large ULTRA graphs). Those sentinels were
finite, so scaleSweepMetrics charted them as real data points, polluting
the trend lines. Treat negative scale-sweep values as not-measured.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mvalancy mvalancy merged commit ef78c47 into dev Jun 19, 2026
10 of 11 checks passed
@mvalancy mvalancy deleted the fix/dashboard-drop-sentinel-metrics branch June 19, 2026 11:16
@github-actions

Copy link
Copy Markdown

🧪 Comprehensive Test Suite

  • Unit suites (Node 18.x & 20.x) — core, web, server, mcp-server: ✅ passed
  • Installer & deploy config: ✅ passed

Full-stack smoke gate runs in the CI workflow.

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