tabs.js: drop scheduled-prompts cookies (#712 batch 9)

#459 (dashboard tab + creation form for scheduled prompts —
closed) ×2 (section header + tab-activation re-fetch comment) +
#444 (make it possible to schedule prompts — closed) ×1 (Backend
endpoint enumeration preamble) + #535 (schedules-as-table —
closed) ×1 (renderSchedulesList layout rationale). The
section-header comment now reads as a pure mile-marker; the
backend-endpoints preamble enumerates what the API surface is
today; the table-layout comment describes the rendered shape.
No docs/web-ui.md matches for any of #444 / #459 / #535.
This commit is contained in:
iris 2026-05-31 14:12:44 +02:00
commit c527f739ec

View file

@ -2093,8 +2093,8 @@ window.marked = marked;
return Math.floor(secs / 86400) + 'd ' + Math.floor((secs % 86400) / 3600) + 'h'; return Math.floor(secs / 86400) + 'd ' + Math.floor((secs % 86400) / 3600) + 'h';
} }
// ─── scheduled prompts (#459) ────────────────────────────────────────── // ─── scheduled prompts ─────────────────────────────────────────────────
// Backend (#444) exposes `/api/schedules` (snapshot), `/api/schedules` // Backend exposes `/api/schedules` (snapshot), `/api/schedules`
// (POST, operator-direct submit), `/api/schedules/{id}/cancel` // (POST, operator-direct submit), `/api/schedules/{id}/cancel`
// (whole or per-target). No SSE channel for schedule mutations yet, // (whole or per-target). No SSE channel for schedule mutations yet,
// so we refresh on tab activation + after every submit/cancel POST. // so we refresh on tab activation + after every submit/cancel POST.
@ -2353,7 +2353,7 @@ window.marked = marked;
return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}` return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}`
+ `T${pad(date.getHours())}:${pad(date.getMinutes())}`; + `T${pad(date.getHours())}:${pad(date.getMinutes())}`;
} }
// #535: schedules render as a single table — one row per schedule, // Schedules render as a single table — one row per schedule,
// attribute columns + one ✓/✕ column per agent (tilted 45° header // attribute columns + one ✓/✕ column per agent (tilted 45° header
// so a row of agents takes ~28px each instead of full word width), // so a row of agents takes ~28px each instead of full word width),
// actions column on the right. Edit form expands into a colspan'd // actions column on the right. Edit form expands into a colspan'd
@ -3254,8 +3254,8 @@ window.marked = marked;
// on hashchange without waiting for the next SSE update. // on hashchange without waiting for the next SSE update.
document.body.dataset.activeTab = target; document.body.dataset.activeTab = target;
renderSelectionBar(Array.from(containersState.values())); renderSelectionBar(Array.from(containersState.values()));
// #459: schedules pane has no SSE channel yet (PR C follow-up), so // Schedules pane has no SSE channel for mutations, so re-fetch
// re-fetch on activation so the operator never lands on stale data. // on activation so the operator never lands on stale data.
if (target === 'schedules') refreshSchedules(); if (target === 'schedules') refreshSchedules();
} }
function syncTabFromHash() { function syncTabFromHash() {