Skip to content

test(#300): harden two CI-only E2E flakes (T148 backoff ceiling, game-3d camera poll)#315

Merged
TortoiseWolfe merged 2 commits into
mainfrom
fix/300-harden-two-e2e-flakes
Jul 18, 2026
Merged

test(#300): harden two CI-only E2E flakes (T148 backoff ceiling, game-3d camera poll)#315
TortoiseWolfe merged 2 commits into
mainfrom
fix/300-harden-two-e2e-flakes

Conversation

@TortoiseWolfe

Copy link
Copy Markdown
Owner

Fixes 2 of the 4 flakes tracked in #300. Each is a timing assumption visible in the test code — root-caused from the source + the CI flake signature. Neither reproduces locally (webkit has no WebGL here; the races only manifest under CI load), so these are code-reasoned fixes, verified by the flake signature matching the mechanism and by each change being a strict loosening/budget-increase that cannot mask a real regression the remaining assertions still catch.

offline-queue T148 (firefox) — wrong assertion, HIGH confidence

The retry-delay checks asserted wall-clock upper bounds (delay1 < 2000, delay2 < 3000) on the provider's setTimeout backoff [1000, 2000] (supabase-provider.ts:172). setTimeout guarantees a minimum elapsed time, never a maximum — under CI load (esp. firefox) the gap between intercepted attempts overshoots the ceiling and the test flakes.

Kept the lower bounds (backoff happened) and added delay2 > delay1 (backoff grew) — the actual "exponential backoff" behavior under test. The upper bounds tested something the runtime never promises.

game-3d SC-004 (webkit) — budget too tight, evidence-supported

The three camera-move polls capped at 3s. On webkit's software WebGL under CI load the render loop that writes data-camera-position lags the input event by >3s. The camera does move — these pass on retry — so the mechanism works; the poll budget was just too tight. Raised the three polls to 10s (a longer wait for the same real condition, inert on the happy path).

Verification

Not in this PR (the other 2 of 4)

  • messaging-scroll T007-T008 (chromium) — data-show-scroll-button flip race; cause not code-obvious, needs CI reproduction.
  • payment realtime (chromium) — suspected postgres_changes subscribe-readiness race; needs CI reproduction to confirm before touching.

🤖 Generated with Claude Code

TurtleWolfe and others added 2 commits July 18, 2026 00:27
Speculative, question-first post that brainstorms turning the /chatt 3D atlas into a participatory civic model, drawing on the Model City simulator and Civic League engagement-board concepts. Invites reader feedback on civic UI/UX, metrics, and how a community could participate. Adds a featured OG image, reuses chatt-atlas-og.jpg for social sharing, and regenerates the committed blog-data.json index.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…-3d camera poll)

Two of the four flakes tracked in #300, each a timing assumption visible in the test code; neither reproduces locally (webkit WebGL / CI-load timing).

offline-queue T148 (firefox): the retry-delay assertions checked wall-clock UPPER bounds (delay1<2000, delay2<3000) on the provider's setTimeout backoff [1000,2000]. setTimeout guarantees a MINIMUM elapsed time, never a maximum, so under CI load the intercepted-attempt gaps overshoot the ceiling and the test flakes. Keep the lower bounds (backoff happened) and add delay2>delay1 (backoff grew) — the real behavior under test.

game-3d SC-004 (webkit): the three camera-move polls capped at 3s. On webkit's software WebGL under CI load the render loop that writes data-camera-position lags the input event by >3s; the camera does move (these pass on retry), the budget was just too tight. Raise to 10s.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@TortoiseWolfe
TortoiseWolfe merged commit 4dcd0c1 into main Jul 18, 2026
18 checks passed
@TortoiseWolfe
TortoiseWolfe deleted the fix/300-harden-two-e2e-flakes branch July 18, 2026 01:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants