gh integration: retire the current symlink - #179
Merged
Merged
Conversation
`publish_current` pointed <install_dir>/current at the last-installed
version so consumers that could not ask dev could hardcode one path. Two
things were wrong with it: it was machine state ("last installed") rather
than a lock answer, so checkouts with different locked tags shared one
pointer; and it was a write on the shared engine tree, which crashed the
read-only ai-agent identity (plans#26) — the skip-if-converged guard
existed only to dodge that.
`dev deps path gh <name>` (#176) answers from the lockfile through
DataRoot to the version-keyed dir, and every consumer in the org has
moved to it (cellbound-3d#172). With no reader left, the pointer goes:
an install is now a pure read once the marker matches. Existing links on
hosts are left alone — nothing reads them, and removing them from
`dev up` would be exactly the kind of shared-tree write this retires.
Closes #177.
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
gh integration: retire the `current` symlink — consumers resolve engines via `dev deps path gh <name>`; existing engines/*/current links are dead and may be removed by hand (#179)
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.
Closes #177.
Why
GhIntegration#publish_currentmaintained<install_dir>/current -> <tag>so consumers that couldn't ask dev could hardcode one path. #176 addeddev deps path gh <name>(0.2.85), which resolves the version-keyed dir from the lockfile throughDataRoot; d3mlabs/cellbound-3d#172 moved every consumer in the org onto it. Nothing readscurrentanymore.Independent reason to want it gone: it was a write on the shared engine tree, and the read-only
ai-agentidentity crashed on it (plans#26) — the skip-if-converged guard inpublish_currentexisted only to dodge that. An install is now a pure read once the marker matches.What
publish_currentand its four call sites deleted;securerandomrequire dropped (only it used it).currententry exists; the read-only-tree test keeps its intent (re-install on an unwritable base dir writes nothing) without a pointer to converge.Existing links on hosts
Left alone. Nothing reads them, and deleting a symlink under
/Users/Shared/dev/engines/*fromdev upis exactly the kind of shared-tree write this PR retires. Release note:engines/*/currentlinks are dead and may be removed by hand.Verified
srb tcand rubocop clean. Full suite: the 4BuildContainerTestfailures are #165 (pre-existing onmain).Made with Cursor