Skip to content

gh integration: retire the current symlink - #179

Merged
JPDuchesne merged 1 commit into
mainfrom
jpd/177-retire-current
Sep 23, 2026
Merged

JPDuchesne merged 1 commit into
mainfrom
jpd/177-retire-current

Conversation

@JPDuchesne

Copy link
Copy Markdown
Contributor

Closes #177.

Why

GhIntegration#publish_current maintained <install_dir>/current -> <tag> so consumers that couldn't ask dev could hardcode one path. #176 added dev deps path gh <name> (0.2.85), which resolves the version-keyed dir from the lockfile through DataRoot; d3mlabs/cellbound-3d#172 moved every consumer in the org onto it. Nothing reads current anymore.

Independent reason to want it gone: it was a write on the shared engine tree, and the read-only ai-agent identity crashed on it (plans#26) — the skip-if-converged guard in publish_current existed only to dodge that. An install is now a pure read once the marker matches.

What

  • publish_current and its four call sites deleted; securerandom require dropped (only it used it).
  • Class comment: the "nothing else is written under install_dir" contract replaces the pointer paragraph.
  • Tests: the two install tests assert no current entry 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/* from dev up is exactly the kind of shared-tree write this PR retires. Release note: engines/*/current links are dead and may be removed by hand.

Verified

srb tc and rubocop clean. Full suite: the 4 BuildContainerTest failures are #165 (pre-existing on main).

Made with Cursor

`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

codecov Bot commented Sep 23, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@JPDuchesne
JPDuchesne merged commit 1d6c2c8 into main Sep 23, 2026
5 checks passed
@JPDuchesne
JPDuchesne deleted the jpd/177-retire-current branch September 23, 2026 23:17
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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

gh integration: retire the current symlink once consumers resolve through dev deps path gh

1 participant