fallow 3.10.0 → 3.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/capabilities.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fallow",
3
- "version": "3.10.0",
3
+ "version": "3.11.0",
4
4
  "manifest_version": "1",
5
5
  "description": "Codebase analyzer for TypeScript/JavaScript: unused code, circular dependencies, code duplication, complexity hotspots, and architecture boundary violations",
6
6
  "global_flags": [
@@ -128,6 +128,17 @@
128
128
  "required": false,
129
129
  "description": "Compare against a previously saved baseline file"
130
130
  },
131
+ {
132
+ "name": "--baseline-mode",
133
+ "type": "string",
134
+ "required": false,
135
+ "description": "How `--baseline` matches health findings: per file and category (`count`, the default) or per function identity (`identity`, strict, and only against a baseline that was saved with `--baseline-mode identity`; such a baseline still reads in count mode)",
136
+ "default": "count",
137
+ "possible_values": [
138
+ "count",
139
+ "identity"
140
+ ]
141
+ },
131
142
  {
132
143
  "name": "--parent-run",
133
144
  "type": "string",
@@ -5904,6 +5915,7 @@
5904
5915
  "FALLOW_PRODUCTION_HEALTH": "Set to true/false to override production mode for health analysis.",
5905
5916
  "FALLOW_PRODUCTION_DUPES": "Set to true/false to override production mode for duplication analysis.",
5906
5917
  "FALLOW_REVIEW_GUIDANCE": "Set to true to append collapsed guidance blocks to review-github/review-gitlab inline comment bodies.",
5918
+ "FALLOW_REVIEW_ID": "Stable 1-64 character identifier that isolates inline comments when multiple review jobs target the same PR/MR.",
5907
5919
  "FALLOW_SUMMARY_SCOPE": "Summary scope for pr-comment-github/pr-comment-gitlab: all (default) keeps project-level dependency/catalog/override findings outside the diff filter; diff applies the diff filter to them too. Inline review comments are unaffected.",
5908
5920
  "FALLOW_PR_COMMENT_LAYOUT": "Sticky PR comment layout: default, compact, gate-only, or details.",
5909
5921
  "FALLOW_CONSOLIDATED_STATUS": "When split PR gate check runs are enabled, truthy values add one aggregate Fallow check alongside the per-gate checks.",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fallow",
3
- "version": "3.10.0",
3
+ "version": "3.11.0",
4
4
  "description": "Codebase intelligence for TypeScript and JavaScript. Free static analysis of code and styles, optional paid runtime intelligence (Fallow Runtime). Quality, risk, architecture, dependencies, duplication, and design-system drift for humans, CI, and the agents writing your code. Zero-config framework support.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -87,14 +87,14 @@
87
87
  "@tanstack/intent": "0.3.6"
88
88
  },
89
89
  "optionalDependencies": {
90
- "@fallow-cli/darwin-arm64": "3.10.0",
91
- "@fallow-cli/darwin-x64": "3.10.0",
92
- "@fallow-cli/linux-x64-gnu": "3.10.0",
93
- "@fallow-cli/linux-arm64-gnu": "3.10.0",
94
- "@fallow-cli/linux-x64-musl": "3.10.0",
95
- "@fallow-cli/linux-arm64-musl": "3.10.0",
96
- "@fallow-cli/win32-arm64-msvc": "3.10.0",
97
- "@fallow-cli/win32-x64-msvc": "3.10.0",
90
+ "@fallow-cli/darwin-arm64": "3.11.0",
91
+ "@fallow-cli/darwin-x64": "3.11.0",
92
+ "@fallow-cli/linux-x64-gnu": "3.11.0",
93
+ "@fallow-cli/linux-arm64-gnu": "3.11.0",
94
+ "@fallow-cli/linux-x64-musl": "3.11.0",
95
+ "@fallow-cli/linux-arm64-musl": "3.11.0",
96
+ "@fallow-cli/win32-arm64-msvc": "3.11.0",
97
+ "@fallow-cli/win32-x64-msvc": "3.11.0",
98
98
  "fallow-type-aware": "3.10.0"
99
99
  }
100
100
  }
@@ -420,7 +420,7 @@ Angular templates contribute synthetic `<template>` complexity findings whenever
420
420
  | `--min-observation-volume` | `string` | - | Minimum total trace volume before the sidecar may emit high-confidence `safe_to_delete` / `review_required` verdicts. Below this, confidence is capped at `medium`. |
