feat(skills): add rollout promotion contract and sync planning state
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
---
|
||||
phase: 03-live-ops-dashboard
|
||||
plan: 02
|
||||
subsystem: gateway-ui
|
||||
tags: [dashboard, ui, metrics, events, active-requests, monitoring]
|
||||
|
||||
# Dependency graph
|
||||
requires:
|
||||
- phase: 03-live-ops-dashboard
|
||||
provides: "MetricsCollector, system.metrics/system.events/system.activeRequests RPC handlers, and /health endpoint"
|
||||
provides:
|
||||
- "Live Ops dashboard UI sections for counters, model performance, event stream, active requests, and channels"
|
||||
- "Dual refresh cadence: fast (3s) metrics/events/requests and slow (10s) health/channels"
|
||||
- "Event stream styling and model metrics summary styling"
|
||||
affects: [operator-observability, milestone-closure]
|
||||
|
||||
# Tech tracking
|
||||
tech-stack:
|
||||
added: []
|
||||
patterns:
|
||||
- "Targeted section updates via stable DOM IDs"
|
||||
- "Split polling cadence for high-churn vs low-churn data"
|
||||
|
||||
key-files:
|
||||
created: []
|
||||
modified:
|
||||
- src/gateway/ui/pages/dashboard.js
|
||||
- src/gateway/ui/style.css
|
||||
|
||||
key-decisions:
|
||||
- "Keep vanilla JS page module pattern (render/teardown), no framework migration"
|
||||
- "Use two polling timers (3s and 10s) to reduce unnecessary RPC load"
|
||||
- "Render newest events at the bottom with auto-scroll for log readability"
|
||||
|
||||
patterns-established:
|
||||
- "Dashboard section IDs as update boundaries: ops-counters, ops-model-table, ops-events, ops-requests, ops-channels"
|
||||
|
||||
# Metrics
|
||||
duration: unknown (implementation commit predates this summary backfill)
|
||||
completed: 2026-02-13
|
||||
---
|
||||
|
||||
# Phase 3 Plan 2: Live Ops Dashboard UI Summary
|
||||
|
||||
**Extended the existing dashboard with live counters, model performance telemetry, event stream, and active request visibility, backed by Phase 3 Plan 1 RPC endpoints.**
|
||||
|
||||
## Performance
|
||||
|
||||
- **Summary date:** 2026-02-13
|
||||
- **Tasks:** 2/2 (implementation + closure/verification)
|
||||
- **Files modified:** 2
|
||||
|
||||
## Accomplishments
|
||||
- Implemented dashboard sections for core counters, model metrics table, event stream, active requests, and channels
|
||||
- Wired RPC calls to `system.metrics`, `system.events`, `system.activeRequests`, `system.health`, and `system.channels`
|
||||
- Added 3-second fast refresh for dynamic ops data and 10-second slow refresh for health/channel state
|
||||
- Added event stream and model summary styling in shared gateway UI stylesheet
|
||||
|
||||
## Task Commits
|
||||
|
||||
Implementation was already present in commit history and is now formally closed with planning artifacts:
|
||||
|
||||
1. **Task 1: Extend dashboard page with live ops sections** - `c3ca3f3` (feat)
|
||||
2. **Follow-up style cleanup** - `6090508` (style)
|
||||
|
||||
## Files Created/Modified
|
||||
- `src/gateway/ui/pages/dashboard.js` - Live ops dashboard structure, polling, and targeted section updates
|
||||
- `src/gateway/ui/style.css` - Event stream and model metrics summary styles
|
||||
|
||||
## Verification
|
||||
|
||||
Automated checks run during this closure:
|
||||
|
||||
- `pnpm typecheck` ✅
|
||||
- `pnpm build` ✅
|
||||
- `pnpm test:run` ✅ (1590/1590 passed)
|
||||
|
||||
Manual browser verification (visual sanity check) remains recommended as a final operator check.
|
||||
|
||||
## Deviations from Plan
|
||||
|
||||
No functional deviations. This summary was backfilled after implementation had already landed.
|
||||
|
||||
## Issues Encountered
|
||||
None
|
||||
|
||||
## User Setup Required
|
||||
None
|
||||
|
||||
## Next Phase Readiness
|
||||
- Phase 3 is complete from an implementation and automated validation perspective
|
||||
- Milestone artifacts are now synchronized (`STATE.md`, `ROADMAP.md`, `REQUIREMENTS.md`)
|
||||
|
||||
---
|
||||
*Phase: 03-live-ops-dashboard*
|
||||
*Completed: 2026-02-13*
|
||||
Reference in New Issue
Block a user