pub struct Settings {
pub managed_root: Option<String>,
pub targets: Option<Vec<String>>,
pub model_visibility: ModelVisibility,
pub models_cache_ttl_hours: u32,
pub min_mars_version: Option<String>,
pub default_harness: Option<String>,
pub default_model: Option<String>,
pub harness_order: Option<Vec<String>>,
pub provider_order: Option<Vec<String>>,
pub agent_emission: Option<AgentEmission>,
pub model_policies: Vec<ModelPolicyRule>,
}Expand description
Global settings — extensible via additional fields.
Fields§
§managed_root: Option<String>Custom managed output directory (e.g. “.claude”).
When unset, mars no longer creates a generic .agents target by default;
.mars/ is the canonical compiled store and native emission is handled
by target-specific compiler paths.
targets: Option<Vec<String>>Managed target directories materialized from .mars/ canonical store.
When set, only listed targets are populated. When unset, managed_root
is used for backwards compatibility; otherwise no target-sync targets
are enabled by default.
model_visibility: ModelVisibility§models_cache_ttl_hours: u32§min_mars_version: Option<String>Minimum mars binary version required to use this project. Old binary + new package with this set → compatibility error. New binary + old package without this set → succeeds with defaults.
default_harness: Option<String>Default harness for launch routing when profile/alias/provider cannot resolve one.
default_model: Option<String>Project-wide default model token when no CLI override or profile model is set.
harness_order: Option<Vec<String>>Ordered harness preference for launch-bundle candidate selection.
When set, replaces built-in provider preference ordering for candidate selection. First installed candidate wins.
provider_order: Option<Vec<String>>Ordered provider preference for model-first routing tie-breaks.
Optional soft preference used only after model-name matching. Empty means preserve harness-reported model order.
agent_emission: Option<AgentEmission>Controls whether harness-bound agents are emitted to native harness dirs.
auto (the default when unset) emits for standalone mars syncs and
suppresses native agent artifacts when Meridian invokes mars with
MERIDIAN_MANAGED=1.
model_policies: Vec<ModelPolicyRule>Implementations§
Source§impl Settings
impl Settings
pub fn effective_links(&self) -> EffectiveLinks
Sourcepub fn managed_targets(&self) -> Vec<String>
pub fn managed_targets(&self) -> Vec<String>
Returns the effective list of managed target directories.
- If
targetsis explicitly set, returns those targets normalized through the link migration boundary. - If
targetsis unset, uses normalizedmanaged_rootfor backwards compatibility. - If neither is set, returns no target-sync targets;
.mars/remains the canonical compiled store.
Sourcepub fn linked_harnesses(&self) -> Vec<String>
pub fn linked_harnesses(&self) -> Vec<String>
Returns known harness intents from configured links. Generic targets are ignored.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Settings
impl<'de> Deserialize<'de> for Settings
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl StructuralPartialEq for Settings
Auto Trait Implementations§
impl Freeze for Settings
impl RefUnwindSafe for Settings
impl Send for Settings
impl Sync for Settings
impl Unpin for Settings
impl UnsafeUnpin for Settings
impl UnwindSafe for Settings
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,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more