chore: release 2.1.2

Prepare the 2.1.2 patch release after archive cold-start production testing exposed and verified the post-2.1.1 sync corrections.

Promote the accumulated Unreleased entries, add a release summary, advance comparison links, and keep Cargo plus both Nix package definitions on the same version. This commit changes release metadata only.

The release prevents permanent relay refusals from rebuilding coverage in a tight loop, adapts request grouping to strict remote filter limits, preserves purgatory events during active Git work, exports service-wide resource metrics, and demotes routine missing-repository probes.

Production evidence: a clean b21683b archive burn-in created 2,575 repositories and 26 GiB of Git data while syncing more than 5,000 events, with no restart, watchdog recovery, repeated filter-count refusal, panic, OOM, or memory-pressure event. Memory remained below the configured 32 GiB pressure threshold. The one relay.jbnco.co four-filter refusal learned a two-filter session ceiling without repeating.

Validation: git diff --check; Cargo metadata and Nix package evaluation reported 2.1.2. Per operator direction, no new build or test run was required for this metadata-only commit.
This commit is contained in:
DanConwayDev
2026-08-08 16:27:18 +00:00
parent b21683b0f9
commit bb38e6cfcc
5 changed files with 15 additions and 5 deletions
+11 -1
View File
@@ -7,6 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
## [2.1.2] - 2026-08-08
ngit-grasp 2.1.2 is a patch release improving repository-event sync under
cold-start archive load. It prevents permanent relay policy refusals from
driving subscription rebuild loops, adapts request grouping to unusually low
remote filter-count limits, and keeps valid purgatory events alive while their
Git data is actively being fetched. It also adds whole-service resource
metrics and reduces routine missing-repository log noise.
### Changed
- Log routine Git `info/refs` requests for repositories not yet available
@@ -324,7 +333,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/v2.1.1...HEAD
[unreleased]: https://gitworkshop.dev/npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr/ngit-grasp/compare/v2.1.2...HEAD
[2.1.2]: https://gitworkshop.dev/npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr/ngit-grasp/compare/v2.1.1...v2.1.2
[2.1.1]: https://gitworkshop.dev/npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr/ngit-grasp/compare/v2.1.0...v2.1.1
[2.1.0]: https://gitworkshop.dev/npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr/ngit-grasp/compare/v2.0.0...v2.1.0
[2.0.0]: https://gitworkshop.dev/npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr/ngit-grasp/compare/v1.2.0...v2.0.0
Generated
+1 -1
View File
@@ -1316,7 +1316,7 @@ checksum = "f0efe882e02d206d8d279c20eb40e03baf7cb5136a1476dc084a324fbc3ec42d"
[[package]]
name = "ngit-grasp"
version = "2.1.1"
version = "2.1.2"
dependencies = [
"anyhow",
"async-trait",
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "ngit-grasp"
version = "2.1.1"
version = "2.1.2"
edition = "2021"
authors = ["ngit-grasp contributors"]
license = "MIT"
+1 -1
View File
@@ -48,7 +48,7 @@
packages.ngit-grasp = pkgs.rustPlatform.buildRustPackage {
pname = "ngit-grasp";
version = "2.1.1";
version = "2.1.2";
src = ./.;
NGIT_BUILD_REVISION = sourceRevision;
cargoLock = {
+1 -1
View File
@@ -6,7 +6,7 @@ let
# Build ngit-grasp package (shared across all instances)
ngit-grasp = pkgs.rustPlatform.buildRustPackage {
pname = "ngit-grasp";
version = "2.1.1";
version = "2.1.2";
src = ../.;
NGIT_BUILD_REVISION = ngitGraspSourceRevision;
cargoLock = {