Status: Stable — resolve_conflict() wired at runtime in interpreter tree evaluation.
When multiple layers produce competing decisions, Spanda applies a fixed precedence order.
| Local robot | Fleet coordinator | Control center | Winner |
|---|---|---|---|
| Continue | Reassign | — | Fleet (unless safety/trust blocks) |
| Continue | — | Abort | Control center |
| E-stop | Continue | Continue | Safety reflex |
| Continue | Continue | — | Local (lowest precedence when no higher conflict) |
The resolve_conflict() function in spanda-decision applies precedence automatically. Rejected
alternatives are recorded in DistributedDecisionRecord.rejected_alternatives.
Consensus (quorum, majority, trust-weighted voting) applies within Layer 2 for fleet/swarm agreement.
Conflict resolution applies across layers when decisions disagree.
spanda decision simulate mission.sd --network-partition
spanda decision simulate mission.sd --fleet-coordinator-failure
Attack scenarios (spanda decision simulate-attack split_brain_coordinator) test split-brain
handling via quorum and backup leader promotion.