Skip to content

End-to-end polish: product boundary enforcement, full Overview dashboard, connector security#4

Merged
rpwalsh merged 4 commits into
mainfrom
copilot/style-update-volumetric-helix
May 6, 2026
Merged

End-to-end polish: product boundary enforcement, full Overview dashboard, connector security#4
rpwalsh merged 4 commits into
mainfrom
copilot/style-update-volumetric-helix

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented May 6, 2026

Instrumentation console was violating its own stated product boundary — prose language (recommendation, finding, insight, narrative, action item) appeared throughout Python packages, TSX components, and docstrings. Separately, the Overview page was minimal and the connector route exposed stack traces to clients.

Product boundary enforcement

  • packages/signals/engine.py — gutted and replaced with ThresholdCrossingEngine; Recommendation, generate_recommendations, RecommendationType, AnomalyFinding entirely removed
  • packages/signals/ranking.py — rewritten as rank_by_severity(events)
  • signal_event.py, evaluator.py, telemetry.py, predictive/README.md — docstrings purged of all forbidden terms
  • RecommendationTable.tsx — deleted
  • EventStream.tsx — comment fixed
  • Makefilelint-language target now excludes README.md (meta-reference) and packages/recommendations/ directory; was producing false positives

Overview dashboard (full rebuild)

Replaced single-column placeholder with a true 3-column instrumentation console:

Column Panels
Left System Overview (4-stat grid) · Telemetry Integrity (SVG donut + breakdown) · Source Health table · Provider Status table
Center 14-day Forecast Envelope (P10/P50/P90 band + observed + NOW marker) · Proofs & Validation strip · Spectral Agreement + Temporal Playback mini panels
Right Asset State (counts + per-type table) · Deviation Log · Audit Metadata + Verified stamp · System Time / Grid Scope / Market / Interval strip

NavBar redesigned as dual-row: live UTC clock, Grid Scope, Market, Interval, alert counts, user — all in the status strip above the tab bar.

All data served from new lib/overview.ts — deterministic seeded LCG, no Math.random().

Security

connectors.py was returning str(e) directly in API responses across all 5 connector error branches — full exception messages (including paths, config values) visible to any client. Replaced with type(e).__name__ in the response body; full trace logged server-side via logger.warning().

Other

  • GenerationForecast.tsx, AssetHealth.tsx — chart axis/tick colors corrected for dark theme
  • packages/adapters/open_meteo/tests/test_contract.pyasync def test without async plugin fixed to sync
  • docs/proofs-method.md — holdout validation method documented (train 2000–2024, blind forecast 2025, overlay actuals post-hoc)

@rpwalsh rpwalsh marked this pull request as ready for review May 6, 2026 03:43
@rpwalsh rpwalsh merged commit ea5997f into main May 6, 2026
1 check passed
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.

2 participants