fix(deps): defer workspace replacement loading - #606
Merged
Conversation
wolfy-j
force-pushed
the
fix/workspace-replacement-lazy-load
branch
2 times, most recently
from
August 26, 2026 17:25
72c8635 to
f77d048
Compare
wolfy-j
force-pushed
the
fix/workspace-replacement-lazy-load
branch
from
August 26, 2026 18:22
cb244cf to
86f6049
Compare
wolfy-j
approved these changes
Aug 30, 2026
wolfy-j
left a comment
Contributor
There was a problem hiding this comment.
Verified replacement ownership boundary: boot/install load only selected graph sources; update retains all declared replacement inputs for resolution; malformed declarations remain rejected. Focused lock and command tests pass.
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.
Why
A workspace may declare replacements for modules that are not selected by the current lock graph. Treating every replacement as a runtime load path makes an unrelated or temporarily absent workspace directory break boot and lets unselected source participate in pack, install, and artifact preparation.
What
GetModuleLoadPathscontract return only app source and modules selected by the lock graph.wippy updatescans effective workspace replacement roots directly so an unselected local module can still contribute dependency constraints before resolution.GetLoadPathsas the path-only view of the same canonical selection; no boot-only API or parallel load-path vocabulary.The unrelated offline dependency-chain diagnostics were removed from this PR.
Verification
go test -race -count=1 ./boot/deps/lock ./cmd/internal/entries ./cmd/wippy/cmdgolangci-linton the changed dependency and CLI packages