pub enum ReliabilityReasonCode {
Show 57 variants
WorkersConfigUnreadable,
NoWorkersConfigured,
WorkersConfigured,
DaemonStatusUnavailable,
DaemonHasNoWorkers,
AllWorkersUnhealthy,
PartialWorkerCapacity,
WorkersHealthy,
WorkerCircuitOpen,
WorkerUnreachable,
WorkerDegraded,
WorkerReady,
WorkerStatusUnrecognized,
WorkerCircuitStateUnrecognized,
DiskPressureUnavailable,
WorkerDiskPressureCritical,
WorkerDiskPressureWarning,
WorkerDiskPressureHealthy,
WorkerDiskPressureTelemetryGap,
DiskPressureNoWorkers,
ProcessDebtUnavailable,
CancellationCleanupHealthy,
CancellationCleanupSkipped,
CancellationCleanupDegraded,
CancellationCleanupFailed,
LocalBuildsDetected,
LocalBuildScanUnavailable,
LocalBuildAlarmStateUnavailable,
LocalBuildsAbsent,
RepoConvergenceUnavailable,
RepoConvergenceFailed,
RepoConvergenceDrift,
RepoConvergenceNoWorkers,
RepoConvergenceReady,
WorkerRepoNotReady,
HelperAvailable,
HelperMissing,
HelperProbeUnavailable,
HookAutoStartEnabled,
HookAutoStartDisabled,
DaemonHookRepairEnabled,
DaemonHookRepairDisabled,
ConfigLoadFailed,
StatusSurfaceAvailable,
RepoConvergenceSurfaceAvailable,
DiskPressureSurfaceAvailable,
HookInstalled,
HookNotInstalled,
SocketPathConsistent,
SocketPathMismatch,
SchemaCompatible,
SchemaIncompatible,
WorkerMirrorOwnershipHealthy,
WorkerMirrorOwnershipDrift,
WorkerMirrorOwnershipCheckUnavailable,
WorkerMirrorOwnershipUnprobeable,
MirrorOwnershipNoWorkers,
}Expand description
One reason code per emitted reliability diagnostic. Serializes to its
canonical RCH-Rnnn string form via Serialize; deserializes the same
form via Deserialize.
Variants§
WorkersConfigUnreadable
Workers configuration could not be loaded.
NoWorkersConfigured
No workers configured (every build runs locally).
WorkersConfigured
Workers are configured (Pass).
Daemon status surface is unavailable.
DaemonHasNoWorkers
Daemon has no registered workers.
AllWorkersUnhealthy
Every worker is unhealthy.
PartialWorkerCapacity
Some workers are healthy, some are not.
WorkersHealthy
All workers are healthy (Pass).
WorkerCircuitOpen
A worker’s circuit breaker is open.
WorkerUnreachable
A worker is unreachable / offline / failed.
WorkerDegraded
A worker is degraded (half-open circuit or not-ready).
WorkerReady
A worker is ready (Pass).
WorkerStatusUnrecognized
A worker reported an unrecognized ready_status value (defensive parse).
WorkerCircuitStateUnrecognized
A worker reported an unrecognized circuit_state value (defensive parse).
Disk-pressure surface is unavailable.
WorkerDiskPressureCritical
Worker disk pressure has reached critical.
WorkerDiskPressureWarning
Worker disk pressure has reached the warning threshold.
WorkerDiskPressureHealthy
Worker disk pressure is healthy (Pass).
WorkerDiskPressureTelemetryGap
Worker is missing fresh disk telemetry.
DiskPressureNoWorkers
No workers reported disk-pressure telemetry (Info; common for empty fleets).
Process-debt surface is unavailable.
CancellationCleanupHealthy
Cancellation cleanup is healthy (Pass).
CancellationCleanupSkipped
Cancellation cleanup was skipped (no jobs to triage).
CancellationCleanupDegraded
Cancellation cleanup is degraded (some warnings).
CancellationCleanupFailed
Cancellation cleanup is failing.
LocalBuildsDetected
Unmanaged compiler processes are running on a dispatcher.
Local compiler process observation could not complete.
The shared local-build alarm latch could not be persisted.
LocalBuildsAbsent
No unmanaged compiler processes were observed on the dispatcher.
Repo-convergence surface is unavailable.
RepoConvergenceFailed
One or more workers failed repo convergence.
RepoConvergenceDrift
Workers are drifting / stale on repo convergence.
RepoConvergenceNoWorkers
No workers reported repo-convergence records (Info).
RepoConvergenceReady
All workers are repo-converged (Pass).
WorkerRepoNotReady
A specific worker’s repo state is not ready.
HelperAvailable
A required helper binary is available (Pass).
HelperMissing
A required helper binary is missing.
The helper compatibility probe itself did not complete.
HookAutoStartEnabled
self_healing.hook_starts_daemon is enabled (Pass).
HookAutoStartDisabled
self_healing.hook_starts_daemon is disabled.
DaemonHookRepairEnabled
self_healing.daemon_installs_hooks is enabled (Pass).
DaemonHookRepairDisabled
self_healing.daemon_installs_hooks is disabled.
ConfigLoadFailed
Configuration could not be loaded.
StatusSurfaceAvailable
Unified status surface is compiled in (Pass).
RepoConvergenceSurfaceAvailable
Repo-convergence status endpoint is wired into the CLI (Pass).
DiskPressureSurfaceAvailable
Disk-pressure fields are wired into worker status (Pass).
HookInstalled
The Claude Code PreToolUse rch hook is installed (Pass).
HookNotInstalled
The Claude Code PreToolUse rch hook is missing; builds will not offload.
SocketPathConsistent
The hook/CLI socket path matches the canonical daemon socket (Pass).
SocketPathMismatch
The configured socket path diverges from the canonical daemon socket; the hook may not reach the daemon.
SchemaCompatible
Schema versions are compatible (Pass).
SchemaIncompatible
Schema versions are incompatible.
WorkerMirrorOwnershipHealthy
A worker’s canonical mirror tree has no root-owned entries (Pass).
WorkerMirrorOwnershipDrift
A worker’s canonical mirror tree contains root-owned entries that will make rsync-as-ssh-user fail exit 23 until repaired. The dispatch-time preflight self-heals these (bd-8iwkm); this code surfaces the drift proactively, before a dispatch hits it.
The worker’s ownership probe could not run because passwordless sudo is unavailable to the SSH user; dispatch-time repair fails open silently in this state.
WorkerMirrorOwnershipUnprobeable
The per-worker ownership probe did not complete (SSH transport error or timeout); drift state on that worker is unknown.
MirrorOwnershipNoWorkers
No workers are configured, so there is nothing to probe (Info; the topology probe reports this condition as its own code).
Implementations§
Source§impl ReliabilityReasonCode
impl ReliabilityReasonCode
Sourcepub const ALL: &'static [ReliabilityReasonCode]
pub const ALL: &'static [ReliabilityReasonCode]
Every variant of this enum, useful for exhaustive iteration in tests.
Sourcepub const fn name(self) -> &'static str
pub const fn name(self) -> &'static str
The CamelCase variant identifier as a static string. Used by
rch error explain to render a human-readable name alongside
the RCH-Rnnn code.
Sourcepub const fn category(self) -> ReliabilityCategoryKind
pub const fn category(self) -> ReliabilityCategoryKind
The category this variant belongs to.
Sourcepub const fn requires_restart(self) -> bool
pub const fn requires_restart(self) -> bool
Whether the configured remediation requires a process restart for the
fix to take effect. Consumed by the reliability doctor when building
RemediationStep::requires_restart (sibling bead 2s99h.15).
Policy:
truewhen the fix changes a flag/state read at daemon startup, OR when the underlying subsystem caches state at process start.falsewhen the fix is purely external (e.g., disk space, key permissions) OR when the daemon hot-reloads the relevant state.
Sourcepub const fn remediation_hint(self) -> &'static str
pub const fn remediation_hint(self) -> &'static str
One-line operator-facing remediation hint. Used as the default suggestion text when the diagnostic doesn’t override it.
Source§impl ReliabilityReasonCode
impl ReliabilityReasonCode
Sourcepub fn from_code_str(code: &str) -> Option<Self>
pub fn from_code_str(code: &str) -> Option<Self>
Reverse-lookup helper for deserialization.
Source§impl ReliabilityReasonCode
impl ReliabilityReasonCode
Sourcepub fn runbook(self) -> Option<RunbookEntry>
pub fn runbook(self) -> Option<RunbookEntry>
Operator runbook for this reason code. Returns Some(entry) when
an authored runbook exists; None for Pass/Info-state codes that
don’t need a runbook (they’re not the kind of thing an operator
gets paged on). Per br-62u24.20 MVP scope, the highest-leverage
operational codes are authored first; remaining codes return
None and will be filled in as follow-up work.
Convenience: list every variant that has an authored runbook.
Used by rch doctor --runbook-list to enumerate the codes
an operator can request a runbook for.
Trait Implementations§
Source§impl Clone for ReliabilityReasonCode
impl Clone for ReliabilityReasonCode
impl Copy for ReliabilityReasonCode
Source§impl Debug for ReliabilityReasonCode
impl Debug for ReliabilityReasonCode
Source§impl<'de> Deserialize<'de> for ReliabilityReasonCode
impl<'de> Deserialize<'de> for ReliabilityReasonCode
Source§fn deserialize<D: Deserializer<'de>>(d: D) -> Result<Self, D::Error>
fn deserialize<D: Deserializer<'de>>(d: D) -> Result<Self, D::Error>
Source§impl Display for ReliabilityReasonCode
impl Display for ReliabilityReasonCode
impl Eq for ReliabilityReasonCode
Source§impl Hash for ReliabilityReasonCode
impl Hash for ReliabilityReasonCode
Source§impl PartialEq for ReliabilityReasonCode
impl PartialEq for ReliabilityReasonCode
Source§impl Serialize for ReliabilityReasonCode
impl Serialize for ReliabilityReasonCode
impl StructuralPartialEq for ReliabilityReasonCode
Auto Trait Implementations§
impl Freeze for ReliabilityReasonCode
impl RefUnwindSafe for ReliabilityReasonCode
impl Send for ReliabilityReasonCode
impl Sync for ReliabilityReasonCode
impl Unpin for ReliabilityReasonCode
impl UnsafeUnpin for ReliabilityReasonCode
impl UnwindSafe for ReliabilityReasonCode
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.