Skip to content

An advisor that times out, is rate limited, refuses its credential or answers malformed is recorded as exactly that, never blocks the work, opens a circuit that closes again after its cooldown, and never fails the session

A failing advisor costs the session one bounded wait, then the work continues on local

declared statusdeclared status: guaranteed Declared deterministic and blocking, implemented, and naming the behavioural test that is to prove it. Whether a recorded run supports it is the evidence verdict, shown beside it.

recorded evidencerecorded evidence: not run Declared guaranteed, and not supported by a recorded run: the test is named, and no passing run of the current inputs is recorded. how evidence is recorded

the circuit is derived from the recorded outcomes and the clock; the case shortens the cooldown with MAJORDOMUS_REASONING_COOLDOWN_SECONDS.

What it means

A failing advisor costs the session one bounded wait, then the work continues on local evidence and completes. The failure is a record with its class and diagnostic. Repeated failures take the advisor out of later plans for a cooldown, and it comes back on its own.

How it works

consultOne bounds every exchange with a deadline. Each outcome is recorded by the writer. Availability (apps/majordomus-cli/src/reasoning/availability.rs) reads the outcomes newest first: two consecutive transient failures open the circuit for 10 minutes, a rate limit for its retry-after, an authentication failure for an hour; past the cooldown the advisor is available and recovering, and a completed answer closes the circuit. A malformed or empty answer does not count against the advisor.

How to see it

majordomus reasoning advisors     # temporarily_failed … until <time>, then (recovering)

test/cases/733_advisor_failure_and_recovery.sh times out, completes the task locally, opens and recovers the circuit, and records a rate limit, an authentication failure and a malformed answer for what each is.

What it does not cover

It does not retry within a consultation; a failed exchange is a result, and the policy decides about the next one. It does not detect a fixed credential by itself; the cooldown or an explicit override does.

Why it exists

An optional advisor that can hang or fail a session is a dependency in everything but name. Bounded, recorded, self-healing failure is what keeps it optional (ADR 0098).

Detail rendered from docs/claims/advisor-failure-is-recorded-and-recovers.md.

From the statement to the proof

  1. 1 · the public statement

    An advisor that times out, is rate limited, refuses its credential or answers malformed is recorded as exactly that, never blocks the work, opens a circuit that closes again after its cooldown, and never fails the session

    Made on Reasoning.

  2. 2 · the canonical claim

    advisor-failure-is-recorded-and-recoversdeclared status: guaranteed in docs/CLAIMS.yaml

    Defined in read it on this site · docs/REASONING.md

  3. 3 · the implementation

    apps/majordomus-cli/src/reasoning/availability.rs

  4. 4 · the test and the scenarios

    Test: test/cases/733_advisor_failure_and_recovery.sh

  5. 5 · the recorded runs

    recorded evidence: not run how evidence is recorded

Verify it yourself

The test runs in a disposable temporary repository and asserts the behaviour, not a string in the source.

from a clone of the repository
bash test/run.sh 733_advisor_failure_and_recovery

Searches the titles and descriptions of every page this site publishes.