|
11 | 11 |
|
12 | 12 | ## [Unreleased] |
13 | 13 |
|
| 14 | +## [0.3.0] - 2026-11-05 |
| 15 | + |
| 16 | +### Added |
| 17 | + |
| 18 | +- `cargo fallow hooks install --target agent` installs a gate for Claude Code |
| 19 | + and Codex. The gate blocks a `git commit` or a `git push` of the agent when |
| 20 | + `cargo fallow check` finds a new finding in the changed files, and it lists |
| 21 | + each finding. A finding that the base commit already has does not block. An |
| 22 | + error of the tool does not block. |
| 23 | +- `cargo fallow hooks install --target git` installs the same check as a git |
| 24 | + pre-commit hook. `hooks uninstall` removes the files, and `hooks status` |
| 25 | + shows them. `--format json` gives the `hooks` and `hooks-status` documents. |
| 26 | +- The `cargo-fallow` skill in `skills/cargo-fallow/SKILL.md` tells a coding |
| 27 | + agent how to run each command, read the JSON output and fix the findings |
| 28 | + after a block of the gate. |
| 29 | +- `cargo fallow agent install` sets up a repository for coding agents in one |
| 30 | + step: a guide block in `AGENTS.md`, the `cargo-fallow` skill for Claude Code |
| 31 | + and Codex, and the commit gate. `agent status` shows the parts, and `agent |
| 32 | + uninstall` removes them. `cargo fallow init --agents` runs `agent install`. |
| 33 | +- The `cargo-fallow` skill has a Codex interface file, |
| 34 | + `skills/cargo-fallow/agents/openai.yaml`, with its display name and a |
| 35 | + default prompt. |
| 36 | +- `cargo fallow api --public-crate <CRATE>` replaces `public-crates` for one |
| 37 | + run. `--all-published` reads each published library and ignores the table. |
| 38 | +- `consumers` of `[workspace.metadata.fallow.visibility]` lists the manifests |
| 39 | + of separate workspaces whose code uses the items of the workspace, for |
| 40 | + example `fuzz/Cargo.toml`. A use in their code counts, so `visibility` does |
| 41 | + not report an item that a fuzz target calls, and `fix` does not narrow it. |
| 42 | + Without the key, `fuzz/Cargo.toml` is a consumer when it exists. The `fix` |
| 43 | + guard also checks each consumer workspace. |
| 44 | +- A `boundaries.sources` rule reports an `allow` entry whose file has fewer |
| 45 | + matches than `max`, with the actual count. The finding has the kind |
| 46 | + `allow-entry`, so the list stays exact. |
| 47 | +- An `allow` entry takes `require = ["pattern"]`. The entry then passes only |
| 48 | + when the file contains each required pattern. |
| 49 | + |
| 50 | +### Changed |
| 51 | + |
| 52 | +- `cargo fallow init --ci github` writes `fallow-rs/cargo-fallow@v0` in the |
| 53 | + workflow. Before, it wrote `@main`, which runs the action of the newest |
| 54 | + commit and not of a release. `v0` is the newest 0.x release. |
| 55 | +- A `dead-public` finding and a finding with `test_only: true` are no longer |
| 56 | + `auto_fixable`. A smaller keyword on such an item makes the compiler report |
| 57 | + dead code. A `dead-public` finding has a second action, `remove-item`. |
| 58 | + |
| 59 | +### Fixed |
| 60 | + |
| 61 | +- `cargo fallow fix` no longer stops the whole run for one edit that adds a |
| 62 | + compiler warning or error. It leaves out that edit, applies the others and |
| 63 | + exits 0. Each left-out edit has a `skip_reason` (`compiler_error` or |
| 64 | + `compiler_warning`) and the compiler message in `diagnostic`. A message that |
| 65 | + names no item leaves out the edit at a line of its spans, or else the edits |
| 66 | + of its file. |
| 67 | +- The `fix` guard now counts a new `dead_code` warning, so an edit that makes |
| 68 | + the compiler report dead code is left out. |
| 69 | +- `cargo fallow api --base <REF>` now reads the same libraries that |
| 70 | + `visibility` treats as an external API. When `public-crates` of |
| 71 | + `[workspace.metadata.fallow.visibility]` is set, the command reads only the |
| 72 | + libraries that `public-crates` and `exclude-crates` name. A narrowed item of |
| 73 | + an internal crate is then no `removed` finding. |
| 74 | +- The GitHub Action and the GitLab CI template now work with a jq that ends |
| 75 | + each line with CRLF, as jq on Windows does. The gate outputs, the |
| 76 | + annotation count, the job summary and the GitLab note pages no longer keep |
| 77 | + a CR. With bash 3.2, the GitLab comment step could loop without end. A |
| 78 | + comment compare now ignores each CR. The script tests run a second time |
| 79 | + with such a jq. |
| 80 | + |
14 | 81 | ## [0.2.0] - 2026-11-05 |
15 | 82 |
|
16 | 83 | ### Added |
|
0 commit comments