Skip to content

chore(release): anvil-ssh 1.0.0 — first stable release#31

Merged
UnbreakableMJ merged 1 commit into
mainfrom
release/anvil-ssh-1.0.0
May 5, 2026
Merged

chore(release): anvil-ssh 1.0.0 — first stable release#31
UnbreakableMJ merged 1 commit into
mainfrom
release/anvil-ssh-1.0.0

Conversation

@UnbreakableMJ

Copy link
Copy Markdown
Contributor

Summary

anvil-ssh 1.0.0 — first stable release.

  • Version bump 0.9.01.0.0. No API change from 0.9.0; this release is a stabilization signal.
  • CHANGELOG entry declares the public API stable under SemVer. Patch bumps add no symbols; minor bumps add only.
  • Type-rename roadmap revised: the legacy GitwaySession / GitwayConfig / GitwayError #[deprecated] aliases stay through the 1.x line (was: removed at 1.0). This is a deliberate softening — the corresponding gitway-lib shim glob-re-exports anvil_ssh::* and is preserved through Gitway 1.x per Gitway's migration doc; removing the upstream aliases now would silently break that shim. Removal is now scheduled for 2.0.0.
  • README rewritten for v1.0: feature matrix, "What this is NOT" section, refreshed module table, security-residual-risk note for RUSTSEC-2023-0071.
  • AGENTS.md updated with the revised type-rename roadmap and a SemVer commitment block.

Out of scope

Three items explicitly deferred to v1.x or v2.0:

  • FR-61, FR-62, FR-63 — live @cert-authority validation during KEX. Blocked on russh upstream cert-host-key support.
  • FIDO2 / sk-ssh-* hardware-backed keys (Gitway PRD §5.8.5, M16). Vendor fragmentation needs a hardware-test matrix.
  • Full Match block semantics in ssh_config (Gitway PRD §12 Q1). Parser support landed in M12; eval semantics deferred.

Known residual risks

  • RUSTSEC-2023-0071 — Marvin Attack on the rsa crate. No upstream patch available (RustCrypto/RSA #626). Documented + accepted with rationale in Gitway's docs/security.md: the rsa crate is only on local keygen + SSHSIG paths; transport crypto is aws-lc-rs (constant-time); SSH auth uses Ed25519 by default.

Test plan

  • CI green on Linux / macOS / Windows
  • cargo build --release clean locally
  • cargo clippy --all-targets -- -D warnings clean
  • cargo fmt --check clean
  • cargo test (full suite, hermetic) — all 207+ tests pass
  • cargo publish --dry-run succeeds (crate file lists every required file; no path-only deps)
  • docs.rs build succeeds (verified after publish)

🤖 Generated with Claude Code

First stable release.  No API change from 0.9.0; this release is a
stabilization signal under SemVer.

CHANGELOG declares the public API stable: patch bumps add no
symbols, minor bumps add only, major bumps coordinate with
downstream consumers (primarily Steelbore/Gitway).

The legacy GitwaySession / GitwayConfig / GitwayError #[deprecated]
aliases stay through the entire 1.x line.  This is a deliberate
softening of the original AGENTS.md roadmap (which had proposed
removing them at 1.0): the corresponding gitway-lib shim re-exports
anvil_ssh::* glob-style and is preserved through Gitway 1.x per
Gitway's docs/migration-from-v0.9.md; removing the upstream aliases
now would silently break that shim.  Removal is scheduled for 2.0.

README rewritten for v1.0:
- Updated Status block (1.0.0 stable, MSRV 1.88)
- Updated Use block (anvil-ssh = "1.0", deprecation timeline)
- New v1.0 feature matrix
- "What this is NOT" section clarifying scope
- Refreshed module table with M11.5-M19 modules (cert_authority,
  ssh_config, proxy, algorithms, retry, log)
- Security section linking to Gitway's threat model + the
  RUSTSEC-2023-0071 residual-risk note

AGENTS.md type-rename roadmap revised to defer Gitway* alias
removal to 2.0; SemVer commitment block added.

Local verification:
- cargo build --release: 2m21s, clean
- cargo clippy --all-targets -- -D warnings: clean (47s)
- cargo fmt --check: clean
- cargo test: 292 passed, 0 failed, 7 ignored (require
  GITWAY_INTEGRATION_TESTS=1)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@UnbreakableMJ UnbreakableMJ merged commit a23b39d into main May 5, 2026
5 checks passed
@UnbreakableMJ UnbreakableMJ deleted the release/anvil-ssh-1.0.0 branch May 5, 2026 08:04
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