You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 42a5a9d
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: docs/changelog.md
+44Lines changed: 44 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,6 +11,7 @@ below and to the page that documents the feature properly.
11
11
12
12
| Version | What changed | Documented in |
13
13
|---|---|---|
14
+
|[2.17.0](#v2170)| Concrete corrections for mechanical slips; a `warn` level per rule |[Reading the JSON](example.md#reading-the-json) · [Report without enforcing](configuration.md#report-a-rule-without-enforcing-it)|
14
15
|[2.16.0](#v2160)| Tag name validation, and file size, path and pattern policies |[CC401](rules.md#cc401) · [CC302–CC304](rules.md#push-rules)|
15
16
|[2.15.1](#v2151)| Color and rule-ID links appear only where they render; `NO_COLOR` honoured |[Color and links](example.md#color-and-links)|
16
17
|[2.15.0](#v2150)|`--rev` names the commit under test; skipped checks are named on stderr |[Command-line recipes](example.md#checking-a-range-of-commits)|
@@ -27,6 +28,49 @@ below and to the page that documents the feature properly.
27
28
|[2.5.0](#v250)| Organization-wide config with `inherit_from`|[Across an organization](guides/organization.md)|
28
29
|[2.0.0](#v200)| Configuration moved from YAML to TOML — breaking |[Migrating from v1](migration.md)|
29
30
31
+
## v2.17.0 (2026-09-06) { #v2170 }
32
+
33
+
### Added
34
+
35
+
***A failed check names its correction when there is exactly one** — a type
36
+
written `Fix` where `fix` is allowed, a letter out of place (`feta`), a
37
+
missing colon after a recognised type, a `WIP:` marker, a missing
38
+
`Signed-off-by` trailer, a branch typed `Feature/x`, an AI attribution line
39
+
under `ai_attribution = "forbid"`: the suggestion now says what to use
40
+
(`Use "fix: add x"`) instead of restating the rule, and `--format json` and
41
+
the Python API carry the corrected value in a new `fix` field. `fix` stays
42
+
empty whenever the correction takes a judgment — a subject with no type, one
43
+
over the length limit, a verb that is not imperative — so a tool can apply a
44
+
non-empty `fix` as it stands. The pre-commit hook, the Action and the App
45
+
show the better suggestion with no change on their side; the MCP server
46
+
passes `fix` through to agents.
47
+
See PR [#564](https://github.com/commit-check/commit-check/pull/564) and
48
+
[Reading the JSON](example.md#reading-the-json).
49
+
50
+
***A rule can be reported without being enforced** — a top-level
51
+
`warn = ["branch", "CC003"]` runs the named rules, prints their findings in
52
+
full, and never fails the run. A warned rule prints `warning` in place of
53
+
`failed`, no rejection banner, and one closing line saying the run is not
54
+
failed by it; `--compact` prints one `[WARN]` line. The exit code counts
55
+
only enforced rules. In `--format json` the check's `status` is `warn`, the
56
+
top-level `status` stays `pass`, and a `warnings` count is added. A name
57
+
that matches no rule is a configuration error, so a typo cannot leave a rule
58
+
silently enforced. This is how a team adopts a rule gradually: turn it on
59
+
as a warning, watch what it catches, drop it from `warn` when the history
60
+
is clean.
61
+
See PR [#565](https://github.com/commit-check/commit-check/pull/565) and
62
+
[Report a rule without enforcing it](configuration.md#report-a-rule-without-enforcing-it).
63
+
64
+
### Fixed
65
+
66
+
***CC002 reads a plain subject from its first word** — the capitalisation
67
+
check treated any first word as a Conventional Commits type, so
68
+
`Add feature` failed on the `f` of `feature`, `Update` alone failed, and
69
+
`add Feature` passed. Only a prefix that ends in a colon is a type now:
70
+
the first two pass, the third fails. See PR
71
+
[#564](https://github.com/commit-check/commit-check/pull/564) and
0 commit comments