fix(shim): the re-exec has been sitting unpublished since it was written - #112
Merged
Conversation
A reviewer on a directory submission said uvx nable does not start on
machines whose default Python is under 3.11. I checked the source, saw the
re-exec, and was ready to tell them it was fixed. Then I ran it:
$ uvx --python 3.10 nable --version
nable needs Python 3.11 or newer. This is Python 3.10.
exit 1
They were right. The published nable 0.1.3 contains zero occurrences of
_reexec_under_managed_python. This repo contains two. shim/pyproject.toml
still declared 0.1.3, a version already on PyPI, so there was nothing left
to publish the change under. The Ctrl-C handler from #108 is stranded in
the same file.
Silent by construction: publishing fires on a shim-v* tag, nobody pushed
one, and a manual run would have hit skip-existing and reported success
while uploading nothing.
Fourth instance of one shape this week. The SBOM described an
eleven-week-old release. The Releases feed showed one entry against 208 on
PyPI. The MCP registry carries a duplicate 36 releases behind. Now this.
Every one looked healthy because nothing 404s, and every one was found by
someone stumbling into it rather than by a check.
So this adds the check. A digest of nable_shim.py is locked to the version
it will publish under, and editing the file fails the suite until the
version moves, which is the moment to remember the tag. Four mutations
caught: editing without bumping, drifting the version from the lock,
reverting to the taken 0.1.3, and deleting the re-exec outright.
Bumps to 0.1.4. Tag shim-v0.1.4 to actually ship it.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
detect-secrets flags any 64-char hex run as a Hex High Entropy String, which is the right default and wrong for a sha256 of a file anyone can read in this repo. Exemption is inline and covers that one line, not the file and not the rule. Verified locally with the same command CI runs: detect-secrets-hook --baseline .secrets.baseline Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
A reviewer bot on davila7/claude-code-templates#816 said
uvx nabledoes not start on machines whose default Python is under 3.11. I read the source, saw the re-exec, and was ready to reply that it was already fixed. Then I ran it:They were right.
_reexec_under_managed_pythonnable0.1.3shim/pyproject.tomlstill declared0.1.3, a version already on PyPI, so there was no version left to publish the change under. The Ctrl-C handler from #108 is stranded in the same file.Silent by construction. Publishing fires on a
shim-v*tag, nobody pushed one, and a manual run would have hitskip-existingand reported success while uploading nothing.This is the fourth instance of one shape this week: the SBOM described an eleven-week-old release, the Releases feed showed one entry against 208 on PyPI, the MCP registry carries a duplicate 36 releases behind, and now the shim. All four looked healthy because nothing 404s, and all four were found by someone stumbling into them rather than by a check.
So this adds the check. A digest of
nable_shim.pyis locked to the version it publishes under. Editing the file fails the suite until the version moves, which is the moment you remember the tag.Four mutations caught: editing without bumping, drifting the version from the lock, reverting to the taken
0.1.3, and deleting the re-exec outright.Bumps to 0.1.4. Tagging
shim-v0.1.4after merge is what actually ships it.🤖 Generated with Claude Code