Target check timeout is 80% of the refresh interval (closes #78)
check / check (push) Successful in 1m55s
check / check (push) Successful in 1m55s
Each target check now times out after 80% of the refresh interval, 24 seconds at 30 seconds, where it was capped at 3 seconds, so slow, far targets are recorded with their real time. Rounds never overlap: a round gives up the last round's checks if they are still waiting, which happens only when a round starts early, after an interval change or when the recovery probe finds a target answering. The probe still checks every half second, giving up its previous checks, so they do not pile up. The frontend has its first unit tests, run by script/frontend-test with Node's built-in test runner on a mocked clock. index.html now links src/styles.css, which src/main.js imported, since Node cannot import CSS. Model: opus-5-5
This commit was merged in pull request #79.
This commit is contained in:
@@ -52,8 +52,8 @@ halves, so the root `make check` fails if either one is broken. We provide:
|
||||
- `script/fmt` — format all files (writes): prettier, then gofmt over `backend/`
|
||||
- `script/fmt-check` — check formatting (read-only): prettier, then gofmt
|
||||
- `script/check` — run test, lint, and fmt-check
|
||||
- `script/frontend-test` — run the production build as the frontend's test (no
|
||||
unit tests yet)
|
||||
- `script/frontend-test` — run the unit tests in `test/unit/` with Node's
|
||||
built-in test runner, then the production build
|
||||
- `script/frontend-lint` — run prettier in check mode
|
||||
- `script/frontend-fmt` — format everything prettier understands (writes)
|
||||
- `script/frontend-fmt-check` — check prettier formatting (read-only)
|
||||
@@ -136,8 +136,14 @@ Local hosts are tracked separately from WAN stats.
|
||||
### Latency measurement
|
||||
|
||||
HEAD requests with `mode: 'no-cors'` and `cache: 'no-store'`, timed with
|
||||
`performance.now()`. 1-second timeout; anything over 1000ms is clamped to
|
||||
unreachable. IPv4 only.
|
||||
`performance.now()`. Each check times out after 80% of the refresh interval (24
|
||||
seconds at 30 seconds) and is then recorded as a timeout, so a round's checks
|
||||
have all finished before the next round is due. When no WAN host answers, a
|
||||
recovery probe checks 4 random WAN hosts every half second, giving up the checks
|
||||
it started half a second before. As soon as one answers, a new round starts at
|
||||
once, as it does after an interval change. A round started early gives up the
|
||||
last round's checks if they are still waiting, and that round records nothing,
|
||||
so rounds never overlap. IPv4 only.
|
||||
|
||||
### Color coding
|
||||
|
||||
|
||||
Reference in New Issue
Block a user