Skip to content

Commit fdcf25a

Browse files
chore: release v0.3.0
Signed-off-by: Bart Waardenburg <bart@waardenburg.dev>
1 parent d246942 commit fdcf25a

13 files changed

Lines changed: 69 additions & 84 deletions

‎CHANGELOG.md‎

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,73 @@ it.
1111

1212
## [Unreleased]
1313

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+
1481
## [0.2.0] - 2026-11-05
1582

1683
### Added

‎Cargo.lock‎

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎Cargo.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "cargo-fallow"
3-
version = "0.2.0"
3+
version = "0.3.0"
44
edition = "2024"
55
# The floor of fallow-report-protocol.
66
rust-version = "1.98"

‎changelog.d/feat-agent-gate.md‎

Lines changed: 0 additions & 10 deletions
This file was deleted.

‎changelog.d/feat-agent-install.md‎

Lines changed: 0 additions & 6 deletions
This file was deleted.

‎changelog.d/feat-boundaries-stale-allow.md‎

Lines changed: 0 additions & 7 deletions
This file was deleted.

‎changelog.d/feat-cargo-fallow-skill.md‎

Lines changed: 0 additions & 5 deletions
This file was deleted.

‎changelog.d/feat-skill-codex-interface.md‎

Lines changed: 0 additions & 5 deletions
This file was deleted.

‎changelog.d/feat-visibility-consumers.md‎

Lines changed: 0 additions & 8 deletions
This file was deleted.

‎changelog.d/fix-api-public-crates.md‎

Lines changed: 0 additions & 12 deletions
This file was deleted.

0 commit comments

Comments
 (0)