Skip to content

v3.3.0

Choose a tag to compare

@catanadj catanadj released this 26 Jan 19:47
· 3920 commits to main since this release

Production Hardening + Reliability Tooling

Hook behavior and safety:

  • Strict fail-closed semantics for on-add/on-modify: no {} fallbacks; errors exit non-zero without stdout JSON.
  • on-exit now verifies parent nextLink after update and dead-letters on CAS mismatch.
  • Retry backoff updated to exponential + jitter for task subprocess retries.
  • Lock stale detection requires dead PID and aged lock to prevent false unlocks.

Queue durability and observability:

  • Optional NAUTICAL_DURABLE_QUEUE=1 fsyncs queue/dead-letter writes and queue staging replace.
  • Queue lock contention now tracked via .nautical_spawn_queue.lock_failed.count.

Operational guidance:

  • Documented break-glass mode (task rc.hooks=off ...) and durable queue trade-offs in the manual.
  • Hook versions are now stamped into dead-letter entries for forensic debugging.

Reliability tooling:

  • Added tools/nautical_reliability_smoke.py with load and limit-finder modes.
  • In local testing, sustained 8,000 tasks under load with no failures; users can run the tool to verify on their systems.