v2.88.0: lowercase -v, combined-mode dupes minOccurrences, public/ HTML assets
Features
- Lowercase
-vnow prints the version.fallow -v,fallow -V, andfallow --versionall print the version string. Lowercase-vis what the TS/JS toolchain uses for the version (node, npm, pnpm, yarn, bun, tsc), so it is now the primary short form, with-Vkept for back-compat. Thanks @rbalet for the report. (#916) - The duplication
minOccurrencesthreshold is reachable from the barefallowcommand and the VS Code extension. A new global--dupes-min-occurrences Nflag applies in combined mode (validated>= 2, falling back to the config value), and the extension gains afallow.duplication.minOccurrencessetting. The neighbouringfallow.duplication.thresholdsetting was also mislabeled: it is a duplication-percentage failure cap where0means no limit, and its default is now aligned to0to match the CLI. Thanks @rbalet for the report. (#894)
Bug fixes
- Root-relative HTML assets under
public/no longer report as unresolved or unused. When a real HTML entry references browser-root assets such as/js/key.pressed.jsor/style/index.css, resolution tries the existing document-root candidates first, then falls back to<root>/public/...for HTML importers only. JS/TS root-relative imports keep their existing behavior, and genuinely missing public assets still report. Thanks @cope for the report. (#915) - The VS Code extension now backfills its managed
fallowCLI binary. First-run acquisition targets the GitHub release tag matching the extension version, downloads bothfallow-lspandfallowwhen needed, and downloads only the missing CLI if an LSP binary already exists. Failed downloads offer retry, settings, and output-channel actions. Thanks @rbalet for the report. (#917) - Angular external templates now credit service members reached through untyped
inject()component fields. Component classes carry instance bindings for properties initialized withinject(Service)(or an alias such asinject as ngInject), so templates like{{ exampleService.onValueChange() }}mark the target service member as used. Same-namedinjectfunctions from non-Angular modules stay ignored. Thanks @OmerGronich for the report. (#911) - Bare
pnpm <binary>script invocations now credit declared dependencies. Commands such aspnpm envinfo --systemmark the matching declared package as used, while local script shorthands (pnpm build) and pnpm built-ins (pnpm install,pnpm add,pnpm test, ...) remain ignored. Thanks @cope for the report. (#914) - Class members used through local structurally typed function parameters are no longer reported as unused. When a concrete class instance is passed directly as
new Class()or via a constructor-bound local into a same-file function whose typed parameter reads specific members, fallow credits only those concrete members. Unrelated members still report. Thanks @palisarbaro for the report. (#910)
Full Changelog: v2.87.0...v2.88.0