Skip to content

chore: bump the js-tooling group with 3 updates - #118

Merged
BartWaardenburg merged 1 commit into
mainfrom
dependabot/npm_and_yarn/js-tooling-e0f28bc5e2
Aug 25, 2026
Merged

chore: bump the js-tooling group with 3 updates#118
BartWaardenburg merged 1 commit into
mainfrom
dependabot/npm_and_yarn/js-tooling-e0f28bc5e2

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 23, 2026

Copy link
Copy Markdown
Contributor

Bumps the js-tooling group with 3 updates: fallow, oxfmt and oxlint.

Updates fallow from 3.14.0 to 3.16.0

Release notes

Sourced from fallow's releases.

v3.16.0: honest template scoring, prunable audit cache, visible demotion

Health scoring gets more honest and more configurable in this release: template-family units drop the CRAP dimension they could never earn coverage for, Svelte {#snippet} blocks are scored as their own units, and thresholdOverrides finally reach file scores and refactoring targets. The audit cache becomes observable and prunable, new-only duplication demotion is no longer invisible, and a batch of correctness fixes lands across the type-aware sidecar, manual-mock detection, and the resolver.

Features

  • fallow audit-cache prune: the audit cache garbage collector now explains what it does, and a new audit-cache prune subcommand removes stale entries on demand. --dry-run previews the policy without touching disk, --max-age-days overrides the age ceiling (flag, then FALLOW_AUDIT_CACHE_MAX_AGE_DAYS, then audit.cacheMaxAgeDays, then the 30-day default), and the JSON maintenance envelope reports per-entry dispositions with reclaimed_bytes counting only bytes actually removed from disk. Legacy git registrations that are only deregistered report under deregistered and are never counted as reclaimed. RUST_LOG=fallow=debug surfaces per-entry GC decisions during normal audit runs. (#2221)
  • Observable duplication demotion: when --gate new-only demotes an introduced clone group to inherited, the decision is now visible. Demoted entries carry demotion_reason (currently no-added-lines), audit-family JSON always includes attribution.duplication_demoted, and --explain prints the demotion decision with the diff source it used. (#2220)
  • Svelte {#snippet} blocks are their own complexity units: top-level snippets score as <snippet:NAME> units with nesting rebased to zero, so extracting markup into a snippet moves the score. Snippet units are exact-match keys for health.thresholdOverrides[].functions. (#2227)
  • Broader declarative plugin manifests: typed manifest field paths with bounded [*] object-array traversal and exact exists predicates, strict JSON rules that reject JSONC input, and deterministic plugin-check limit diagnostics. Thanks @​M-Hassan-Raza. (#2165)

Health scoring changes

  • Template-family units no longer participate in the CRAP dimension: a template carries no direct test coverage, so \<template> and <snippet:NAME> findings gate on the cyclomatic and cognitive dimensions only and never report crap, coverage_pct, or coverage_tier. A maxCrap override scoped to a template unit reports a matched row explaining the entry can be removed. (#2235)
  • thresholdOverrides and maxCrap reach file scores and refactoring targets: file scoring and the add_test_coverage target rule now compare CRAP against the effective per-function ceiling instead of a fixed 30. Rows whose breaches were let through by configuration carry crap_exempted and crap_effective_threshold. (#2228)

Bug fixes

  • Windows: --gate new-only no longer fails on pre-existing findings: the base-snapshot focus set is built from git rev-parse --show-toplevel, whose spelling can differ from the canonicalized project root (8.3 path components, drive-letter case), so no path mapped into the base worktree and the base dead-code results were filtered away entirely. Every inherited finding then looked introduced and failed the gate. Path matching now compares simplified and canonicalized forms, and a base run whose focus set cannot be expressed leaves its results unfiltered.
  • jest/vitest __mocks__ parity: vitest root-level __mocks__ manual mocks for node modules are no longer reported as unused files, and literal X/__mocks__ imports and the /__mocks__ virtual package suffix now follow each framework's actual semantics. (#2225, #2226)
  • Type-aware sidecar and root typescript stay in lockstep: the root lockfile pins the same typescript the sidecar needs, and a new preflight exits with a message naming the resolved version, its path, and the install command when the resolvable install is missing or too old, instead of a bare module-resolution error. (#2236)
  • No wasted sidecar work when private-type-leaks is off: the type-aware layer only requests the api-surface capability when the check is active, pinned by an end-to-end config test in both directions. (#2218, #2219)
  • MCP audit tool description matches the payload: the description now documents the nested complexity block that audit JSON actually carries. (#2217)
  • Effective barrel exports resolve through one binding model: explicit-over-star precedence, ambiguous star origins vs convergent diamonds, separate type and value namespaces, and canonical binding identity now hold through usage propagation, public exports, duplicate analysis, trace provenance, caches, and the type-aware sidecar. Thanks @​M-Hassan-Raza. (#2210)
  • Package tooling stays out of production reachability: build and tooling scripts no longer make devDependencies look like production dependencies. Thanks @​Jerc92. (#2211)
  • Partial GitLab review posts now warn: inline-review jobs surface a warning when posting only partially succeeds instead of reporting clean success. Thanks @​Jerc92. (#2209)
  • Scoped-package manual mocks: factory-less jest.mock/vi.mock of a scoped package no longer fabricates an unused-file candidate. (#2213)

Performance

A broad sweep across extraction, engine, and core: direct CSS color parsing (with recovery semantics, non-RGB color recovery, and !important ordering preserved), reused CSS class inventories, lazy styling-token candidates, cached built-in and default-entry plugin matchers, a lazy plugin matcher cache, cached production exclude globsets, compacted source discovery globs, skipped side-effect export indexes and irrelevant package scans, and single-pass Markdown escaping.

Full Changelog: fallow-rs/fallow@v3.15.0...v3.16.0

v3.15.0: near-miss clone detection, diagnosable threshold overrides, community bug fixes

Highlights

Near-miss clone detection and smarter duplicate triage

fallow dupes --near (config duplicates.near) now also detects function-scoped clones with small structural edits, reported with a similarity score. Every clone-group finding carries a new spread field, and --top ranking boosts clones scattered across distant files above local ones, so the duplicates worth consolidating first rise to the top. A new duplicates.ignoredClones list ("dup:<fingerprint>:<instance_count>") silences clone groups a reviewer has accepted; fingerprints hash the normalized token sequence, so formatting-only edits keep a reviewed clone recognized.

Threshold overrides are finally diagnosable (health schema 10)

A health.thresholdOverrides entry that did not silence a finding now tells you why: every override row carries a required dimension (complexity or crap), a new insufficient status marks an override that raises a ceiling the code still exceeds, and an optional outstanding[] lists the dimensions a matched unit still breaches. Overrides now also apply to synthetic \<template> findings in Svelte, Vue, and Astro single-file components, and those findings get a framework-correct suppression hint (<!-- fallow-ignore-next-line complexity --> on the line above the reported line) instead of Angular decorator advice. A follow-up pass made the override rows agree with their findings everywhere: the <component> rollup consults the override resolver, outstanding no longer swaps dimensions between same-named units, status is scored across ceilings, and CodeClimate plus GitHub annotations quote the effective threshold instead of the run-global one. Standalone health and combined output move to schema_version 10; audit output does not embed the health contract and stays at 9. Thanks @​lcestou for the report.

Bug fixes

  • Type-aware analysis respects an explicit "private-type-leaks": "off". Enabling typeAware force-enabled the opt-in rule regardless of config, which also made the api-surface sidecar capability mandatory. The explicit setting now wins; unset configs keep the default-on behavior. Thanks @​thewirv.
  • cacheMaxAgeDays and FALLOW_AUDIT_CACHE_MAX_AGE_DAYS actually reclaim audit caches now. The base-snapshot cache GC only visited entries under the current repo's hash prefix, so caches from linked worktrees accumulated forever. Abandoned entries from other repo identities now age out, live owners are skipped (a repo's own 0 cannot be defeated from outside), and invalid env values warn instead of silently falling back. Thanks @​EvanAgee.
  • --gate new-only no longer fails clone-removal refactors. Extracting a shared helper and deleting duplicate instances shifted the clone group's attribution key and made the surviving duplication look introduced. Groups whose instances contain no added line are now demoted to inherited, while a genuinely pasted clone still fails the gate. Thanks @​devmax128.
  • Framework template findings show which conditions caused them. A \<template> complexity finding in Vue, Angular, Svelte, or Astro now reports each decision point at its own line and column with the weight it added, so the VS Code inline breakdown and health --complexity-breakdown work in templates too. Thanks @​Ericlm.

... (truncated)

Commits
  • 45fd287 chore: release v3.16.0
  • aec0bd0 test(audit-cache): ignore lazy directory mtimes in the prune snapshot
  • fb44ef4 fix(audit): keep base attribution when the focus remap fails
  • 88507a5 test(audit): dump full base snapshot keys in the demotion assert
  • defaf59 test(audit): dump base duplicate-export keys in the demotion assert
  • 008e2b2 test(audit): surface verdict context in the reshaped-clone demotion assert
  • 8cde8ee build(scripts): fail loudly when node resolution escapes the checkout (#2261)
  • 400835b fix(audit-cache): stop counting deregistered legacy entries as reclaimed (#2260)
  • 74f5a84 perf(core): cache default entry matchers
  • 4a2c8cb docs(quality-gates): root npm ci suffices for type-aware test targets (#2259)
  • Additional commits viewable in compare view

Updates oxfmt from 0.62.0 to 0.63.0

Changelog

Sourced from oxfmt's changelog.

Changelog

All notable changes to this package will be documented in this file.

The format is based on Keep a Changelog.

[0.64.0] - 2026-08-18

🚀 Features

  • c07fe7c oxfmt: Support experimentalOperatorPosition (#25643) (leaysgur)

📚 Documentation

  • fed6681 oxfmt: Skip expanding overrides options (#25572) (leaysgur)
Commits
  • c42d639 release(apps): oxlint v1.78.0 && oxfmt v0.63.0 (#25473)
  • 00f490d refactor(oxfmt,formatter): split sortImports validation and use type enum (...
  • See full diff in compare view

Updates oxlint from 1.77.0 to 1.78.0

Changelog

Sourced from oxlint's changelog.

[1.78.0] - 2026-08-10

🚀 Features

  • ccb8fe8 linter/jsdoc: Implement no-blank-blocks rule (#25207) (Mikhail Baev)
  • d4a897c linter/eslint: Implement one-var rule (#24470) (Cole Ellison)
  • 5ab9340 linter/jsx-a11y/anchor-has-content: Add options to match eslint (#24571) (Cole Ellison)

🐛 Bug Fixes

  • 9573937 linter/typescript: Validate ban-ts-comment description_format (#25320) (Mikhail Baev)
Commits
  • c42d639 release(apps): oxlint v1.78.0 && oxfmt v0.63.0 (#25473)
  • ccb8fe8 feat(linter/jsdoc): implement no-blank-blocks rule (#25207)
  • 9573937 fix(linter/typescript): validate ban-ts-comment description_format (#25320)
  • d4a897c feat(linter/eslint): implement one-var rule (#24470)
  • 5ab9340 feat(linter/jsx-a11y/anchor-has-content): add options to match eslint (#24571)
  • See full diff in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions

Bumps the js-tooling group with 3 updates: [fallow](https://github.com/fallow-rs/fallow), [oxfmt](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt) and [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint).


Updates `fallow` from 3.14.0 to 3.16.0
- [Release notes](https://github.com/fallow-rs/fallow/releases)
- [Changelog](https://github.com/fallow-rs/fallow/blob/main/release.toml)
- [Commits](fallow-rs/fallow@v3.14.0...v3.16.0)

Updates `oxfmt` from 0.62.0 to 0.63.0
- [Release notes](https://github.com/oxc-project/oxc/releases)
- [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxfmt/CHANGELOG.md)
- [Commits](https://github.com/oxc-project/oxc/commits/oxfmt_v0.63.0/npm/oxfmt)

Updates `oxlint` from 1.77.0 to 1.78.0
- [Release notes](https://github.com/oxc-project/oxc/releases)
- [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md)
- [Commits](https://github.com/oxc-project/oxc/commits/oxlint_v1.78.0/npm/oxlint)

---
updated-dependencies:
- dependency-name: fallow
  dependency-version: 3.16.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: js-tooling
- dependency-name: oxfmt
  dependency-version: 0.63.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: js-tooling
- dependency-name: oxlint
  dependency-version: 1.78.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: js-tooling
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Aug 23, 2026
@codspeed-hq

codspeed-hq Bot commented Aug 23, 2026

Copy link
Copy Markdown

Merging this PR will regress 4 benchmarks

⚠️ Different runtime environments detected

Some benchmarks with significant performance changes were compared across different runtime environments,
which may affect the accuracy of the results.

Open the report in CodSpeed to investigate

⚡ 4 improved benchmarks
❌ 4 regressed benchmarks
✅ 180 untouched benchmarks
⏩ 76 skipped benchmarks1

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Benchmark BASE HEAD Efficiency
serialize_large_100k_segments_no_content_to_json 17.1 ms 20 ms -14.64%
lite_paths_chartjs_lazy_fast 9.6 ms 11.1 ms -13.88%
serialize_large_100k_segments_no_content_to_writer 19.6 ms 22.6 ms -12.93%
serialize_medium_10k_segments_to_json 2.2 ms 2.5 ms -12.02%
real_world_lookup_single[Preact] srcmap WASM buf 181.2 µs 72.5 µs ×2.5
real_world_lookup_single[Preact] srcmap WASM flat 231.9 µs 121.5 µs +90.91%
real_world_lookup_single[Preact] source-map-js 830.3 µs 723.2 µs +14.8%
lite_paths_pdfjs_lazy_fast 43.5 ms 38.1 ms +14.09%

Tip

Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.


Comparing dependabot/npm_and_yarn/js-tooling-e0f28bc5e2 (eb7bc34) with main (7dc9514)

Open in CodSpeed

Footnotes

  1. 76 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@BartWaardenburg
BartWaardenburg merged commit 6055f33 into main Aug 25, 2026
24 of 26 checks passed
@dependabot
dependabot Bot deleted the dependabot/npm_and_yarn/js-tooling-e0f28bc5e2 branch August 25, 2026 09:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant