fallow 3.7.1 → 3.8.1

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.7.1",
3
+ "version": "3.8.1",
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": [
@@ -1952,6 +1952,40 @@
1952
1952
  ]
1953
1953
  }
1954
1954
  ]
1955
+ },
1956
+ {
1957
+ "name": "viz",
1958
+ "description": "Generate an interactive HTML map of the codebase",
1959
+ "flags": [
1960
+ {
1961
+ "name": "--out",
1962
+ "type": "string",
1963
+ "required": false,
1964
+ "description": "Output file path (default: fallow-viz.html in project root)"
1965
+ },
1966
+ {
1967
+ "name": "--no-open",
1968
+ "type": "bool",
1969
+ "required": false,
1970
+ "description": "Don't open the output file in the browser",
1971
+ "possible_values": [
1972
+ "true",
1973
+ "false"
1974
+ ]
1975
+ },
1976
+ {
1977
+ "name": "--viz-format",
1978
+ "type": "string",
1979
+ "required": false,
1980
+ "description": "Visualization output format",
1981
+ "default": "html",
1982
+ "possible_values": [
1983
+ "html",
1984
+ "dot",
1985
+ "mermaid"
1986
+ ]
1987
+ }
1988
+ ]
1955
1989
  }
1956
1990
  ],
1957
1991
  "default_command": null,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fallow",
3
- "version": "3.7.1",
3
+ "version": "3.8.1",
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": {
@@ -84,16 +84,16 @@
84
84
  "detect-libc": "2.1.2"
85
85
  },
86
86
  "devDependencies": {
87
- "@tanstack/intent": "0.3.5"
87
+ "@tanstack/intent": "0.3.6"
88
88
  },
89
89
  "optionalDependencies": {
90
- "@fallow-cli/darwin-arm64": "3.7.1",
91
- "@fallow-cli/darwin-x64": "3.7.1",
92
- "@fallow-cli/linux-x64-gnu": "3.7.1",
93
- "@fallow-cli/linux-arm64-gnu": "3.7.1",
94
- "@fallow-cli/linux-x64-musl": "3.7.1",
95
- "@fallow-cli/linux-arm64-musl": "3.7.1",
96
- "@fallow-cli/win32-arm64-msvc": "3.7.1",
97
- "@fallow-cli/win32-x64-msvc": "3.7.1"
90
+ "@fallow-cli/darwin-arm64": "3.8.1",
91
+ "@fallow-cli/darwin-x64": "3.8.1",
92
+ "@fallow-cli/linux-x64-gnu": "3.8.1",
93
+ "@fallow-cli/linux-arm64-gnu": "3.8.1",
94
+ "@fallow-cli/linux-x64-musl": "3.8.1",
95
+ "@fallow-cli/linux-arm64-musl": "3.8.1",
96
+ "@fallow-cli/win32-arm64-msvc": "3.8.1",
97
+ "@fallow-cli/win32-x64-msvc": "3.8.1"
98
98
  }
99
99
  }
@@ -122,6 +122,7 @@ Route by intent before reaching for the big analysis commands. Same matrix as `f
122
122
  | `coverage` | Runtime coverage setup, focused analysis, and cloud inventory workflow helper | `setup`, `setup --yes`, `setup --non-interactive`, `analyze --runtime-coverage <path>`, `analyze --cloud --repo owner/repo`, `upload-inventory` |
123
123
  | `coverage upload-source-maps` | Upload build source maps from CI so bundled runtime coverage resolves to original source paths. Retries 429 `Retry-After` and transient gateway failures. Use `FALLOW_CA_BUNDLE` for complete custom PEM trust bundles. | `--dir dist`, `--git-sha <sha>`, `--repo <name>`, `--strip-path=false`, `--dry-run` |
124
124
  | `setup-hooks` | Install or remove a Claude Code PreToolUse hook that gates `git commit` / `git push` on `fallow audit`, so the agent cleans findings before the command runs | `--agent`, `--dry-run`, `--force`, `--user`, `--gitignore-claude`, `--uninstall` |
125
+ | `viz` | Render the codebase as a self-contained interactive HTML map (treemap + import graph, four lenses: dead code, duplication, boundaries, complexity, with click-through detail panels), or emit the import graph as text. Read-only. | `--out <path>`, `--no-open`, `--viz-format html\|dot\|mermaid`, `--root`, `--config`, `--production`, `--no-cache` |
125
126
 
126
127
  Run `fallow <command> --help` for the full flag list per command (see also references/cli-reference.md).
127
128
  <!-- generated:commands:end -->
@@ -510,7 +510,7 @@ fallow health --format json --quiet --trend
510
510
  {
511
511
  "kind": "health",
512
512
  "schema_version": 7,
513
- "version": "3.7.1",
513
+ "version": "3.8.0",
514
514
  "elapsed_ms": 32,
515
515
  "summary": {
516
516
  "files_analyzed": 482,
@@ -908,7 +908,7 @@ fallow audit \
908
908
  {
909
909
  "kind": "audit",
910
910
  "schema_version": 7,
911
- "version": "3.7.1",
911
+ "version": "3.8.0",
912
912
  "command": "audit",
913
913
  "verdict": "fail",
914
914
  "changed_files_count": 12,
@@ -930,7 +930,9 @@ fallow audit \
930
930
  "complexity_introduced": 1,
931
931
  "complexity_inherited": 0,
932
932
  "duplication_introduced": 0,
933
- "duplication_inherited": 0
933
+ "duplication_inherited": 0,
934
+ "styling_introduced": 0,
935
+ "styling_inherited": 0
934
936
  },
935
937
  "dead_code": {
936
938
  "schema_version": 3,
@@ -946,7 +948,7 @@ fallow audit \
946
948
  }
947
949
  ```
