Update fallow-rs/fallow action to v3.16.0 - #643
Merged
Conversation
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.
This PR contains the following updates:
v3.15.0→v3.16.0Release Notes
fallow-rs/fallow (fallow-rs/fallow)
v3.16.0: : honest template scoring, prunable audit cache, visible demotionCompare Source
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, andthresholdOverridesfinally 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 newaudit-cache prunesubcommand removes stale entries on demand.--dry-runpreviews the policy without touching disk,--max-age-daysoverrides the age ceiling (flag, thenFALLOW_AUDIT_CACHE_MAX_AGE_DAYS, thenaudit.cacheMaxAgeDays, then the 30-day default), and the JSON maintenance envelope reports per-entry dispositions withreclaimed_bytescounting only bytes actually removed from disk. Legacy git registrations that are only deregistered report underderegisteredand are never counted as reclaimed.RUST_LOG=fallow=debugsurfaces per-entry GC decisions during normal audit runs. (#2221)--gate new-onlydemotes an introduced clone group to inherited, the decision is now visible. Demoted entries carrydemotion_reason(currentlyno-added-lines), audit-family JSON always includesattribution.duplication_demoted, and--explainprints the demotion decision with the diff source it used. (#2220){#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 forhealth.thresholdOverrides[].functions. (#2227)[*]object-array traversal and exactexistspredicates, strict JSON rules that reject JSONC input, and deterministicplugin-checklimit diagnostics. Thanks @M-Hassan-Raza. (#2165)Health scoring changes
<template>and<snippet:NAME>findings gate on the cyclomatic and cognitive dimensions only and never reportcrap,coverage_pct, orcoverage_tier. AmaxCrapoverride scoped to a template unit reports a matched row explaining the entry can be removed. (#2235)thresholdOverridesandmaxCrapreach file scores and refactoring targets: file scoring and theadd_test_coveragetarget rule now compare CRAP against the effective per-function ceiling instead of a fixed 30. Rows whose breaches were let through by configuration carrycrap_exemptedandcrap_effective_threshold. (#2228)Bug fixes
--gate new-onlyno longer fails on pre-existing findings: the base-snapshot focus set is built fromgit 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.__mocks__parity: vitest root-level__mocks__manual mocks for node modules are no longer reported as unused files, and literalX/__mocks__imports and the/__mocks__virtual package suffix now follow each framework's actual semantics. (#2225, #2226)typescriptstay in lockstep: the root lockfile pins the sametypescriptthe 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)private-type-leaksis 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)audittool description matches the payload: the description now documents the nestedcomplexityblock that audit JSON actually carries. (#2217)jest.mock/vi.mockof 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
!importantordering 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
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.