Skip to content

ci: serialize TypeScript web worker fixtures - #4462

Merged
antoniosarosi merged 1 commit into
canaryfrom
agent/tsweb-nextest-group
Aug 17, 2026
Merged

antoniosarosi merged 1 commit into
canaryfrom
agent/tsweb-nextest-group

Conversation

@antoniosarosi

@antoniosarosi antoniosarosi commented Aug 17, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • add a max-threads=1 nextest group for the TypeScript web worker fixture gates
  • scope the override to sdk_test_typescript_web tests ending in ::vitest_workers
  • keep all other TypeScript web tests on the existing scheduler

Why

Each workerd import can peak at roughly 7-8 GiB. The four outer vitest_workers fixture gates could overlap, multiplying that peak and causing host OOMs. Serializing only those four outer gates preserves inner fixture behavior while bounding aggregate memory.

Verification

  • cargo nextest list found 30 tests in sdk_test_typescript_web, with exactly four matching ::vitest_workers: docstrings_etc, function_calls, llm_functions, and type_shapes
  • cargo nextest show-config test-groups assigned exactly those four tests to typescript-web-workers with max-threads=1
  • full pinned gate: 3,748 passed, 24 skipped; doctests clean; no unreferenced or pending snapshots

Base: fdd05ac
Head: 2b22fbd

Summary by CodeRabbit

  • Tests
    • Configured TypeScript web-worker tests to run in a single-threaded test group.
    • Added a profile-specific override for the matching Vitest worker tests.

@vercel

vercel Bot commented Aug 17, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
beps Ready Ready Preview Aug 17, 2026 3:47am
promptfiddle2 Ready Ready Preview Aug 17, 2026 3:47am

Request Review

@vercel
vercel Bot temporarily deployed to Preview – beps August 17, 2026 03:39 Inactive
@github-actions

Copy link
Copy Markdown

⏭️ Performance benchmarks were skipped

Perf benchmarks (CodSpeed) are opt-in on pull requests — they no longer run on every push. They always run automatically after merge to canary/main.

To run them on this PR, do any of the following, then push a commit (or re-run CI):

  • Add RUN_CODSPEED=1 to the PR description, or
  • Include run-perf or /perf in the PR title or any commit message.

@coderabbitai

coderabbitai Bot commented Aug 17, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 3ff7c8f2-bcaf-4312-a736-2d15032bd5e9

📥 Commits

Reviewing files that changed from the base of the PR and between 07c118b and 2b22fbd.

📒 Files selected for processing (1)
  • baml_language/.config/nextest.toml

Included review availability: Your plan includes up to 8 reviews per rolling hour; 6 remain after this review.


📝 Walkthrough

Walkthrough

The nextest configuration adds a single-thread test group for TypeScript web workers. Matching sdk_test_typescript_web::vitest_workers tests use this group.

Changes

TypeScript web worker test scheduling

Layer / File(s) Summary
Configure serialized worker tests
baml_language/.config/nextest.toml
Adds the typescript-web-workers group with one-test concurrency. Routes matching Vitest worker tests to this group.

Estimated code review effort: 1 (Trivial) | ~3 minutes

Merge Risk: ⚪ Minimal · up to 2b22f

This change limits concurrency for four memory-intensive TypeScript web worker fixture gates while leaving other TypeScript web tests unchanged. The targeted configuration and full test gate are clean, so no actionable merge-blocking risk remains.

Possibly related PRs

Suggested reviewers: sxlijin

Poem

A rabbit set the workers in a row,
One test at a time, steady they go.
Vitest hops through the serialized lane,
No worker collisions remain.
🐇 Configuration keeps the pace—
Clean, quiet tests in their place.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: serializing TypeScript web worker fixtures in CI.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch agent/tsweb-nextest-group

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@vercel
vercel Bot temporarily deployed to Preview – promptfiddle2 August 17, 2026 03:47 Inactive
@github-actions

Copy link
Copy Markdown

Binary size checks passed

✅ 7 passed

