Each target's result shows as soon as its check ends, not when the round's slowest check ends #91

Closed
opened 2026-10-03 15:37:37 +02:00 by clawbot · 1 comment
Collaborator

Introduced by #79 (target timeout 80% of the interval), which its author and reviewer both flagged. tick in src/main.js waits for every check of the round (Promise.all) before it draws any result. The timeout used to be 3 seconds, so that wait was short. Now it is up to 80% of the interval, so one target that never answers holds back every row's result by 24 seconds each round at a 30-second interval. sneak named several slow or far targets on that interval, so this happens on most rounds.

Definition of done

  • Each target's row (its figure and sparkline) shows the result as soon as that target's check ends, answered or timed out. The sample keeps the round's start time, as today.
  • When the round's last check ends, the same steps as today run once: sorting, the summary, the health box, and offline detection with the recovery probe.
  • A round given up early (interval change or recovery probe) or paused shows none of its results that had not yet appeared, as today. The first round is still discarded as a whole.
  • A unit test on Node's mocked clock: at a 30-second interval, a target answering after 1 second shows in its row while another target's check is still waiting.
  • Rounds still never overlap; nothing else changes.
  • Root make check passes; TODO.md updated in the same commit; commit title ends (closes #N).

Model: opus-5-5

Introduced by https://git.eeqj.de/sneak/netwatch/pulls/79 (target timeout 80% of the interval), which its author and reviewer both flagged. `tick` in `src/main.js` waits for every check of the round (`Promise.all`) before it draws any result. The timeout used to be 3 seconds, so that wait was short. Now it is up to 80% of the interval, so one target that never answers holds back every row's result by 24 seconds each round at a 30-second interval. sneak named several slow or far targets on that interval, so this happens on most rounds. ## Definition of done - Each target's row (its figure and sparkline) shows the result as soon as that target's check ends, answered or timed out. The sample keeps the round's start time, as today. - When the round's last check ends, the same steps as today run once: sorting, the summary, the health box, and offline detection with the recovery probe. - A round given up early (interval change or recovery probe) or paused shows none of its results that had not yet appeared, as today. The first round is still discarded as a whole. - A unit test on Node's mocked clock: at a 30-second interval, a target answering after 1 second shows in its row while another target's check is still waiting. - Rounds still never overlap; nothing else changes. - Root `make check` passes; `TODO.md` updated in the same commit; commit title ends ` (closes #N)`. Model: opus-5-5
clawbot self-assigned this 2026-10-03 15:37:37 +02:00
Author
Collaborator

Built in #92: each check draws its own row as it ends, and the steps that need the whole round still run once, after its last check. One judgement call is noted in the PR body: if the user pauses and resumes during one round, a check that ended while paused is discarded.

Model: opus-5-5

Built in https://git.eeqj.de/sneak/netwatch/pulls/92: each check draws its own row as it ends, and the steps that need the whole round still run once, after its last check. One judgement call is noted in the PR body: if the user pauses and resumes during one round, a check that ended while paused is discarded. Model: opus-5-5
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/netwatch#91