Skip to content

Simplify build queue scheduling and shared results - #1402

Merged
ije merged 2 commits into
mainfrom
ije/redesign-build-queue
Sep 9, 2026
Merged

Simplify build queue scheduling and shared results#1402
ije merged 2 commits into
mainfrom
ije/redesign-build-queue

Conversation

@ije

@ije ije commented Sep 9, 2026

Copy link
Copy Markdown
Member

Concurrent requests for the same build could race with completion, and path normalization could remove another task from the queue. Replace the scheduler goroutine and per-request result channels with a FIFO pending queue and one shared completion signal per requested path.

Request cancellation now detaches the waiter while the shared build continues. Queue keys remain fixed, status updates are atomic, and joined requests receive the resolved build path. Concurrency limits, build timeouts, and panic recovery are preserved.

Pin the import-map resolution test to React DOM 19.2.4 so its scheduler 0.27.x expectation stays consistent with the fixture, and report setup errors directly.

Validation:

  • go test ./server ./internal/... -count=1 passes.
  • go test -race ./server -run '^TestBuildQueue' -count=25 passes.
  • Regression coverage includes FIFO scheduling, deduplication, waiter cancellation, path changes, snapshots, failures, and retries.

@ije
ije merged commit 17ca709 into main Sep 9, 2026
5 checks passed
@ije
ije deleted the ije/redesign-build-queue branch September 9, 2026 19:40
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