feat(host,web): the task list is followed on the live layer rather than read again

Merged
CH
9d ago
+575-144

Stack 2 · Task list and automations, piece 3. Stacked on #3269 (luke/neon-realtime-plan-list-service).

What: the host follows live.tasks from the first refresh until a sign-out, through live-follow's liveRows, as every followed read is.

  • With Realtime off, this is the held poll. With it on, it's a subscription.
  • It rebuilds the list whenever the rows move, and again at statusClockEdge, the next instant the clock alone moves an agent's status.
  • A read refused as another account's session ends the follow.

Removed: the hand-rolled list reads. No refresh, start, delete or workspace leave reads /api/plans any more, and the name re-read after a call is gone too.

Tests:

  • compose-tasks covers the list drawn from live rows, an agent with no turn turning failed at its starting grace, and a line's grace, all with nothing read.
  • Existing list tests now deliver live rows.
  • The web-app tests' fake service answers live.tasks polled.