pub enum M1ndError {
Show 51 variants
DanglingEdge {
edge: EdgeIdx,
node: NodeId,
},
GraphGenerationMismatch {
expected: Generation,
actual: Generation,
},
DuplicateNode(NodeId),
GraphNotFinalized,
EmptyGraph,
NonFiniteActivation {
node: NodeId,
value: f32,
},
ParameterOutOfRange {
name: &'static str,
value: f64,
range: &'static str,
},
NonPositiveResonanceParam {
name: &'static str,
value: f32,
},
PulseBudgetExhausted {
budget: u64,
},
ChainBudgetExhausted {
budget: u64,
},
MatrixBudgetExhausted {
budget: u64,
},
IngestionTimeout {
elapsed_s: f64,
},
IngestionNodeBudget {
budget: u64,
},
FingerprintPairBudget {
budget: u64,
},
XlrOverCancellation,
LouvainNonConvergence {
passes: u32,
},
SpectralDivergence,
ResonanceZeroAmplitude,
CasRetryExhausted {
edge: EdgeIdx,
limit: u32,
},
EncodingDetectionFailed {
path: String,
confidence: f32,
},
BinaryFileSkipped {
path: String,
},
LabelCollision {
label: String,
count: usize,
},
CorruptState {
reason: String,
},
SchemaDrift {
reason: String,
},
CounterfactualSeedOverlap {
node: NodeId,
},
UnknownTool {
name: String,
},
InvalidParams {
tool: String,
detail: String,
},
PerspectiveNotFound {
perspective_id: String,
agent_id: String,
},
PerspectiveStale {
perspective_id: String,
expected_gen: u64,
actual_gen: u64,
},
PerspectiveLimitExceeded {
agent_id: String,
current: usize,
limit: usize,
},
RouteSetStale {
route_set_version: u64,
current_version: u64,
},
RouteNotFound {
route_id: String,
perspective_id: String,
},
NavigationAtRoot {
perspective_id: String,
},
BranchDepthExceeded {
perspective_id: String,
depth: usize,
limit: usize,
},
LockNotFound {
lock_id: String,
},
LockOwnership {
lock_id: String,
owner: String,
caller: String,
},
LockScopeTooLarge {
node_count: usize,
cap: usize,
},
LockLimitExceeded {
agent_id: String,
current: usize,
limit: usize,
},
WatchStrategyNotSupported {
strategy: String,
},
AffinityTimeout {
elapsed_ms: f64,
budget_ms: f64,
},
PatternTooBroad {
specificity: f32,
minimum: f32,
},
AntibodyNotFound {
id: String,
},
AntibodyLimitExceeded {
current: usize,
limit: usize,
},
EpidemicBurnout {
infected_pct: f32,
iteration: u32,
},
NoValidInfectedNodes,
NoEntryPoints,
LayerNotFound {
level: u8,
},
IngestError(String),
Io(Error),
Serde(Error),
PersistenceFailed(String),
}Expand description
Central error type covering all failure modes from 05-HARDENING-SYNTHESIS. Each variant references its FM-ID for traceability.
Variants§
DanglingEdge
FM-ACT-011: Edge references a node index that does not exist.
GraphGenerationMismatch
FM-PL-006: Graph structure changed since engine was initialised.
DuplicateNode(NodeId)
FM-ACT-016: Attempted to add a node whose interned ID already exists.
GraphNotFinalized
Graph not finalised — CSR not built yet.
EmptyGraph
Graph is empty (zero nodes).
NonFiniteActivation
FM-PL-001: Non-finite value detected at a NaN firewall boundary.
ParameterOutOfRange
FM-ACT-012: A tuneable parameter is outside its valid range.
NonPositiveResonanceParam
FM-RES-001: Zero or negative wavelength/frequency supplied.
PulseBudgetExhausted
FM-RES-004: Pulse propagation exceeded budget.
ChainBudgetExhausted
FM-TMP-005: Causal chain DFS exceeded budget.
MatrixBudgetExhausted
FM-TMP-001: Co-change sparse matrix exceeded entry budget.
IngestionTimeout
FM-ING-002: Ingestion exceeded timeout.
IngestionNodeBudget
FM-ING-002: Ingestion exceeded node count budget.
FingerprintPairBudget
FM-TOP-014: Fingerprint pair budget exceeded.
XlrOverCancellation
FM-XLR-010: XLR cancelled all signal — fallback to hot-only.
LouvainNonConvergence
FM-TOP-003: Louvain community detection did not converge.
SpectralDivergence
FM-TOP-010: Power iteration may have diverged.
ResonanceZeroAmplitude
FM-RES-020: Division by zero in normalization (max_amp == 0).
CasRetryExhausted
FM-ACT-019: Atomic CAS retry limit exceeded during concurrent weight update.
EncodingDetectionFailed
FM-ING-003: File encoding could not be determined.
BinaryFileSkipped
FM-ING-004: Binary file detected and skipped.
LabelCollision
FM-ING-008: Label collision — multiple nodes share a label.
CorruptState
FM-PL-007: Corrupt state file on load.
SchemaDrift
FM-PL-009: Schema drift — edge identity mismatch on import.
CounterfactualSeedOverlap
FM-CF-001: Seed node was in the removal set.
UnknownTool
Theme 3: Unknown tool name in dispatch.
InvalidParams
Theme 3: Invalid parameters for a tool call.
PerspectiveNotFound
Theme 3: Perspective does not exist for agent.
PerspectiveStale
Theme 3: Perspective route set is stale (generation mismatch).
PerspectiveLimitExceeded
Theme 3: Agent exceeded max perspective count.
RouteSetStale
Theme 3: Route set version mismatch (stale cached routes).
RouteNotFound
Theme 3: Route not found in perspective.
Theme 3: Cannot navigate back — already at root.
BranchDepthExceeded
Theme 3: Branch depth limit exceeded.
LockNotFound
Theme 3: Lock not found.
LockOwnership
Theme 3: Lock ownership violation.
LockScopeTooLarge
Theme 3: Lock scope too large (BFS budget exceeded).
LockLimitExceeded
Theme 3: Agent exceeded max lock count.
WatchStrategyNotSupported
Theme 3: Watcher strategy not supported (e.g. Periodic in V1).
AffinityTimeout
Theme 3: Affinity computation exceeded time budget.
PatternTooBroad
FM-AB-001: Antibody pattern specificity below minimum threshold.
AntibodyNotFound
Antibody not found by ID.
AntibodyLimitExceeded
Antibody storage limit exceeded.
EpidemicBurnout
Epidemic burnout: too many nodes infected too fast.
NoValidInfectedNodes
No valid infected nodes provided for epidemic simulation.
NoEntryPoints
No entry points found for flow simulation.
LayerNotFound
Layer level not found in detection result.
IngestError(String)
Tree-sitter or extractor runtime error.
Io(Error)
Serde(Error)
PersistenceFailed(String)
Trait Implementations§
Source§impl Error for M1ndError
impl Error for M1ndError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()