feat(server): add Fleet dashboard surface with mock data (#547) - #644
Open
EnmaJim wants to merge 1 commit into
Open
feat(server): add Fleet dashboard surface with mock data (#547)#644EnmaJim wants to merge 1 commit into
EnmaJim wants to merge 1 commit into
Conversation
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.
Linked issue
Closes #547
Summary of changes
First pass of the Fleet dashboard in the Mothership (
src/server-dotnet), built againstmock JSON fixtures so the UI is reviewable now. Component structure and API call
signatures are finalized here so the live wire-up (#598) is a straight mock→real swap.
Per the #551 coordination, this issue's tab-restructure step is dropped (the v4 shell/rail
shipped in #624); #547 adds the Fleet surface as content that slots into the existing rail.
/) — the Q&A dashboard is re-homed to/decisions(theDecisions rail slot); a Fleet rail item is added and the active item is driven by
ViewData["ActiveRail"].utilization (load/max, success rate, avg duration) for drone nodes.
alert history panel for cleared alerts with resolved timestamps.
IFleetServicewith aMockFleetServicereadingMock/fleet-instances.json/fleet-alerts.json; endpointsGET /api/fleet/instancesandGET /api/fleet/alerts?status=. Fleet dashboard live wire-up — instance data, alerts and auth #598 swaps only the service impl (config-selected, mirroringthe existing attachment-storage backend swap).
DashboardAuthMiddlewareextended to gate/decisionsand/api/fleet/*exactlylike the existing dashboard routes.
Screenshots / recordings
Fleet dashboard — the new landing page (
/), mock data: alert banner, fleet stats, instancehealth cards (outposts + drones), drone utilization, stale badges, alert rail, and alert history.
Q&A dashboard re-homed to
/decisions(Decisions rail item now active; Fleet took the root):Testing notes
server.ymlgate):Unit/MockFleetServiceTests.cs— fixture parsing, drone-vs-outpost utilization, active/clearedalert filtering, fail-fast on a missing fixture.
Integration/FleetApiTests.cs—GET /api/fleet/*end-to-end through the auth pipeline +real fixtures.
Integration/FleetPageTests.cs—/renders Fleet,/decisionsrenders the Q&A dashboard,rail active-state correct.
Checklist