Skip to content

uphold 1.5.0: one set, for a tool installed by hand rather than by a resolver - #62

Merged
HackingGate merged 1 commit into
mainfrom
release-1-5-0
Aug 19, 2026
Merged

uphold 1.5.0: one set, for a tool installed by hand rather than by a resolver#62
HackingGate merged 1 commit into
mainfrom
release-1-5-0

Conversation

@HackingGate

@HackingGate HackingGate commented Aug 19, 2026

Copy link
Copy Markdown
Owner

Minor. One bundled set is added and nothing existing changes shape: the fourteen sets a 1.4.x policy can name resolve to exactly the rules they resolved to before, and every top-level field is the field it was.

There is a reinstall requirement

Same one 1.4.0 had. A set ships compiled into the binary, so a policy naming hand-rolled-toolchain against a 1.4.x binary does not fall back and does not warn: the set does not resolve, the policy fails to load, and a git or gh shim built on that policy fails closed.

Bump the pin and reinstall in the same change, or do not name the set yet. No repository is affected until it names it.

What the set refuses

rule shape
no-hand-rolled-tool-install a fetch piped into an unpacker
no-hand-rolled-tool-symlink an ln -s onto PATH out of $HOME/.local

Merged in #61, with the argument and the corpus. Promoted on a sweep that found the same Zig tarball installer written out in ten repositories (same uname -m case, same two architectures, same ~/.local/zig, same ln -sf) beside four further bespoke answers to the same question in one workspace.

Files bumped

Cargo.toml, Cargo.lock, README.md (3 refs), hooks/lefthook.yml (2 refs).

Verified

495 tests pass, 0 fail. Full hook set clean.

…resolver

Minor. One bundled set is added and nothing existing changes shape: the
fourteen sets a 1.4.x policy can name resolve to exactly the rules they
resolved to before, and every top-level field is the field it was.

THERE IS A REINSTALL REQUIREMENT, and it is the same one 1.4.0 had. A set
ships compiled into the binary, so a policy naming `hand-rolled-toolchain`
against a 1.4.x binary does not fall back or warn -- the set does not
resolve, the policy fails to load, and a `git` or `gh` shim built on that
policy fails closed. Bump the pin and reinstall in the same change, or do
not name the set yet. No repository is affected until it names it.

WHAT THE SET REFUSES. A host tool fetched and unpacked by hand where a
version manager was available:

  no-hand-rolled-tool-install   a fetch piped into an unpacker
  no-hand-rolled-tool-symlink   an `ln -s` onto PATH out of $HOME/.local

Promoted on a sweep that found the same Zig tarball installer written out in
ten repositories -- same `uname -m` case, same two architectures, same
~/.local/zig, same `ln -sf` -- beside four further bespoke answers to the
same question in one workspace. The cost is not the duplication: a
hand-written installer is untested on the platform it will fail on, and the
measured failures are all of that shape -- a `mv` into a ~/.local that does
not exist yet on a fresh runner, and a vendor release with no Linux asset on
the architecture nobody developed on.

Both rules fire on a COMMAND rather than on a declaration. What the set
deliberately leaves alone is argued in its header: `curl ... | sh`, because
that is how a version manager itself arrives; a [[tool]] row or a `want`,
because a resolver provisions and a doctor verifies and the two must be
different programs; and distro packages, because refusing those pushes a
repository toward vendoring by hand, which is this set's own failure
arriving from the other side.

`unmanaged-pins` does not already cover this and cannot: every one of the
ten builds its URL out of shell variables, so there is no version in the
line to match.
@coderabbitai

coderabbitai Bot commented Aug 19, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@HackingGate, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 34 minutes

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits within each organization.

For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: bdcbdec4-d251-4ded-8465-2e73eb088187

📥 Commits

Reviewing files that changed from the base of the PR and between fdef811 and c83d3fb.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (3)
  • Cargo.toml
  • README.md
  • hooks/lefthook.yml

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 89.81%. Comparing base (fdef811) to head (c83d3fb).

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #62   +/-   ##
=======================================
  Coverage   89.81%   89.81%           
=======================================
  Files          32       32           
  Lines       10161    10161           
=======================================
  Hits         9126     9126           
  Misses       1035     1035           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@HackingGate
HackingGate merged commit d96cbf8 into main Aug 19, 2026
12 checks passed
@HackingGate
HackingGate deleted the release-1-5-0 branch August 19, 2026 12:32
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.

2 participants