dotfiles-autoupdate: keep the gantry CLI in step with prod - #131
Merged
Conversation
A directory-shaped uv tool install can never self-update: uv tool upgrade re-reads whatever commit the local checkout sits at, which left taffy 16 minor versions stale (0.203.0 vs 0.219.1, 2026-08-17) and even a hand-run upgrade landed on the checkout's stale 0.216.1. ensure_gantry_cli_fresh compares the installed version against prod /health daily and, on drift, reinstalls from git+https@main — migrating the receipt to the git source on first fire so the checkout stops mattering. Skips hosts without the tool; every failure path logs and returns 0, per the module contract. Verified live on taffy: 0.216.1 -> 0.229.1, receipt now git+https://github.com/DJRHails/gantry?rev=main.
DJRHails
commented
Aug 23, 2026
DJRHails
left a comment
Owner
Author
There was a problem hiding this comment.
Automated post-merge review — one finding posted inline, fix follows in a separate PR since this one is already merged.
This was referenced Aug 23, 2026
Owner
Author
Review SummaryPost-merge review (direct single-pass — 59 changed lines across 2 files, under the multi-agent threshold). The new Findings
Verification
Commita001b1c — dotfiles-autoupdate: run the ssh rewrite before the gantry CLI refresh (PR #133) Verdict: approve |
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
The gantry CLI is a uv tool installed from a local checkout directory on every host, and that receipt shape can never self-update —
uv tool upgradejust re-reads whatever commit the working tree happens to sit at. taffy ran a 16-minor-versions-stale CLI (0.203.0 vs prod 0.219.1) until a missingtranscribesubcommand gave it away on 2026-08-17, and even the hand-run upgrade only reached the checkout's own stale 0.216.1.What
ensure_gantry_cli_freshin the daily autoupdate: compares the installed version against prod/health(one curl/day when current) and on drift reinstalls fromgit+https://github.com/DJRHails/gantry@main— gantry deploys straight off main, so main is the released version.--forcemigrates the old directory-shaped receipt to the git source on first fire, so the local checkout stops mattering. Hosts without the tool are skipped (installing fresh stays a human action — the token needs wiring by hand); every failure path logs and returns 0.gantry-cli/references/install.md): install recipe now uses the git source, documents the auto-update, and taffy's host-inventory row corrected (token has been wired since 2026-08-17).The private-repo clone rides
ensure_github_ssh_rewrite's insteadOf on keyed hosts; the pi package refresh already proves agent-less git-over-SSH works from the timer environment.Verification
Ran the updated script end-to-end on taffy against real drift:
Receipt now
git = "https://github.com/DJRHails/gantry?rev=main";gantry agentsworks. shellcheck clean; new code shfmt -i 2 clean (pre-existing drift in untouched lines left alone).via claude @ taffy