UI overhaul Phase 4a: adopt primitives, drop duplicate Signal Monitor title - #174
Merged
Conversation
… title Self-contained primitive-adoption + declutter, no monolith surgery: - DiagnosticLog: static accent dot -> LedIndicator(status="active"), a live pulsing readout fitting the "System Diagnostics" affordance. - WaveformPlayer: remove the internal "Signal Monitor" header row. The parent DeviceRack (App.tsx) already titles the panel and carries a status LED, so the inline title + Activity icon were a duplicate. The readiness strip (ONLINE/SYNCING) and 600ms load-flash are preserved. - Phase2ConsistencyReport: raw <table> -> ui/DataTable, unifying the violations table onto the shared table primitive. Severity colour preserved via a render fn; truncation and dev-audience filtering unchanged. Verify: tsc clean; 830/830 unit tests pass (incl. phase2ConsistencyReport + diagnosticLogUi pinning suites); vite build OK. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016to3B8Hf9eAGxAbzpQNvku
slittycode
added a commit
that referenced
this pull request
Jun 21, 2026
Past-tense paper trail for the apps/ui design-system overhaul (PRs #165-#174): typography unified on the --text-* scale, a single ui/ primitive layer with the duplicate MeasurementPrimitives set deleted, accessibility lifted to WCAG AA, and a style-discipline CI guard. Records the two planned phases deliberately dropped as diff-churn (chip declutter, token scales) and the deferred monolith restyle/split. Adds the matching Contents entry to docs/history/README.md. Claude-Session: https://claude.ai/code/session_016to3B8Hf9eAGxAbzpQNvku Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Phase 4a — primitive adoption + declutter (no monolith surgery)
First slice of Phase 4 (information hierarchy). These are the self-contained, low-risk items that adopt the shared primitive layer and remove a genuine duplicate, with no edits to the
AnalysisResults/Appmonoliths.Changes
LedIndicator status="active". Adopts the primitive and gives the panel a live, subtly-pulsing readout instead of a dead dot. Test-safe — it addsled-indicator--active, not theanimate-pulseclass the skipped-entry test guards.Activityicon). The parentDeviceRackinApp.tsx(name="Signal Monitor", with its own status LED) already titles the panel, so this was a duplicate title. The readiness strip (ONLINE/SYNCING) and the 600 mshasJustLoadedload-flash are preserved;Activityimport dropped as now-unused.<table>→ theui/DataTableprimitive, unifying the violations table onto the shared table chrome (header/border/striping). Severity colour preserved via arenderfn; the 120-char detail truncation and dev-audience violation filtering are unchanged.Why this is safe
error-statessmoke usessignalPanel.getByText('Signal Monitor').first(), which still resolves to theDeviceRacktitle (match count drops 2→1).phase2ConsistencyReportanddiagnosticLogUipinning suites assert on rendered output (<table,text-warning, severity labels, truncation, header counts) — all preserved.Verification
tsc --noEmitcleanvite buildOK🤖 Generated with Claude Code
https://claude.ai/code/session_016to3B8Hf9eAGxAbzpQNvku
Generated by Claude Code