feat(I3): always-on pipeline status indicator in the top nav
New /api/system/activity/summary aggregates scheduler health + per-queue pending depths + running count + 24h failure count in one cached call (safe to poll app-wide). PipelineStatusChip lives in the TopNav on every page: a compact running/queued/failing chip with a scheduler-health dot that expands to a popover (scheduler, busy queues, counts, link to downloads). Polls the summary every 8s, paused when backgrounded. Reuses the queue-cache read via _queues_cached(). + API test for the summary shape. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -93,11 +93,23 @@ export const useSystemActivityStore = defineStore('systemActivity', () => {
|
||||
runsFilter.value = { ...runsFilter.value, ...filter }
|
||||
}
|
||||
|
||||
// One-call rollup for the always-on TopNav pipeline indicator:
|
||||
// { scheduler, queues, queued_total, running, failing }.
|
||||
const summary = ref(null)
|
||||
async function loadSummary() {
|
||||
try {
|
||||
summary.value = await api.get('/api/system/activity/summary')
|
||||
} catch (e) {
|
||||
lastError.value = e.message
|
||||
}
|
||||
return summary.value
|
||||
}
|
||||
|
||||
return {
|
||||
queues, workers, recentMinute, failures,
|
||||
queues, workers, recentMinute, failures, summary,
|
||||
runs, runsCursor, runsHasMore, runsFilter,
|
||||
loading, lastError,
|
||||
loadQueues, loadWorkers, loadRecentMinute,
|
||||
loadRuns, loadFailures, setFilter,
|
||||
loadRuns, loadFailures, loadSummary, setFilter,
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user