Skip to content

chore: release 0.4.0 - #91

Merged
plusky merged 1 commit into
mainfrom
release/0.4.0
Aug 12, 2026
Merged

chore: release 0.4.0#91
plusky merged 1 commit into
mainfrom
release/0.4.0

Conversation

@plusky

@plusky plusky commented Aug 12, 2026

Copy link
Copy Markdown
Owner

Version bump for the 0.4.0 release. Per AGENTS.md the bump lands as a normal PR first; the annotated tag then goes on the merge commit and release.yml does the rest.

Why 0.4.0 and not 0.3.1

35 commits since 0.3.0 (2026-08-03), and one of them changes behaviour an operator can be broken by: #84 makes Policy::validate reject rule names colliding with the guard's synthetic ones, so a policy that started under 0.3.0 can now fail at startup. Pre-1.0, that belongs in the minor position.

What's in the cycle

Features

  • --allowed-hosts for inbound host validation on the HTTP transport
  • guarded product and field discovery tools (bugzilla_products, bug_fields), gated behind global.allow_discovery (I16)
  • custom fields accepted when filing a bug; the instance's status workflow reported in bug_fields
  • portable identity via a declared, verified login; startup fails when identity cannot be resolved
  • a User-Agent identifying this build to Bugzilla, and the build named in the MCP handshake
  • generated man page and shell completions

Fixes

Docs — the guard.rule encoding (#67), the audit stream and MCP surface in the README, the TLS trust-store trade-off, the stateless-metadata decision for #34, and a full StreamableHttpServerConfig inventory.

Build/CI — rmcp 3.1, reqwest 0.13, sha2 0.11, dependency refreshes, and a scoped copyleft exemption for the rust-cache action.

What this PR touches

File Change
Cargo.toml [workspace.package] version0.4.0
crates/bugwarden/Cargo.toml the bugwarden-core dependency pins version as well as path, so it moves in lockstep
Cargo.lock both workspace crates
crates/bugwarden/man/bugwarden.1 regenerated — the man page embeds the version

The completions carry no version string and are unchanged, which rust-assets-drift confirms.

The bugwarden-core version requirement is worth noting: nothing single-sources it, so it has to be bumped by hand every release. It fails the build loudly rather than silently resolving a stale core, which is how it was caught here.

Verification

cargo fmt --check, both clippy invocations, cargo test --workspace --all-targets --locked (431 passed, 0 failed), and cargo deny check all pass. Assets regenerated from the clap CLI and re-diffed.

Bump the workspace version for release. 0.4.0 rather than 0.3.1 because
this cycle changes behaviour an operator can be broken by: policy
validation now rejects rule names that collide with the guard's own
synthetic ones, so a policy that started under 0.3.0 can fail at startup
(#84). Pre-1.0, that is what the minor position is for.

crates/bugwarden/Cargo.toml pins its bugwarden-core dependency by
version as well as path, so that requirement moves in lockstep — the
build fails loudly otherwise, which is how this was caught.

The man page embeds the version, so regenerate the committed assets;
the completions carry none and are unchanged.
@plusky
plusky merged commit b213b11 into main Aug 12, 2026
11 checks passed
@plusky
plusky deleted the release/0.4.0 branch August 12, 2026 18:25
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