Fallow - Codebase Health
Version updated for https://github.com/fallow-rs/fallow to version v2.44.2.
- This action is used across all versions by 9 repositories.
Action Type
This is a Composite action.
Go to the GitHub Marketplace to find the latest changes.
Action Summary
Fallow is a static analysis tool for TypeScript and JavaScript that identifies unused code, duplication, complexity, and architectural issues across an entire codebase. It automates codebase cleanup and optimization, helping developers improve maintainability, enforce boundaries, and streamline AI-assisted development workflows. With its zero-configuration setup, sub-second performance, and optional runtime insights for production behavior, Fallow provides a comprehensive and efficient solution for code quality and health analysis.
What’s Changed
Interface-mediated class member usage, React Router 7 routes, and a crypto-rng dev-dep fix
Three targeted fixes landed on top of v2.44.1.
Fixes
- Class members used only through interface-typed bindings are no longer flagged unused (thanks @M-Hassan-Raza, #132). A class method called only via an interface-typed variable or parameter (e.g.
const strategy: VirtualScrollStrategy = ...; strategy.attach();whereFixedSizeScrollStrategy implements VirtualScrollStrategy) appeared as an unused class member because the access resolved to the interface name, not the implementer. The extractor now tracks type-annotated bindings (locals, parameters, class fields, parameter properties) alongsidenew ClassName()bindings, and the member-usage analysis propagates interface member accesses to every class thatimplementsthe interface. Same-named interface exports in separate files stay isolated byExportKey, so unrelated implementers do not silently credit each other. Real-world check on vite: 163 → 160 unused class members (3 false positives eliminated, zero new findings). react-router.config.tsroute modules with aroutesFnare honored. Config-driven route modules (import { flatRoutes } from "@react-router/fs-routes"; export default { routes: flatRoutes() }) are extracted the same way as staticroutes: [...]arrays, so route files referenced only through the filesystem convention are no longer reported as unused files in React Router 7 apps.rand 0.8re-pinned infallow-licensedev-dependencies. A Dependabot bump torand 0.9broke theOsRng+SignatureEncodingwiring used by test key generation; dev-deps stay on 0.8 until the signing path is ported to 0.9’s newTryRngCoretrait set.
Cache
- Cache version bumped 43 → 44. The new visitor handlers (parameter types, property types,
this.fieldaliases) produce additionalMemberAccessrecords, so warm caches must be invalidated on upgrade for users to pick up the fix without touching individual files.
Thanks
- @M-Hassan-Raza for #162, continuing an ongoing streak of contributor fixes to class-member detection.
Full Changelog: https://github.com/fallow-rs/fallow/compare/v2.44.1...v2.44.2