Skip to content

v0.1.25.51 — protocol idempotency and replay hardening

Choose a tag to compare

@amavashev amavashev released this 14 Jul 12:25
7060eda

This release hardens protocol idempotency, replay integrity, hierarchical budget attribution, and corrupt-expiry observability without changing the public schema.

Protocol correctness

  • Shares the reserve endpoint idempotency namespace between live and dry-run requests, returning 409 IDEMPOTENCY_MISMATCH when the same key changes request form or payload.
  • Makes slow, uncontested non-persisting evaluations publish safely after claim expiry while preventing overwrite by a newer winner.
  • Preserves pre-upgrade dry-run results through the legacy namespace bridge and detects independently lost companion hashes by value shape.
  • Marks only scopes that individually fail to cover capped commit/event charges as over-limit.

Replay and expiry hardening

  • Stores immutable event response snapshots and repairs missing fast response caches without re-dispatching webhooks or synthesizing changed bodies.
  • Opportunistically backfills pre-snapshot event rows while their canonical response remains available.
  • Quarantines malformed expiry rows with durable reason/timestamp metadata, WARN logging, and bounded cycles.reservations.quarantined metrics.
  • Normalizes missing/non-textual quarantine tenants to the existing UNKNOWN metric tag.

Compatibility

  • No request or successful-response schema changes.
  • Mixed-version deployments may return a transient retriable 500 from an older pod while a new dry-run marker is live (at most 60 seconds); the documented production topology remains single-instance.
  • Production and full-stack compose defaults pin ghcr.io/runcycles/cycles-server:0.1.25.51.

Validation

  • 1,140 tests passed: 31 model, 531 data, 578 API; zero failures, errors, or skips.
  • Protocol contract coverage 11/11; JaCoCo line coverage 95.11% data and 95.56% API.
  • Focused adversarial Redis suite 64/64, including three-state CAS and bidirectional value-shape mismatch cases.
  • Three benchmark-profile trials completed with zero concurrent errors and no measurable regression.

Full details: CHANGELOG.md [0.1.25.51], AUDIT.md, BENCHMARKS.md, and PR #238.