release: v0.10.4 - #254
Merged
Merged
Conversation
Unblocks rf-f5is. #250 merged to a PUBLIC main on 2026-09-11 and the registries have served 0.10.3 ever since — a fix disclosed and not shipped, for an EXTERNALLY reported finding. Cutting the disclosure line from the PR body did not undo the disclosure: merging to a public repo publishes a diff naming exactly which key shapes were undetected and at what lengths. CONTENTS 6839663 #250 rf-f5is OpenAI + Supabase rules in the regex engine 14eb1c6 #246 rf-3n1i command_policy.allowed_patterns in python, under the policy floor, plus two allowlist bypasses closed SCOPE OF THE BUMP — four files, found by searching for the current version rather than by trusting the validator's list, because #238 exists precisely because a partial bump PASSED validation once: node/package.json python/pyproject.toml node/resources/rafter-security-skill.md (gated ClawHub manifest) python/rafter_cli/resources/rafter-security-skill.md (gated ClawHub manifest) DELIBERATELY NOT BUMPED. The repo carries six other SKILL.md files with their own frontmatter versions — rafter-code-review at 0.7.0, rafter-secure-design, rafter-skill-review and rafter at 0.1.0/0.7.0. Those are independently versioned skill resources, not package-version mirrors; moving them to 0.10.4 would be wrong, and "every manifest" does not mean every file with a version. The two that ARE package mirrors are the two validate-release gates. VERIFIED by running validate-release's own checks locally rather than trusting the edit: node and python versions match at 0.10.4, and both gated skill manifests match the package version. Plus the check validate-release does NOT do and which is the one that actually bites — 0.10.4 is not already on the registry. main's version equalling the published version is what made the last two gaps unpublishable: validation passes and the publish job fails later, at the registry, with an error that does not say "you forgot the bump". Does not push prod. PR #251 (main -> prod) is open and is Rome's to merge.
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.
Unblocks rf-f5is. #250 merged to a public main on 2026-09-11 and the registries have served 0.10.3 ever since — a fix disclosed and not shipped, for an externally reported finding. Cutting the disclosure line from that PR body didn't undo the disclosure: merging to a public repo publishes a diff naming exactly which key shapes were undetected and at what lengths.
Contents
683966314eb1c6allowed_patternsin Python under the policy floor, plus two allowlist bypassesScope of the bump
Four files, found by searching for the current version rather than trusting the validator's list — #238 exists precisely because a partial bump passed validation once:
Deliberately not bumped. The repo carries six other
SKILL.mdfiles with their own frontmatter versions —rafter-code-reviewat 0.7.0,rafter-secure-design/rafter-skill-review/rafterat 0.1.0–0.7.0. Those are independently versioned skill resources, not package-version mirrors; moving them to 0.10.4 would be wrong. "Every manifest" is not "every file with a version" — the two that are package mirrors are the twovalidate-releasegates.Verification
Ran
validate-release's own checks locally rather than trusting the edit:validate-releasedoes not do, which is the one that actually bites: 0.10.4 is not already on the registry ✅main's version equalling the published version is what made the last two gaps unpublishable — validation passes and the publish job fails later, at the registry, with an error that doesn't say "you forgot the bump". Worth adding that check to
validate-releaseseparately; it's onenpm viewcall and would have caught all three occurrences before the prod push rather than after.Not included
se-u7c2andse-riqbare Stage 0 items the mayor asked to fold in. I've asked diffie which of us writesse-riqb(it touchessecret_patterns.py, the file #250 just changed) rather than both of us editing it. If they land before this merges they ride along; if not, they go in the next cut rather than hold a public disclosure any longer.Does not push prod. PR #251 (main → prod) is open and is Rome's to merge.