fix(server): a poll is not a double submit - #753
kushals256 wants to merge 4 commits into
Conversation
A camera loop or unnamed analytics write was counted as a double submit, so every proved assertion on those pages came back unknown. Signed-off-by: Kushal S <skushal.mys@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Kushal S <skushal.mys@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com>
CI recorded hidden-api-500 and broken-form-validation as NOT MEASURED after Playwright MCP initialize/click timeouts, which shrank coverage and tripped the gate while catch-rate stayed 1.0. Replay-detect already retries that rig noise; Layer A now does too. Signed-off-by: Kushal S <skushal.mys@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com>
|
Same coverage-floor flake as #750 / #755, not this change. This run lost two extra cells (46 vs 48): Cherry-picked the one-retry from #750 (the same rule |
50ms expired the idle socket on a loaded Windows runner before the second dial landed, so the cap never fired and both closes were 1008. Signed-off-by: Kushal S <skushal.mys@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com>
|
Windows unit failure was unrelated to the poll change. Gave that test the same kind of window the sibling already uses (2s) so the cap can still fire, then idle still expires. Pushed as 54c496e. |
|
Superseded by #754, which landed the same fix (a steady cadence is a poll, not a double submit) — thank you both for converging on it. Nothing here is wrong; #754 was simply the narrower diff (2 files) and was green first. Worth keeping from this PR if you want to follow up: the |
|
Closing — #754 landed the same fix (a steady cadence is a poll, not a double submit), and the defect it addresses is now fixed on main. For the record, since you got there independently: yours was the broader diff, and the part of it that #754 did NOT cover is the |
Fixes #673
A camera loop or an analytics beacon was counted as a double submit, so every proved assertion on those pages came back
unknown— including ones that never named the looping URL.act_and_wait,duplicate-requestonly fires for a write the predicate named. Observe still uses the old rule.Test plan
contradictions.test.ts— poll silent, burst still a finding, unnamed write does not impeach, named write still doesdeclared.test.ts— success net and text-only populatenamedNetsact-verdict-parity.test.ts— assert and act_and_wait both passnamedNets