bash-tasks page: live interval poll + spawn_blocking the dir scan (review)
Two fixes from review: - Liveness: /api/state isn't polled while online (only during login), so hooking refreshBashTasks to it only populated on cold load. Bash tasks start + finish asynchronously between turns, so add a light ~4s interval to keep the tasks pill live; the /api/state-time call now just does the first-paint populate. Doc note corrected to match. - Move the blocking dir scan + per-file reads in /api/bash-tasks off the async executor via tokio::task::spawn_blocking (damocles nit).
This commit is contained in:
parent
bf98aa69aa
commit
cd7846b348
3 changed files with 37 additions and 19 deletions
|
|
@ -1354,9 +1354,11 @@ window.marked = marked;
|
|||
// db, fetched via the per-agent socket). Cold-load fetches
|
||||
// it here; turn_end refreshes it via the renderer below.
|
||||
refreshLooseEnds();
|
||||
// Running bash tasks live in the in-container bash-tasks dir (not
|
||||
// /api/state); same poll cadence as loose-ends. They complete async
|
||||
// between turns, so polling on each state cycle keeps the count live.
|
||||
// Cold-load populate of the running-bash-tasks pill. Tasks complete
|
||||
// asynchronously between turns (independent of turn_end SSE) and
|
||||
// /api/state isn't polled while online, so a dedicated interval (set
|
||||
// up next to the initial refreshState() below) keeps the count live;
|
||||
// this call just fills it immediately on first paint.
|
||||
refreshBashTasks();
|
||||
// Skip the re-render if nothing structurally changed. The most
|
||||
// common case is `online` polling itself — without this guard, the
|
||||
|
|
@ -1387,6 +1389,12 @@ window.marked = marked;
|
|||
}
|
||||
}
|
||||
refreshState();
|
||||
// Keep the running-bash-tasks pill live. Unlike loose-ends (refreshed on
|
||||
// turn_end SSE), bash tasks start + finish asynchronously between turns and
|
||||
// /api/state isn't polled while online — so poll the cheap snapshot endpoint
|
||||
// on a light interval. Fails silently (renders zero) when offline. v1 is
|
||||
// polling; an SSE push for task state could replace this later.
|
||||
setInterval(refreshBashTasks, 4000);
|
||||
|
||||
// ─── live event stream ──────────────────────────────────────────────────
|
||||
// Scrolling, pill, backfill + SSE plumbing live in hive-fr0nt::TERMINAL_JS
|
||||
|
|
|
|||
Loading…
Reference in a new issue