[WIP] review @d2learn/xlings/pull/111#114
Closed
Copilot wants to merge 1 commit into
Closed
Conversation
Copilot stopped work on behalf of
Sunrisepeak due to an error
August 19, 2025 17:52
Sunrisepeak
added a commit
that referenced
this pull request
Jun 4, 2026
…okup) Design for binding shims to their owning home instead of ambient XLINGS_HOME, with a compatibility-ordered lookup chain (owner -> env -> default) as the transition default and strict binding as the end state. Covers project-shim/global-xpkgs semantics, impact analysis, phased rollout, and the mcpp Windows no-git/index deadlock evidence (mcpp-community/mcpp PR #114).
Sunrisepeak
added a commit
that referenced
this pull request
Jun 4, 2026
…316) A shim is an artifact of exactly one home: dispatch now resolves against the home that owns the shim file first, instead of trusting ambient XLINGS_HOME. env XLINGS_HOME stays as a deprecated lower-priority fallback (borrowing) for one transition window, with a visible warning; ~/.xlings covers orphan shims. XLINGS_SHIM_ANCHOR=legacy restores the pre-0.4.48 env-first behavior as release insurance. Fixes the embedder-redirect failure class: a process tree that redirects XLINGS_HOME (e.g. mcpp's vendored registry) broke every shim-resolved tool on PATH (git, python, ...) -> package-index sync deadlocked -> 'no package index'. Reproduced end-to-end in mcpp-community/mcpp PR #114. - src/core/xvm/shim.cppm: is_home_root (structural signature), resolve_owner_home (innermost-home walk), home_knows_program (lightweight DB probe), resolve_dispatch_home (the chain + warnings) - src/core/config.cppm: Config::override_home pre-init hook; bump 0.4.48 - src/main.cpp: run the chain for shim invocations before first Config use - src/core/xself/doctor.cppm: check 2.6 'shim anchor' (warning-only, scoped to binDirs inside the home) - tests: unit suite (14 tests) + e2e scenario test, registered in linux/macos CI - design doc: .agents/docs/2026-06-04-shim-owner-anchoring-design.md updated to as-landed state
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.
Key Issues Found and Fixed:
handler.rsSummary of Changes Made:
Critical Fixes:
Technical Improvements:
Testing Results:
✅ Bidirectional bindings: A↔B relationships work without crashes
✅ Complex topologies: Star patterns (A↔B,C) process correctly
✅ Atomic updates: All bound packages update together consistently
✅ CI compatibility: All workflow commands execute successfully
✅ Error recovery: Invalid bindings are cleaned up gracefully
Original Feature Goals Achieved:
xvm use target version, all bound packages update automaticallyProduction Readiness:
The xvm binding feature is now production-ready with:
The feature successfully allows users to create version dependencies between packages where switching one package version automatically updates all related packages to compatible versions.
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.