Repository navigation
feat: add the live dashboard for services and pack-sentinel - #2
Merged
Merged
Conversation
This was referenced Oct 22, 2026
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.
Requested by mau
Before: the clients from #1 could poll everything, but
relay-dashitself still showed an empty frame.After:
relay-dashopens a live dashboard. The top half lists every impossibleG service with a ready / not ready / unreachable mark, the reason it is not ready, queue depth (highlighted when anything is waiting), active requests, and loaded models. The bottom half shows pack-sentinel's totals, which collectors are running, active incidents sorted by severity (with a "N not shown" note when they don't fit), and the latest signals. It polls everyintervalSeconds,rpolls now,qquits.--snapshotpolls once and prints one frame.Incident titles and signal text come from logs, so everything drawn from a watched system goes through
clean(), which strips escape sequences and control characters (SECURITY.md now says so).How:
usePollrunspollOncewithout overlapping a slow poll and aborts requests on unmount.DashboardViewis a pure view of one poll's results, which--snapshotand the view tests render directly. The frame is still the local stand-in; it moves to Relay Shell once that is published. Stacked on #1.