fix(robomp): deferred rate-limited submissions

Stored a bounded per-login overflow backlog and promoted deferred events oldest-first as rolling-window capacity became available. Surfaced the deferred state through the dashboard contract and documented admission behavior.

Fixes #5882
This commit is contained in:
roboomp
2026-07-17 17:26:39 +00:00
parent 0f9fceeea4
commit aecef46436
12 changed files with 297 additions and 32 deletions
@@ -13,6 +13,7 @@ function relativeAgo(ms: number): string {
const STATE_TONE: Record<string, string> = {
queued: "var(--color-info)",
deferred: "var(--color-ink-300)",
running: "var(--color-warn)",
done: "var(--color-ok)",
failed: "var(--color-err)",
@@ -25,7 +26,7 @@ export function Vitals(): JSX.Element {
// issue_event_counts ?? event_counts — preserves the Stats.tsx accessor + title.
const counts = (): Record<string, number> => {
const status = statusResource();
if (!status) return { queued: 0, running: 0, done: 0, failed: 0, skipped: 0 };
if (!status) return { queued: 0, deferred: 0, running: 0, done: 0, failed: 0, skipped: 0 };
return status.issue_event_counts ?? status.event_counts;
};