Artifact Platform File Gzip Gated on Baseline Delta Status
✅ baml-cli Linux 🔒 31.7 MB 12.6 MB file 31.7 MB +4.8 KB (+0.0%) OK
✅ packed-program Linux 🔒 24.9 MB 9.1 MB file 24.9 MB +23.8 KB (+0.1%) OK
✅ baml-cli macOS 🔒 25.4 MB 11.1 MB file 25.4 MB +54.4 KB (+0.2%) OK
✅ packed-program macOS 🔒 20.6 MB 8.2 MB file 20.6 MB +41.7 KB (+0.2%) OK
✅ baml-cli Windows 🔒 27.2 MB 11.3 MB file 27.2 MB +15.8 KB (+0.1%) OK
✅ packed-program Windows 🔒 21.7 MB 8.2 MB file 21.7 MB +8.8 KB (+0.0%) OK
✅ bridge_wasm WASM 21.3 MB 🔒 5.4 MB gzip 5.3 MB +33.8 KB (+0.6%) OK

🔒 = the size this artifact is GATED on (ceiling + delta). Binaries gate on file size (installed binary); WASM gates on gzip (download size). The other size is shown for information only.


Generated by cargo size-gate · workflow run

@antoniosarosi
antoniosarosi added this pull request to the merge queue Aug 17, 2026
Merged via the queue into canary with commit ce7b945 Aug 17, 2026
65 checks passed
@antoniosarosi
antoniosarosi deleted the agent/tsweb-nextest-group branch August 17, 2026 04:12
meefs pushed a commit to meefs/baml that referenced this pull request Aug 17, 2026
## Summary

- restore alias and enum memoization only in the project-scale candidate
scans in impls_for_type_cached and resolve_within_depth
- keep the memo-free AliasOnlyFacts constructor at Facts::project,
infer/obligations.rs, method_resolution.rs, and interface_requires_inner
- make provable_subtype an InferenceContext method so the body facts and
canonical cache are structurally paired at every call
- correct the one-shot context documentation and document the Salsa
re-entrancy-window caveat for scan-local memos

This is the focused correction for the BoundaryML#4461 post-merge audit. It
restores repeated alias-head lookup reuse without widening memoization
to the four one-shot sites.

## Fresh back-to-back A/B

Both refs were measured consecutively in the same shell and target cache
with profiling disabled. Both workloads used exactly five one-compile
samples:

cargo bench -p baml_tests --bench compiler_benchmark -- compile_
--sample-count 5 --sample-size 1

Environment: Rust 1.93.0, CARGO_BUILD_JOBS=8, BAML_PROFILE=0.

| benchmark | canary 07c118b, 5 samples | candidate 0eb5f09, 5
samples | median delta |
| --- | ---: | ---: | ---: |
| compile_baml_tests_project | 2.180 s (2.144-2.351 s) | 2.133 s
(2.122-2.295 s) | -47 ms (-2.2%) |
| compile_empty_project | 497.5 ms (485.8-499.9 ms) | 485.6 ms
(478.2-488.5 ms) | -11.9 ms (-2.4%) |

No earlier baseline values are reused. Canary 07c118b was the exact
BoundaryML#4461 tip when this branch and A/B began; BoundaryML#4462 landed afterward and
changes only nextest scheduling configuration.

## Validation

- cargo check -p baml_compiler2_hir_ty
- focused nextest: 384/384 passed for baml_type, baml_compiler2_hir, and
baml_compiler2_hir_ty with all features
- strict all-target/all-feature Clippy passed for those packages;
workspace commit-hook Clippy also passed
- cargo fmt --all -- --check and git diff --check
- exact pinned full gate: 3,748/3,748 passed, 24 skipped, 50 slow in
1,375.321 s
- doctests clean; no unreferenced snapshots and no snapshots to review

Full gate command: CARGO_BUILD_JOBS=8 rustup run 1.93.0 cargo insta test
--test-runner nextest -p baml_tests -p baml_cli -p baml_lsp2_actions -p
baml_lsp2_actions_tests -p baml_surface --all-features
--unreferenced=reject

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Improvements**
* Improved type inference consistency across assignments, pattern
matching, flow narrowing, and catch-arm analysis.
* Enhanced handling of aliases and enum variants during type resolution.
* Repeated type checks are now more efficient, helping reduce
unnecessary compiler work.
* Existing subtype, union, coverage, and narrowing behavior remains
consistent while benefiting from more centralized analysis.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

This branch was previously deployed

2 inactive deployments
Preview – promptfiddle2 — 2b22fbd6 Deployed Aug 17, 2026 by vercel[bot]
Preview – beps — 2b22fbd6 Deployed Aug 17, 2026 by vercel[bot]
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.

1 participant