Skip to content

test(web): heldMs bounds in server-boundary-records are timer-deterministic - #3531

Merged
ryansolid merged 1 commit into
nextfrom
test/deterministic-held-ms
Sep 18, 2026
Merged

ryansolid merged 1 commit into
nextfrom
test/deterministic-held-ms

Conversation

@ryansolid

Copy link
Copy Markdown
Member

a grouped boundary that errors still records failed CI on #3526 (heldMs 7.28 against a >= 10 floor). The hold is the gap between two independent timers — a 5 ms error and a 20 ms sibling — and on a loaded runner they raced.

Now the sibling settles a fixed 30 ms after A has failed (a deferred A resolves just before it throws), so the hold's lower bound is one timer's, and a timer never fires early; floor 25. Same treatment for order=together: B is released 40 ms after A has settled, not after the stream started; floors 35 / 40; A's duration is asserted shorter than its own hold instead of under a wall-clock constant. The order=natural test only asserts < 10 on an un-held reveal and is unchanged.

Test-only. Passes 6/6 locally in isolation; the other six failures in this file locally are the pre-existing compiler-binary ones that also fail on origin/next in my worktree.

Made with Cursor

…nistic

'a grouped boundary that errors still records' failed CI on #3526 with
heldMs 7.28 against a >= 10 floor: a 5 ms timer (the error) and a 20 ms
timer (the sibling) raced on a loaded runner, and the hold is the gap
between them. B now settles a fixed 30 ms AFTER A has failed (a deferred A
resolves before it throws), so the hold's lower bound is a single timer's —
a timer never fires early — and the floor is 25. Same shape for
'order=together': B is released 40 ms after A has settled, not 40 ms after
the stream started; floors 35 (held) and 40 (B's duration); A's duration is
asserted shorter than its own hold rather than under a wall-clock constant.

Co-authored-by: Claude via Cursor <noreply@cursor.com>
@changeset-bot

changeset-bot Bot commented Sep 18, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: e308f39

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coveralls

Copy link
Copy Markdown

Coverage Report for CI Build 35310559831

Coverage remained the same at 71.304%

Details

  • Coverage remained the same as the base build.
  • Patch coverage: No coverable lines changed in this PR.
  • No coverage regressions found.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

No coverage regressions found.


Coverage Stats

Coverage Status
Relevant Lines: 1035
Covered Lines: 783
Line Coverage: 75.65%
Relevant Branches: 798
Covered Branches: 524
Branch Coverage: 65.66%
Branches in Coverage %: Yes
Coverage Strength: 15.07 hits per line

💛 - Coveralls

@ryansolid
ryansolid merged commit 8257347 into next Sep 18, 2026
6 checks passed
@codspeed

codspeed Bot commented Sep 18, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 172 untouched benchmarks
⏩ 3 skipped benchmarks1


Comparing test/deterministic-held-ms (e308f39) with next (e1e9f8c)2

Open in CodSpeed

Footnotes

  1. 3 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

  2. No successful run was found on next (e308f39) during the generation of this report, so e1e9f8c was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

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