421
421
  | `--low-traffic-threshold` | `string` | - | Fraction of total trace count below which an invoked function is classified `low_traffic` rather than `active`. Expressed as a decimal (0.001 = 0.1%). |
422
422
 
423
- Common global flags for this command: [`--format`](#global-flags), [`--quiet`](#global-flags), [`--changed-since`](#global-flags), [`--churn-file`](#global-flags), [`--workspace`](#global-flags), [`--group-by`](#global-flags), [`--baseline`](#global-flags), [`--save-baseline`](#global-flags), [`--production`](#global-flags), [`--no-production`](#global-flags), [`--explain`](#global-flags).
423
+ Common global flags for this command: [`--format`](#global-flags), [`--quiet`](#global-flags), [`--changed-since`](#global-flags), [`--churn-file`](#global-flags), [`--workspace`](#global-flags), [`--group-by`](#global-flags), [`--baseline`](#global-flags), [`--baseline-mode`](#global-flags), [`--save-baseline`](#global-flags), [`--production`](#global-flags), [`--no-production`](#global-flags), [`--explain`](#global-flags).
424
424
  <!-- generated:flags:health:end -->
425
425
  ### Exit Codes
426
426
 
@@ -473,6 +473,10 @@ fallow health --format json --quiet --workspace my-package
473
473
  fallow health --format json --quiet --save-baseline fallow-baselines/health.json
474
474
  fallow health --format json --quiet --baseline fallow-baselines/health.json
475
475
 
476
+ # Strict adoption: a hotspot that replaces a baselined hotspot is reported
477
+ fallow health --format json --quiet --save-baseline fallow-baselines/health.json --baseline-mode identity
478
+ fallow health --format json --quiet --baseline fallow-baselines/health.json --baseline-mode identity
479
+
476
480
  # CI: fail if any function is too complex
477
481
  fallow health --max-cyclomatic 25 --max-cognitive 20 --quiet
478
482
 
@@ -1677,6 +1681,7 @@ Available on all commands:
1677
1681
  | `--churn-file` | `string` | - | Import change history from a `fallow-churn/v1` JSON file instead of `git log`, powering hotspots, ownership, and bus-factor on projects with no git repository (Yandex Arc, Mercurial, Perforce). A small wrapper translates your VCS log into the contract. Resolved relative to `--root`. Affects `health --hotspots` / `--ownership` / `--targets` only; `audit`, `impact`, and `--changed-since` still require git |
1678
1682
  | `--max-file-size` | `string` | - | Skip source files larger than this many megabytes (default 5) instead of parsing them, guarding against the out-of-memory blowup a single multi-MB generated/vendored/bundled file causes on large repos. Use `0` for no limit. Declaration files (`.d.ts`) are always analyzed. Skipped files are reported and excluded from every analysis. Also settable via `FALLOW_MAX_FILE_SIZE` |
1679
1683
  | `--baseline` | `string` | - | Compare to baseline |
1684
+ | `--baseline-mode` | `count\|identity` | `count` | How `--baseline` matches health findings: per file and category (`count`, the default) or per function identity (`identity`, strict, and only against a baseline saved with `--baseline-mode identity`; such a baseline still reads in count mode). Identity is file path plus function name, so renaming or moving a function that is still in the baseline reports it as new; re-save after that kind of refactor. |
1680
1685
  | `--parent-run` | `string` | - | Correlate this run with a previous telemetry analysis run |
1681
1686
  | `--save-baseline` | `string` | - | Save results as baseline |
1682
1687
  | `--production` | `bool` | `false` | Exclude test/dev files, only start/build scripts (applies to every analysis) |
@@ -747,6 +747,11 @@ export type ReviewProvider = ("github" | "gitlab")
747
747
  * GitHub Checks API conclusion field.
748
748
  */
749
749
  export type ReviewCheckConclusion = ("success" | "neutral" | "failure")
750
+ /**
751
+ * Stable identifier used to isolate independent review integrations on the
752
+ * same pull or merge request.
753
+ */
754
+ export type ReviewId = string
750
755
  /**
751
756
  * Schema-version discriminator for the review reconcile envelope.
752
757
  */
@@ -2124,19 +2129,21 @@ empty_catalog_groups?: EmptyCatalogGroupFinding[]
2124
2129
  */
2125
2130
  unresolved_catalog_references?: UnresolvedCatalogReferenceFinding[]
2126
2131
  /**
2127
- * Entries in pnpm-workspace.yaml's overrides: section, or package.json's
2128
- * pnpm.overrides block, whose target package is not declared by any
2129
- * workspace package and is not present in pnpm-lock.yaml. Default severity
2132
+ * Entries in pnpm-workspace.yaml's overrides: section, package.json's
2133
+ * pnpm.overrides block, or package.json's top-level npm overrides object,
2134
+ * whose target package is not declared by any workspace package and is
2135
+ * not present in pnpm-lock.yaml or package-lock.json. Default severity
2130
2136
  * is warn because projects without a readable lockfile fall back to
2131
2137
  * manifest-only checks; the hint field flags those conservative cases.
2132
2138
  * Wrapped in [`UnusedDependencyOverrideFinding`].
2133
2139
  */
2134
2140
  unused_dependency_overrides?: UnusedDependencyOverrideFinding[]
2135
2141
  /**
2136
- * pnpm.overrides entries whose key or value does not parse as a valid
2137
- * override spec (empty key, empty value, malformed selector, unbalanced
2138
- * parent matcher). pnpm install will reject these. Default severity is
2139
- * error. Wrapped in [`MisconfiguredDependencyOverrideFinding`].
2142
+ * pnpm.overrides or npm overrides entries whose key or value does not
2143
+ * parse as a valid override spec (empty key, empty value, malformed
2144
+ * selector, unbalanced parent matcher). The package manager will reject
2145
+ * these at install time. Default severity is error. Wrapped in
2146
+ * [`MisconfiguredDependencyOverrideFinding`].
2140
2147
  */
2141
2148
  misconfigured_dependency_overrides?: MisconfiguredDependencyOverrideFinding[]
2142
2149
  /**
@@ -8613,6 +8620,7 @@ export interface ReviewEnvelopeMeta {
8613
8620
  schema: ReviewEnvelopeSchema
8614
8621
  provider: ReviewProvider
8615
8622
  check_conclusion?: (ReviewCheckConclusion | null)
8623
+ review_id?: (ReviewId | null)
8616
8624
  }
8617
8625
  /**
8618
8626
  * Envelope emitted by `fallow ci reconcile-review --format json`. Used by
@@ -9401,19 +9409,21 @@ empty_catalog_groups?: EmptyCatalogGroupFinding[]
9401
9409
  */
9402
9410
  unresolved_catalog_references?: UnresolvedCatalogReferenceFinding[]
9403
9411
  /**
9404
- * Entries in pnpm-workspace.yaml's overrides: section, or package.json's
9405
- * pnpm.overrides block, whose target package is not declared by any
9406
- * workspace package and is not present in pnpm-lock.yaml. Default severity
9412
+ * Entries in pnpm-workspace.yaml's overrides: section, package.json's
9413
+ * pnpm.overrides block, or package.json's top-level npm overrides object,
9414
+ * whose target package is not declared by any workspace package and is
9415
+ * not present in pnpm-lock.yaml or package-lock.json. Default severity
9407
9416
  * is warn because projects without a readable lockfile fall back to
9408
9417
  * manifest-only checks; the hint field flags those conservative cases.
9409
9418
  * Wrapped in [`UnusedDependencyOverrideFinding`].
9410
9419
  */
9411
9420
  unused_dependency_overrides?: UnusedDependencyOverrideFinding[]
9412
9421
  /**
9413
- * pnpm.overrides entries whose key or value does not parse as a valid
9414
- * override spec (empty key, empty value, malformed selector, unbalanced
9415
- * parent matcher). pnpm install will reject these. Default severity is
9416
- * error. Wrapped in [`MisconfiguredDependencyOverrideFinding`].
9422
+ * pnpm.overrides or npm overrides entries whose key or value does not
9423
+ * parse as a valid override spec (empty key, empty value, malformed
9424
+ * selector, unbalanced parent matcher). The package manager will reject
9425
+ * these at install time. Default severity is error. Wrapped in
9426
+ * [`MisconfiguredDependencyOverrideFinding`].
9417
9427
  */
9418
9428
  misconfigured_dependency_overrides?: MisconfiguredDependencyOverrideFinding[]
9419
9429
  /**