948
950
 
949
- The `verdict` field is always present and is the primary decision signal. With the default `new-only` gate, the `attribution` object counts introduced vs inherited findings and audit sub-results annotate individual findings with `introduced: true/false`. With `gate=all`, audit skips that extra base-snapshot attribution pass, so introduced/inherited counts stay `0` and per-finding `introduced` fields are omitted. Dead code, complexity, and duplication sections follow their respective schemas from the individual commands. Thresholds for complexity are inherited from `fallow health` config (defaults: cyclomatic 20, cognitive 15).
951
+ The `verdict` field is always present and is the primary decision signal. With the default `new-only` gate, the `attribution` object counts introduced vs inherited findings across dead code, complexity, duplication, and styling, and audit sub-results annotate individual findings with `introduced: true/false`. With `gate=all`, audit skips that extra base-snapshot attribution pass, so introduced/inherited counts stay `0` and per-finding `introduced` fields are omitted. Dead code, complexity, and duplication sections follow their respective schemas from the individual commands. Thresholds for complexity are inherited from `fallow health` config (defaults: cyclomatic 20, cognitive 15).
950
952
 
951
953
  Audit creates a temporary git worktree to compare against the base ref. When the current checkout has `node_modules`, audit links it into the base worktree so tsconfig `extends` chains into installed packages and path aliases resolve like the working tree. The worktree is removed on normal exit. If the process is force-killed, run `git worktree prune` to clean up stale `.git/worktrees/fallow-audit-base-*` entries.
952
954
 
@@ -983,7 +985,7 @@ fallow flags --format json --quiet --workspace my-package
983
985
  ```json
984
986
  {
985
987
  "schema_version": 7,
986
- "version": "3.7.1",
988
+ "version": "3.8.0",
987
989
  "elapsed_ms": 116,
988
990
  "feature_flags": [],
989
991
  "total_flags": 0
@@ -1084,7 +1086,7 @@ fallow security --gate newly-reachable --changed-since origin/main
1084
1086
  {
1085
1087
  "kind": "security",
1086
1088
  "schema_version": "4",
1087
- "version": "3.7.1",
1089
+ "version": "3.8.0",
1088
1090
  "elapsed_ms": 42,
1089
1091
  "config": {
1090
1092
  "rules": {
@@ -1113,7 +1115,7 @@ fallow security --gate newly-reachable --changed-since origin/main
1113
1115
  {
1114
1116
  "kind": "security",
1115
1117
  "schema_version": "4",
1116
- "version": "3.7.1",
1118
+ "version": "3.8.0",
1117
1119
  "elapsed_ms": 42,
1118
1120
  "config": {
1119
1121
  "rules": {
@@ -1838,7 +1840,7 @@ The HTTP layer mirrors the bash `gh_api_retry` / `curl_retry` helpers: `FALLOW_A
1838
1840
  {
1839
1841
  "kind": "dead-code",
1840
1842
  "schema_version": 7,
1841
- "version": "3.7.1",
1843
+ "version": "3.8.0",
1842
1844
  "elapsed_ms": 45,
1843
1845
  "total_issues": 12,
1844
1846
  "entry_points": {
@@ -1998,7 +2000,7 @@ When `--baseline` is used in combined output, the JSON includes a `baseline_delt
1998
2000
  {
1999
2001
  "kind": "dupes",
2000
2002
  "schema_version": 7,
2001
- "version": "3.7.1",
2003
+ "version": "3.8.0",
2002
2004
  "elapsed_ms": 82,
2003
2005
  "total_clones": 15,
2004
2006
  "total_lines_duplicated": 230,
@@ -2042,11 +2044,11 @@ When running `fallow` with no subcommand (all analyses), the JSON output combine
2042
2044
  {
2043
2045
  "kind": "combined",
2044
2046
  "schema_version": 7,
2045
- "version": "3.7.1",
2047
+ "version": "3.8.0",
2046
2048
  "elapsed_ms": 159,
2047
2049
  "check": {
2048
2050
  "schema_version": 7,
2049
- "version": "3.7.1",
2051
+ "version": "3.8.0",
2050
2052
  "elapsed_ms": 45,
2051
2053
  "total_issues": 12,
2052
2054
  "unused_files": [],
@@ -961,6 +961,8 @@ complexity_introduced: number
961
961
  complexity_inherited: number
962
962
  duplication_introduced: number
963
963
  duplication_inherited: number
964
+ styling_introduced: number
965
+ styling_inherited: number
964
966
  }
965
967
  /**
966
968
  * Metric and rule definitions emitted under `_meta` when `--explain` is
@@ -7155,6 +7157,10 @@ fix_hint?: (string | null)
7155
7157
  * Suggested next steps (verify / suppress; never an auto-fix).
7156
7158
  */
7157
7159
  actions: CssCandidateAction[]
7160
+ /**
7161
+ * Audit-mode flag indicating whether the finding is new versus the base snapshot.
7162
+ */
7163
+ introduced?: (boolean | null)
7158
7164
  }
7159
7165
  /**
7160
7166
  * Envelope emitted by `fallow explain <issue-type> --format json`.