Three checks in workspace-activity.spec.mjs waited on wall-clock timers:
- "lost server": waitForTimeout(2500), then at most 2 list reads. The read
after the one that found the restart must be the periodic poll, so the
test now waits for it and asserts the gap is at least POLL_MS (less
100 ms for late request reporting). Any extra read lands in that gap.
- "200-row cap note" (review M12): waitForTimeout(1500), then no detail
read. The page's timers are now Playwright's clock. The test runs one
read-throttle interval out, so any read the counter update scheduled is
sent before the log opens. Once the log's read has answered, exactly one
read must be listed.
- "busy start" (review M14): waitForTimeout(7000), then the link toast is
still visible. The test now runs the page's clock 7 s on, which fires a
6.5 s clear however slowly the runner got there.
RED, each against a temporary product change: POLL_MS 3000 (gap 3004 ms,
expected at least 14900), detail re-read on new log lines while the log is
closed (an unexpected read), LINK_TOAST_MS 6500 (toast link gone), and
BACKOFF_FIRST_MS 200 for the earlier backoff check (gap 407 ms, expected at
least 1900).