Skip to content

fix(shim): the re-exec has been sitting unpublished since it was written - #112

Merged
getnable merged 2 commits into
mainfrom
fix/publish-stranded-shim
Aug 19, 2026
Merged

fix(shim): the re-exec has been sitting unpublished since it was written#112
getnable merged 2 commits into
mainfrom
fix/publish-stranded-shim

Conversation

@getnable

Copy link
Copy Markdown
Owner

A reviewer bot on davila7/claude-code-templates#816 said uvx nable does 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:

$ uvx --python 3.10 nable --version
nable needs Python 3.11 or newer. This is Python 3.10.
Run this instead: uvx --python 3.12 nable
exit 1

They were right.

_reexec_under_managed_python
Published nable 0.1.3 0
This repo 2

shim/pyproject.toml still declared 0.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 hit skip-existing and 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.py is 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.4 after merge is what actually ships it.

🤖 Generated with Claude Code

getnable and others added 2 commits August 19, 2026 15:35
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>
@getnable
getnable merged commit d16b2c8 into main Aug 19, 2026
5 checks passed
@getnable
getnable deleted the fix/publish-stranded-shim branch August 19, 2026 20:40
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.

1 participant