From 91ab308c24956418bc639581aca02d781a9bdbe9 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Mon, 21 Sep 2026 11:24:01 +0000 Subject: [PATCH] chore(release): prepare v3.0.4 Prepare a patch release containing the merged sync backoff, announcement promotion and live-root discovery fixes plus the compatible dependency refresh. Move the release notes into a dated 3.0.4 section and document the two merged correctness fixes that were not yet listed. Align the Cargo manifest, lockfile and NixOS package version; flake packages continue deriving their version from Cargo.toml. The audit crate remains at 0.2.0. This commit changes release metadata only; tagging, publication and deployment are outside its scope. Validation: locked Cargo metadata, release-version consistency checks and Nix evaluation of both regular and static packages report 3.0.4. NixOS module syntax, formatting and diff checks pass. The dependency parent passed the full workspace suite (3,566 tests, 16 ignored) and all-target Clippy with warnings denied. Assisted-by: GPT-6 --- CHANGELOG.md | 9 ++++++++- Cargo.lock | 2 +- Cargo.toml | 2 +- nix/module.nix | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 991f899..54a80bf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,12 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [3.0.4] - 2026-09-21 + ### Fixed - Fix queued sync requests bypassing relay rate-limit backoff and continuing to send requests during the cooldown. Rate-limit signals now take effect even when sync event processing is blocked, and repeated signals no longer flood warning logs. +- Preserve repository membership while a pending announcement is saved, so + concurrent reconciliation cannot restore obsolete Git state. +- Retain live roots received while their accepted repository announcement is + waiting for batch processing, so their discovery work is not lost. ### Dependencies @@ -689,7 +695,8 @@ defensive limits explicit and operator-configurable. Initial release of ngit-grasp, a GRASP relay implementation in Rust. -[unreleased]: https://gitworkshop.dev/npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr/ngit-grasp/compare/v3.0.3...HEAD +[unreleased]: https://gitworkshop.dev/npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr/ngit-grasp/compare/v3.0.4...HEAD +[3.0.4]: https://gitworkshop.dev/npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr/ngit-grasp/compare/v3.0.3...v3.0.4 [3.0.3]: https://gitworkshop.dev/npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr/ngit-grasp/compare/v3.0.2...v3.0.3 [3.0.2]: https://gitworkshop.dev/npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr/ngit-grasp/compare/v3.0.1...v3.0.2 [3.0.1]: https://gitworkshop.dev/npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr/ngit-grasp/compare/v3.0.0...v3.0.1 diff --git a/Cargo.lock b/Cargo.lock index bd8ba98..37955b3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1301,7 +1301,7 @@ checksum = "81c353b400a5503efdcf398f11a83fb7aa84f59f5d76fc4bf5bbc1e4f5366caa" [[package]] name = "ngit-grasp" -version = "3.0.3" +version = "3.0.4" dependencies = [ "anyhow", "async-trait", diff --git a/Cargo.toml b/Cargo.toml index 21f0610..01570b0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ngit-grasp" -version = "3.0.3" +version = "3.0.4" edition = "2021" authors = ["ngit-grasp contributors"] license = "MIT" diff --git a/nix/module.nix b/nix/module.nix index 50c0c98..5f2a3c2 100644 --- a/nix/module.nix +++ b/nix/module.nix @@ -6,7 +6,7 @@ let # Build ngit-grasp package (shared across all instances) ngit-grasp = pkgs.rustPlatform.buildRustPackage { pname = "ngit-grasp"; - version = "3.0.3"; + version = "3.0.4"; src = ../.; NGIT_BUILD_REVISION = ngitGraspSourceRevision; cargoLock = {