Release CodeTruss CLI v0.2.46 - #42
Merged
Merged
Conversation
Syncs the 0.2.46 source from the private monorepo and moves the four dependencies behind this repository's open Dependabot alerts. brace-expansion 5.0.7 -> 5.0.9 is the one that ships: minimatch backs `--allow` / `--deny`, and both are bundled into cli.cjs. minimatch 10.2.6 requires `^5.0.8`, so the floor now comes from the dependency graph. postcss 8.5.19 -> 8.5.26 and nanoid 3.3.16 -> 3.3.18 are dev-only, via vitest -> vite, and appear nowhere in the bundle. The rebuilt archive is byte-identical to the monorepo's: codetruss-cli-0.2.46.tgz sha256 047dc9915d8c0594c913d1c29813edeecb7c71b0fd4e594ab0221139955ad643 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.
Syncs the 0.2.46 source from the private monorepo, byte for byte against the monorepo git objects (201 files compared by blob hash, 0 mismatches). Closes the four open Dependabot alerts on this repository.
That digest was not copied into
release-reference.json:pnpm release:artifactwas run against this tree, resolved from this repository's own lockfile, and the rebuilt archivecmps clean against the monorepo's copy — as does the bundle inside it. The samecmpagainst 0.2.45 exits 1, so the comparison is capable of failing.What 0.2.46 is
--allowand--denyare matched withminimatch, which expands brace groups throughbrace-expansion, and the bundled copy was 5.0.7. That version caps the number of expansions at 100,000 but not their length.{a,b}repeated a few hundred times keeps the count under the cap while making every result as long as the pattern has groups, and the arrays built while combining them exhaust the heap and abort the process — uncatchably, sotry/catchdoes not help.It is reachable here, which is the part worth saying plainly.
allowanddenyare read from the scanned repository's.codetruss.ymland validated only as a list of non-empty strings, so the pattern does not have to come from the operator. Two fresh fixtures, byte-identical.codetruss.ymlcarrying one 7.5 KB glob:What it is not. Nothing is disclosed, nothing is altered, and no verdict changes. A pattern cannot reach the matcher from a diff, a filename, or the network — only from flags you typed or a config file in the tree you pointed the CLI at. The worst outcome was a local tool dying instead of reporting. This is a real fix rather than a hygiene bump, and it is also not an emergency.
What moved
brace-expansionminimatchpostcssnanoidNo overrides were added.
minimatchmoved as a declared dependency (^10.0.3→^10.2.6), and its own^5.0.8requirement meansbrace-expansioncan no longer resolve below the patched line — the floor lives in the dependency graph rather than in a pin someone has to remember.postcssandnanoidre-resolved within the rangesvitealready declares.Proof the upgrade reached the bundle
A green lockfile with a stale bundle is the exact false pass this project exists to prevent, so the bundle was checked directly. 5.0.9-only sentinels in the built
cli.cjs:EXPANSION_MAX_LENGTH×2,4e6×1,maxLength×18,dropEmpties×10,function combine(×1. 5.0.7'sexpand_(str,max,isTop)signature: 0 occurrences.postcss,nanoidandsource-map-js: 0 occurrences each, confirming those two are dev-only. And the behavioral result above, which is what actually settles it.Scope matching is unchanged
The one thing a dependency bump under the file-scoping logic could do is silently change which files land in scope. 1938
(path, pattern)pairs — real globs, brace-heavy globs, numeric and alpha sequences, escapes, dotfiles, globstars, character classes — evaluated with{dot:true}under minimatch 10.2.5 + brace-expansion 5.0.7 and under 10.2.6 + 5.0.9. Zero divergence. 51 rawexpand()calls compared directly: identical output.policy-verdict,policy-fingerprint,scope-inferenceandconfigall pass.Not touched
pnpm-workspace.yamland.npmrcare unchanged.public/downloads/grammars/is carried verbatim, and no previously published artifact is modified —codetruss-cli-0.2.45.tgzis still0ced9ca9….Checked locally before opening
pnpm validatepasses against this branch: typecheck,release:artifact,pnpm test(34 files, 425 tests),release:verify, andtest:install. The rebuilt archive reproduced047dc991…exactly, andrelease-reference.json's three digests were each recomputed from the files rather than transcribed.🤖 Generated with Claude Code