Skip to content

fix: drop the soothfast bot's own commits from the changelog - #199

Merged
Verdenroz merged 3 commits into
masterfrom
fix/changelog-bot-author
Sep 12, 2026
Merged

Verdenroz merged 3 commits into
masterfrom
fix/changelog-bot-author

Conversation

@Verdenroz

Copy link
Copy Markdown
Owner

What changed

  • Read the commit author alongside the subject in report changelog's git log call, and dropped every commit the soothfast bot wrote before the subjects reach the parser.
  • Added [changelog] bot-author in soothfast.toml and a --bot-author NAME flag, for a repo that renamed the action's bot-slug. The flag wins, then the table, then the shipped soothfast-bot[bot].
  • Documented the filter in docs/reports.md, including that it drops exactly one author and leaves every other bot in place.

Why

The only guard against bot noise was a list of this repo's own regeneration subjects, which no adopting repo matches. A consumer lands its regenerated artifacts under the title the action sets, so those commits kept showing up in its own Unreleased section under Internal. Author identity is what actually survives a squash merge, and the bot always commits as one fixed name. The filter names that one author and nothing else: dependabot[bot] writes an entire Dependencies section, and a rule matching every [bot] author would delete it without a trace.

How was this tested

  • cargo test -p cargo-soothfast -p soothfast-report: 233 passed, 1 failed in cargo-soothfast; 34 passed, 1 ignored in soothfast-report.
  • The one failure is invoke::tests::a_plain_directory_in_the_repo_is_not_a_worktree_root, which is cwd-dependent and fails from any linked worktree. This branch does not touch invoke.rs.
  • cargo fmt --all -- --check: clean.
  • cargo clippy --workspace --all-targets -- -D warnings: clean.
  • Eight new unit tests cover the filter and the precedence, including one asserting a dependabot[bot] commit survives the filter.
  • make check and make gate BASE=master were not run.

Checklist

  • make check passes (fmt, clippy -D warnings, cargo test --workspace)
  • make gate BASE=master passes, or any intentional cost change is explained above
  • Tests added/updated for new behavior (not required for docs/CI-only changes)
  • Public API items have /// doc comments
  • No new dependency, or its justification is included above (see Dependency Policy)
  • Docs (README.md, docs/, soothfast:bind/soothfast:claim markers) updated if behavior changed

- a consumer's Unreleased section listed the regeneration commits
  the action lands, whose subjects no library allowlist can know
- a repo that renames the action's bot-slug commits under a
  different author, which the shipped default would miss
@Verdenroz
Verdenroz deployed to soothfast-bot September 12, 2026 00:35 — with GitHub Actions Active
@Verdenroz
Verdenroz deployed to soothfast-bot September 12, 2026 00:35 — with GitHub Actions Active
@Verdenroz
Verdenroz deployed to soothfast-bot September 12, 2026 00:35 — with GitHub Actions Active
@Verdenroz
Verdenroz deployed to soothfast-bot September 12, 2026 00:35 — with GitHub Actions Active
@Verdenroz
Verdenroz deployed to soothfast-bot September 12, 2026 00:35 — with GitHub Actions Active
@Verdenroz
Verdenroz deployed to soothfast-bot September 12, 2026 00:35 — with GitHub Actions Active
@Verdenroz
Verdenroz deployed to soothfast-bot September 12, 2026 00:35 — with GitHub Actions Active
@soothfast-bot

soothfast-bot Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

soothfast gate

gate: measuring merge-base of origin/master in worktree (interleaved rounds)
gate: bench binaries identical (code and data match) — no measurable change possible
gate: gating backend = walltime
gate: build=08f03a noise_floor=0.07% thresholds: instructions +5% ir +5% walltime +10.0% alloc/size +5% polls/wakes +5%
ok    soothfast_site::bench_highlight walltime_median_ns 3123235.0 -> 3123235.0 (+0.0%)
ok    soothfast_site::bench_highlight allocs 88069 -> 88069 (allowed <= 92472)
ok    soothfast_site::bench_highlight alloc_bytes 2079336 -> 2079336 (allowed <= 2183302)
ok    soothfast_site::bench_md_render walltime_median_ns 3067862.0 -> 3067862.0 (+0.0%)
ok    soothfast_site::bench_md_render allocs 68118 -> 68118 (allowed <= 71523)
ok    soothfast_site::bench_md_render alloc_bytes 3502526 -> 3502526 (allowed <= 3677652)
ok    soothfast_site::bench_highlight assert complexity: claimed O(n); growth drift x1.19 over sizes [128, 512, 2048] (limit x2.5)
ok    soothfast_site::bench_md_render assert complexity: claimed O(n); growth drift x1.02 over sizes [256, 1024, 4096] (limit x2.5)
gate: passed (2 item(s))

@Verdenroz
Verdenroz merged commit 3b224fb into master Sep 12, 2026
19 checks passed
@Verdenroz
Verdenroz deleted the fix/changelog-bot-author branch September 12, 2026 00:38
@Verdenroz Verdenroz mentioned this pull request Sep 12, 2026
6 tasks
Verdenroz added a commit that referenced this pull request Sep 12, 2026
## What changed

- Froze the `## Unreleased` heading in `CHANGELOG.md` to `## 0.3.2 - 2026-09-11` and wrote its Overview and Upgrade notes.
- Bumped `[workspace.package] version` and the eight `[workspace.dependencies]` requirements from `0.3.1` to `0.3.2`.
- Regenerated `Cargo.lock`. Only version lines moved; no dependency was added, removed, or changed.
- Bumped the version strings in `README.md` and `soothfast.toml`.

## Why

0.3.1 gave the action its `features` and regeneration inputs, so CI could be
told once what a repository needs. A developer running the CLI by hand still
repeated the same flags on every invocation, and two defects surfaced once
adopters started bumping across versions. This release carries all three
fixes: `soothfast.toml` holds the feature and package defaults, the gate stops
letting a reference it could not pin decide a verdict quietly, and the
changelog drops the bot's own regeneration commits instead of listing the
paperwork as changes.

Everything here is additive and opt-in. A repository on `soothfast = "0.3"`
picks it up without touching its manifest.

## How was this tested

- `cargo fmt --all -- --check`: clean.
- `cargo clippy --workspace --all-targets -- -D warnings`: clean.
- `cargo test --workspace --no-fail-fast`: 817 passed, 4 ignored, 1 failed. The failure is `invoke::tests::a_plain_directory_in_the_repo_is_not_a_worktree_root`, which asserts the workspace root is not a linked git worktree. It fails from any linked-worktree checkout and passes from a plain one, which is what CI uses. Confirmed by running the same built test binary from both.
- `cargo check --workspace` after the bump: clean, all ten crates resolve at `0.3.2`.
- Read the frozen section against `git log v0.3.1..master`: it lists #195, #196 and #199, and none of the four soothfast-bot regeneration commits. Those exclusions are the filter from #199 running against real history.
- `make gate BASE=master` was not run. This commit changes no measured code.

## Checklist

- [ ] `make check` passes (fmt, clippy `-D warnings`, `cargo test --workspace`)
- [ ] `make gate BASE=master` passes, or any intentional cost change is explained above
- [ ] Tests added/updated for new behavior (not required for docs/CI-only changes)
- [ ] Public API items have `///` doc comments
- [x] No new dependency, or its justification is included above (see [Dependency Policy](../CONTRIBUTING.md#dependency-policy))
- [x] Docs (`README.md`, `docs/`, `soothfast:bind`/`soothfast:claim` markers) updated if behavior changed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant