deps path gh <name>: resolve a gh release's install dir from the lock - #176
Merged
Merged
Conversation
Consumers of gh-provisioned engines hardcode `~/.dev/engines/<x>/current`,
which broke the moment the agent-host bootstrap re-rooted the data root
onto /Users/Shared/dev (cellbound-3d's `dev editor`). The accessor now
answers for gh deps the way it already does for xcode: from the locked
version, through DataRoot, to the immutable version-keyed dir — verified
by the publish marker, so a half-published or missing install surfaces
as NotInstalledError ("run dev up") instead of a wrong engine.
Resolving from the lock rather than the `current` pointer means a
checkout always gets the tag its lockfile names, not whatever this
machine installed last; `current` becomes retirable once consumers
migrate.
Co-authored-by: Cursor <cursoragent@cursor.com>
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
JPDuchesne
added a commit
that referenced
this pull request
Sep 23, 2026
deps path gh <name>: resolve a gh release's version-keyed install dir from the lockfile through the data root (#176)
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
Consumers of gh-provisioned engines hardcode
~/.dev/engines/<x>/current. That broke the moment the agent-host bootstrap re-rooted the data root onto/Users/Shared/dev— cellbound-3d'sdev editornow fails on every bootstrapped Mac (tooling/editor/lib/editor/editor_host.rb:24,bin/ue-bake:26). The consumer knows dev's layout convention but not dev's data-root resolution, and dev exposes no way to ask.What
dev deps path gh <name>— the accessor answers for gh deps the way it already does for xcode: locked version →DataRoot.expand(install_dir)→ the immutable version-keyed dir, verified by the.dev-gh-releasemarker. Missing/half-published →NotInstalledError("run dev up"); not in lock →NotLockedError; no name →UsageError.Resolved from the lock, not the
currentpointer: a checkout gets the tag its lockfile names, not whatever the machine installed last.currentis untouched here; it becomes retirable once consumers migrate (#177).Accessorgains an injectabledata_root:(same pattern asxcode_install_root:) so tests run against a tmpdir.Tests
6 new cases in
test/dev/deps/accessor_test.rb, written first.srb tcand rubocop clean. Full suite: the 4BuildContainerTestfailures are #165 (pre-existing onmain, reproduced with this change stashed).Sequence
editor_host.rb,bin/ue-bake, and the fourbin/*.shcurrentfallbacks todev deps path gh …GhIntegration#publish_current(gh integration: retire thecurrentsymlink once consumers resolve throughdev deps path gh#177)Made with Cursor