Skip to content

bundler: route every cross-thread event to the bundle thread through one post() - #37997

Open
alii wants to merge 8 commits into
mainfrom
ali/bundler-defer-flag
Open

bundler: route every cross-thread event to the bundle thread through one post()#37997
alii wants to merge 8 commits into
mainfrom
ali/bundler-defer-flag

bundler: Event::bundle dereferences its argument, mark it unsafe

9993b7e
Select commit
Loading
Failed to load commit list.
Claude / Claude Code Review completed Aug 13, 2026 in 21m 2s

Code review found 5 potential issues

Found 3 candidates, confirmed 5. See review comments for details.

Details

Severity Count
🔴 Important 0
🟡 Nit 5
🟣 Pre-existing 0
Severity File:Line Issue
🟡 Nit src/bundler/bundle_v2.rs:1208-1209 Resolve.task doc comment not updated to match sibling Load.task / Result.task
🟡 Nit src/bundler/ParseTask.rs:2826 Stale caller list in LinkerContext::any_loop_mut doc comment

Annotations

Check warning on line 1209 in src/bundler/bundle_v2.rs

See this annotation in the file changed.

@claude claude / Claude Code Review

Resolve.task doc comment not updated to match sibling Load.task / Result.task

`Resolve.task` at line 1090 still has the pre-refactor doc comment "`jsc.AnyEventLoop.Task` — intrusive node for the Mini-loop queue", while this PR updated its two siblings `Load.task` (line 1208) and `parse_task::Result.task` (ParseTask.rs:128) to "Mini-loop queue node for `crate::post` (see `post::Event::NODE`)". All three back a `post::Event::NODE` (`PluginResolveSettled::NODE = offset_of!(Resolve, task)` at line 4342), so per REVIEW.md "fix the whole class in the same PR" give `Resolve.task

Check warning on line 2826 in src/bundler/ParseTask.rs

See this annotation in the file changed.

@claude claude / Claude Code Review

Stale caller list in LinkerContext::any_loop_mut doc comment

The doc comment on `LinkerContext::any_loop_mut` (src/bundler/LinkerContext.rs:241-242) still says it centralises the deref "so the three callers (`BundleV2::any_loop_mut`, `ParseTask` / `ServerComponentParseTask` completion) are safe" — but this PR removed the ParseTask/ServerComponentParseTask call sites in favor of `crate::post::post`, leaving `BundleV2::any_loop_mut` as the only caller. The follow-on clause at 246-247 ("worker-thread completions reach this through a `BackRef<BundleV2>`") is