pub struct Fleet {Show 16 fields
pub name: String,
pub display_name: String,
pub goal: String,
pub router: Option<String>,
pub team_id: Option<String>,
pub members: Vec<String>,
pub channel_id: String,
pub rules: Vec<String>,
pub skills: Vec<String>,
pub loop_cfg: Option<FleetLoop>,
pub parallel: Option<ParallelConfig>,
pub hitl: Option<FleetHitl>,
pub requires_programs: Vec<ProgramDep>,
pub limits: Option<Limits>,
pub needs: Vec<String>,
pub procedure: Vec<FleetStep>,
}Fields§
§name: String§display_name: String§goal: String§router: Option<String>§team_id: Option<String>Team identifier for this fleet; set when the fleet is affiliated with a MUR Server team. The fleet runner sets MUR_ACTIVE_TEAM from this value before each member turn so team-scoped skills inject correctly.
members: Vec<String>§channel_id: String§rules: Vec<String>§skills: Vec<String>§loop_cfg: Option<FleetLoop>§parallel: Option<ParallelConfig>§hitl: Option<FleetHitl>How this fleet handles risk-tiered approvals. Absent → auto: defer when nothing can answer (no TTY), wait when a terminal is attached.
requires_programs: Vec<ProgramDep>External programs this artifact needs at runtime (portable-deps spec).
Absent → empty; resolved by mur agent/fleet doctor + install-deps.
limits: Option<Limits>Execution limits for runs of this fleet (spec 2026-09-12 §3.1). Absent
→ inherit from config.yaml; see limits_or_legacy for the read of
pre-limits: files.
needs: Vec<String>Tools every member needs for this fleet’s work, e.g.
[write_file, edit_file, bash] for a coding fleet. Checked by each
delegate BEFORE its first model call (spec 2026-09-12 §3.8): a member
whose policy lacks one fails at dispatch with the grant command, not
after burning its budget. Empty = no preflight.
procedure: Vec<FleetStep>A fixed step graph for every run of this fleet. Empty → the router plans each run (and falls back to broadcast). Non-empty → the router is never asked, and an invalid graph fails the run loudly instead of falling back: a hand-written plan that silently degrades to a broadcast is the failure this field exists to prevent.
Implementations§
Source§impl Fleet
impl Fleet
Sourcepub fn validate_procedure(&self) -> Result<(), String>
pub fn validate_procedure(&self) -> Result<(), String>
Structural checks on procedure: (members, ids, deps, size, and the
parallel: exclusion). Cycle detection lives with the executor’s DAG
validator in mur-core, which the run path applies on top of this.
Source§impl Fleet
impl Fleet
Sourcepub fn limits_or_legacy(&self) -> Option<Limits>
pub fn limits_or_legacy(&self) -> Option<Limits>
The fleet’s limits: block, or one derived from the legacy
loop.deadline / loop.budget_usd when the block is absent (§6). An
explicit block — even an empty one — is authoritative; legacy zero /
empty values are absence, not a value.