Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ADR 0072: Lease timing: a node renews immediately after a first grant and treats the lease as held only after that answer; held expiring leases survive an agent restart within the same boot by persisting remaining validity against boot_id and CLOCK_BOOTTIME

  • Status: Accepted
  • Date: 2026-11-02
  • Ledger id: D-0072
  • Tags: reliability, contracts
  • Supersedes: none
  • Superseded by: none
  • Related: none

Context

The maintainer accepted the recommendations that closed these open questions on 2026-11-02. Removes the receipt-time assumption and keeps warm apps running across agent upgrades (fence only when boot_id changed).

Decision

Lease timing: a node renews immediately after a first grant and treats the lease as held only after that answer; held expiring leases survive an agent restart within the same boot by persisting remaining validity against boot_id and CLOCK_BOOTTIME.

Late renewal = one unanswered renewal interval D/3, and session loss moves held expiring leases to uncertain, as M0 implements. Contract update in the pre-freeze contract PR; implementation before M5b.

Some wording was changed for the public repository.

Consequences

  • This decision is binding for all contributors and agents. Changing it requires a new ADR approved by the maintainer (see ADR 0036).

Generated from decision D-0072 in the project decision ledger. Do not edit by hand; changes go through a new decision.