fix(core): restore parcel watch for git HEAD - #41616
Open
rekram1-node wants to merge 2 commits into
Open
Conversation
Bun fs.watch misses git's atomic HEAD.lock rename, so checkout never refreshed the cached branch. Watch the git dir with Parcel like dev, keeping only HEAD and HEAD.lock.
LocationWatcher only existed to republish git/hg metadata as filesystem.changed for Vcs. Nothing else consumed those events. Vcs now owns the Parcel watch, same as skills and config.
This was referenced Aug 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
git checkoutno longer updates the TUI/server branch label. #41096 stopped the recursive project watch (good) but also replaced the bounded.gitParcel watch with a Bunfs.watchon theHEADfile.Git updates
HEADby renamingHEAD.lock→HEAD. Parcel/FSEvents sees that; Bun'sfs.watchdoes not (Node does). Vcs never refreshes, sovcs.branch.updatednever fires and the boot-time branch sticks. Existing tests still passed because they writeHEADin place.devalready does the tight version: one Parcel watch on the git dir, ignore everything exceptHEAD. This restores that, plusHEAD.lock, without bringing back the whole-tree watch.Test plan
cd packages/core && bun test test/filesystem/watcher.test.ts test/vcs.test.tsopencode2 service restart, thengit checkoutand confirm the TUI branch label updates