Repository navigation
fix(deps): clear the production audit, and stop force-includes reading through links - #157
Merged
Merged
Conversation
…g through links - move simple-git to v4 for the critical argv-parser advisories; v4 drops the default export GitUtils imported - replace micromatch and fast-glob with picomatch and tinyglobby: braces, which micromatch requires, has a high advisory and no patched release - spell brace ranges out before globbing, since picomatch matches a comma list but not a range, keeping fast-glob's limit of 1000 values - drop a force-include match reached through a directory link when links are not followed; fast-glob read through a link a pattern named, including one leading outside the repository - report an unreadable directory under a force-include instead of failing - update every dependency within range and the pinned actions; hold Jest at 30.4, whose 30.5 module system keeps a file URL's query as part of the path - declare jest-diff and drop a mock of a module that does not exist, both flagged by the newer knip
This was referenced Oct 20, 2026
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.
Summary
Every open PR failed CI on the Security Audit job (
npm audit --omit=dev --audit-level=high). Two packages were behind it: simple-git (critical, tracked in daintreehq/daintree#13556, which needs CopyTree off the default export v4 removes) and braces (high, no patched release at all), which came in through micromatch and fast-glob. This clears both. It also lands everything the open Dependabot PRs proposed, so those can close as superseded.Swapping fast-glob turned up a pre-existing hole: with
followSymlinks: false,--always 'keys/*.txt'still read throughkeyswhen it was a directory link, including one pointing outside the repository. That's fixed, with a test.Changes
GitUtilsimports the namedsimpleGitexport. None of its calls use abbreviated options or pass Git environment variables, so v4's new guards don't apply. Checked--modifiedand--changed developagainst this repository.micromatch.matcher()waspicomatch()under another name.compileGlobs()inpathUtils.jsalways passes an options object, because picomatch ≥3 only consults the platform when given one.ignore check's on-disk listing. Gaps in tinyglobby are closed incollectForcedEntries:{01..03}. Ranges over 1000 values are still refused, as braces refused them.unreadableinstead of failing the run withEACCES.enginesfloor (^22.18) is above ours (22.12). Jest 30.5, whose module system keeps afile://import's?t=query as part of the path, so the legacy user-config test fails under Jest while the code works in Node..github/dependabot.ymlrecords the Jest hold and groups@jest/*andbabel-jestwith jest.jest-diffwas used but undeclared, and ajest.mocktargeted a module that doesn't exist.docs/technical/behavior-ledger.mdrecords each behaviour change, plus one known gap. WithfollowSymlinks: true, fdir treats a link inside a followed link that points further into the same target as a cycle.Testing
npm run verify:release: lint, format, CLI docs, links, typecheck, knip, knip production, coverage (133 suites, 2414 tests), package check.npm audit --omit=dev --audit-level=high: 0 vulnerabilities. The 19 dev-only moderates are inside Jest's istanbul chain with no upstream fix; that CI step iscontinue-on-error.tests/real/pipeline/stages/FileDiscoveryStage.forceInclude.test.js: ranges, a range after a literal brace group, escaped braces, the range limit, unreadable directories, and directory links followed and not followed. The link test fails with the new check removed.Supersedes #149, #151, #152, #153, #154, #155.