| name | release |
| description | Cut a GitHub release - full gate, version bump, Release builds, package the worker + tools zip, tag, gh release create. Stops before any cargo publish (crates.io is gated). |
| disable-model-invocation | true |
/release — cut a GitHub release
Deliberate-invocation only. Releases ship the worker binary to non-Rust consumers (the
chromedriver shape: any language that can spawn a process + speak the framed protocol).
Preconditions (verify ALL before touching versions)
- Working tree clean, on
main, synced with origin/main.
./test-all.ps1 green (builds → pregate → tests → selftest).
- Ask the user to confirm they have run
docs/SMOKE.md on this build — the interactive
layer cannot be auto-verified. Do not proceed on an unconfirmed smoke.
1. Version
Ask the user: patch (0.1.0 → 0.1.1, compatible fix) or minor (0.1.0 → 0.2.0, breaking —
in 0.x the minor is the breaking slot). Pre-crates.io, all five publishable crates stay in
lockstep with the release tag; bump version in:
crates/tagpipe/Cargo.toml, crates/protocol/Cargo.toml, crates/client/Cargo.toml,
crates/bridge-worker/Cargo.toml, crates/abi/Cargo.toml
- AND the
version = "..." half of every internal path dependency that names one of them
(protocol→tagpipe; worker→abi+protocol; client→protocol; bridge-host/lab→client).
- The worker's handshake ident embeds automatically — nothing to edit.