qa(idle-poll): assert zero background reqs in a 55s idle window #12

Merged
shad merged 1 commits from qa/idle-poll-strict-zero into main 2026-06-15 00:25:13 +00:00
Owner

Previous audit allowed up to 5 requests in 30s — too generous, hid real regressions. New contract: after a 5s settle (covers legitimate mount-time fetches), the next 55s of operator inactivity must produce zero /api/* or /internal/* requests. 55s fits between two consecutive 60s topbar badge polls. Operator-experience contract: when you stop typing, canvas stops fetching.

Previous audit allowed up to 5 requests in 30s — too generous, hid real regressions. New contract: after a 5s settle (covers legitimate mount-time fetches), the next 55s of operator inactivity must produce **zero** `/api/*` or `/internal/*` requests. 55s fits between two consecutive 60s topbar badge polls. Operator-experience contract: when you stop typing, canvas stops fetching.
shad added 1 commit 2026-06-15 00:25:03 +00:00
qa(idle-poll): assert zero background reqs in a 55s idle window
build-and-publish / test (pull_request) Has been cancelled
build-and-publish / image (pull_request) Has been cancelled
f97f5d2788
Previous audit allowed up to 5 requests in a 30s window — generous,
hid real regressions. Tighten:

- 5s settle after each scene becomes interactive (covers the burst
  of mount-time fetches every scene legitimately fires)
- 55s observation window after settle, sized to fit between two
  consecutive 60s topbar badge polls
- MAX_REQ_PER_WINDOW = 0; any /api/* or /internal/* request during
  the window fails the assertion

This is the operator-experience contract: when you stop typing,
canvas stops fetching.
shad merged commit 4adb9433d1 into main 2026-06-15 00:25:13 +00:00
shad deleted branch qa/idle-poll-strict-zero 2026-06-15 00:25:14 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: shad/canvas-frontend#12