Fallow - Codebase Intelligence
Version updated for https://github.com/fallow-rs/fallow to version v2.60.0.
- This action is used across all versions by 32 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 codebases that identifies and helps eliminate unused code, duplication, complexity, and architectural issues, with optional runtime insights for production behavior. It automates the process of analyzing code health, enabling developers to clean up their codebases, enforce best practices, and review changes more efficiently. With its zero-configuration setup and sub-second performance, Fallow provides a comprehensive, project-wide view of code quality without requiring a Node.js runtime.
What’s Changed
Highlights
includeEntryExportsis now a config option, and--include-entry-exportsis a global CLI flag. Persistently opt in to entry-file export validation via"includeEntryExports": truein your fallow config, or pass the flag once on combined mode (fallow --include-entry-exports). Previously the bare combined invocation rejected the flag because it was only defined on thedead-codesubcommand.- SCSS / Sass
@use 'X'no longer resolves to a siblingX.tsx. Stylesheet importers now reject standard-resolver hits on JS/TS-family extensions and route through SCSS-aware fallbacks instead, eliminating phantom circular dependencies in standard CSS-modules / AngularstyleUrlspatterns.
Added
includeEntryExportsconfig option. Set"includeEntryExports": true(JSON / JSONC) orincludeEntryExports = true(TOML) in your fallow config. The CLI flag ORs with the config value when set.--include-entry-exportsis now a global flag. Accepted on combined mode (fallow --include-entry-exports),fallow dead-code,fallow audit, andfallow watch(with the override applied at every config reload).include_entry_exportsMCP param on theaudittool. Sibling-tool parity withanalyzeandcheck_changed. Forwards--include-entry-exportsto the dead-code sub-pass.- Stable-API listings updated.
--include-entry-exportsandincludeEntryExportsare now part ofdocs/backwards-compatibility.mdand follow the project’s semver guarantees.
Thanks @filipw01 for the report. (Closes #249)
Fixed
- SCSS / Sass
@use 'X'no longer resolves to a siblingX.tsx. When bothWidget.scssandWidget.tsxexist next to each other and a.scssimporter does@use 'Widget', fallow now resolves the import toWidget.scssper Sass’s actual resolution algorithm. Stylesheet importers now reject any standard-resolver hit whose extension is a JS/TS-family extension (.tsx,.ts,.mts,.cts,.js,.jsx,.mjs,.cjs) and re-route through the SCSS-aware fallback chain (CSS-extension probe,_filenamepartial convention, framework include paths,node_moduleswalk-up). When those also fail, the import is reported as unresolved instead of falling through to JS/TS extensions. This eliminates phantom 3-file circular dependencies in standard CSS-modules / AngularstyleUrlspatterns where the.tsxcomponent imports its own.scssand a sibling.scssshares variables/mixins via@use. Thanks @OmerGronich for the precise reproduction and the suggested fix. (Closes #245)
Full Changelog: https://github.com/fallow-rs/fallow/compare/v2.59.0...v2.60.0