Repository navigation
v2.71.0: typed fallow/types, pnpm unresolved-catalog detection, schema-generated VS Code types
·
3783 commits
to main
since this release
Highlights
- Typed JSON output via
import type ... from "fallow/types"for any TypeScript consumer ofnpx fallow --format json. The npmfallowpackage now ships the same generated.d.tsthe VS Code extension uses, withSchemaVersionpinned to literal6at codegen time so future major-version drift is a compile error at consumer call sites instead of silent breakage. (Closes #339) - New
unresolved-catalog-referencesrule flags pnpmcatalog:/catalog:<name>references whose target catalog has no entry for the consumed package.pnpm installfails withERR_PNPM_CATALOG_ENTRY_NOT_FOUND_FOR_CATALOG_PROTOCOLon these references; fallow surfaces them statically atfallow checktime, before any install. Each finding carries anavailable_in_catalogslist so agents and humans can flip the reference to a catalog that actually declares the package, and a config-onlyignoreCatalogReferences: [{ package, catalog?, consumer? }]array suppresses the case (staged catalog migrations, library-internal placeholders). (Closes #334) - VS Code extension TypeScript types are now generated from
docs/output-schema.jsoninstead of hand-maintained. The hand-written types had drifted repeatedly (most recently #323 crashing the Unused Code tree); the contract is now derived inprebuildand verified by a dedicated CIcheck:codegenstep. ExistingFallowCheckResult/FallowDupesResult/FallowCombinedResultaliases stay re-exported so consumer code keeps compiling. (Closes #326) - Supply-chain hardening: the release workflow now splits
npmandvsce/ovsxpublishing into separate prep (no token) and publish (id-token + token) jobs, runscargo publish --no-verifyso transitivebuild.rscannot readCARGO_REGISTRY_TOKEN, and pins every privileged publisher CLI (npm@11.14.1,@vscode/vsce,ovsx). Allnpm publishinvocations are--ignore-scripts. (#344)
Upgrade note
The new unresolved-catalog-references rule defaults to error. If your workspace already has a broken catalog reference, fallow check will flip from green on v2.70 to red on v2.71. To absorb the change without action, set the rule to warn in your fallow config:
Pin back to "error" once the broken references are resolved. Suppression is config-only (package.json has no comment syntax) via ignoreCatalogReferences.
Fixed
- Combined, audit, and
flagsJSON output emitschema_version: 6(was3). Three top-level envelope writers had hardcodedschema_version: 3independently of the centralSCHEMA_VERSIONconstant, so the barefallow --format jsoninvocation,fallow audit --format json, andfallow flags --format jsonstayed pinned at version 3 while every per-command output progressed through 4, 5, and 6. All three sites now read fromreport::SCHEMA_VERSIONdirectly. No--format jsonschema content changed; only the metadata field's value harmonized upward.
Security
- Drops the unmaintained
serde_yml 0.0.12crate (RUSTSEC-2025-0068, unsound segfault advisory) in favour ofserde_yaml_ng 0.10. One-lineuserename; no behavior change in the pnpm catalog parser.
Full Changelog: v2.70.0...v2.71.0
{ "rules": { "unresolved-catalog-references": "warn" } }