Raxol.Harness.StallDetector.Verdict (Raxol v2.6.1)

View Source

One detector verdict. class is the four-state answer; evidence is nil exactly when class is :ok (the honesty floor), otherwise a map always carrying :reason and a human-readable :summary plus reason-specific detail. standing_by: true marks a verdict that is NOT a fresh escalation: either a repeat of an already-reported alarm, or an alarm raised after the escalation budget was spent.

Summary

Types

class()

@type class() :: :ok | :suspect | :stalled | :looping

evidence()

@type evidence() :: %{
  :reason => :repetition | :ping_pong | :no_progress,
  :summary => String.t(),
  optional(:tool) => term(),
  optional(:count) => pos_integer(),
  optional(:tools) => {term(), term()},
  optional(:cycles) => pos_integer(),
  optional(:elapsed_ms) => non_neg_integer()
}

t()

@type t() :: %Raxol.Harness.StallDetector.Verdict{
  class: class(),
  evidence: evidence() | nil,
  standing_by: boolean()
}