pub struct SynapsConfig {Show 39 fields
pub model: Option<String>,
pub thinking_budget: Option<u32>,
pub thinking_level: Option<ReasoningLevel>,
pub context_window: Option<u64>,
pub compaction_model: Option<String>,
pub compaction_mode: CompactionMode,
pub compaction_exclude: Vec<ContentClass>,
pub max_tool_output: usize,
pub bash_timeout: u64,
pub bash_max_timeout: u64,
pub subagent_timeout: u64,
pub api_retries: u32,
pub refusal_retries: u32,
pub telemetry: String,
pub cache_diagnostics: bool,
pub cache_ttl: CacheTtl,
pub max_fps: u32,
pub scroll_lines: Option<u16>,
pub theme: Option<String>,
pub theme_transition: ThemeTransitionMode,
pub tui_background_opaque: bool,
pub agent_name: Option<String>,
pub identity: Option<String>,
pub disabled_plugins: Vec<String>,
pub favorite_models: Vec<String>,
pub disabled_skills: Vec<String>,
pub progressive_tool_disclosure: bool,
pub session_persistence: SessionPersistence,
pub disabled_tools: Vec<String>,
pub shell: ShellConfig,
pub server: ServerConfig,
pub bridge: BridgeConfig,
pub auth: AuthConfig,
pub events: EventsConfig,
pub provider_keys: BTreeMap<String, String>,
pub keybinds: HashMap<String, String>,
pub turn_budgets: TurnBudgetsConfig,
pub memory: MemoryConfig,
pub warnings: Vec<String>,
}Expand description
Parsed configuration from the config file.
Fields§
§model: Option<String>§thinking_budget: Option<u32>§thinking_level: Option<ReasoningLevel>Named reasoning level, parsed from the same thinking = … key.
When Some, this is the authoritative level. When None, fall back
to thinking_budget for legacy numeric-only values.
context_window: Option<u64>§compaction_model: Option<String>§compaction_mode: CompactionModeWhere compaction summarization runs (spec §9.4): remote provider or local-only (zero network construction).
compaction_exclude: Vec<ContentClass>Content classes excluded from remote compaction disclosure.
max_tool_output: usize§bash_timeout: u64§bash_max_timeout: u64§subagent_timeout: u64§api_retries: u32§refusal_retries: u32§telemetry: String§cache_diagnostics: bool§cache_ttl: CacheTtlPrompt-cache TTL strategy: “5m” (default) | “1h” | “hybrid”.
max_fps: u32Max TUI redraw rate in frames/sec — caps streaming redraws (e.g. 60,
144, 240). User input always redraws immediately regardless. Default
60. Range 1–1000. The frame budget is 1000 / max_fps ms.
scroll_lines: Option<u16>Lines to scroll per mouse-wheel event. Different terminal emulators emit 1–9+ scroll events per physical notch; set this to compensate. Default: 3. Range 1–20.
theme: Option<String>§theme_transition: ThemeTransitionModeAnimated theme transitions: "on" (350 ms cross-fade, default),
"off" (instant snap), or integer milliseconds (0–2000).
tui_background_opaque: boolWhether the TUI paints its own opaque background. false preserves the terminal background.
agent_name: Option<String>§identity: Option<String>§disabled_plugins: Vec<String>§favorite_models: Vec<String>§disabled_skills: Vec<String>§progressive_tool_disclosure: boolOpt-in progressive tool disclosure (Task 18). When false, providers receive the existing full tool schema byte-for-byte. When true, each stream starts with the small essential local core plus discovery and authorization gateways; exact activations are added per session.
session_persistence: SessionPersistenceOpt-in session persistence strategy (Task 35, spec §9.8). Json
(default) is the unchanged legacy full-rewrite path; Journal adds
an append-only delta journal with periodic atomic snapshots. See
docs/decisions/T35-session-journal-opt-in.md.
disabled_tools: Vec<String>Built-in tools to disable by runtime name (e.g. “bash”, “ls”). Removed from the registry at boot so they’re never offered to the model.
shell: ShellConfig§server: ServerConfig§bridge: BridgeConfig§auth: AuthConfig§events: EventsConfig§provider_keys: BTreeMap<String, String>§keybinds: HashMap<String, String>§turn_budgets: TurnBudgetsConfigTyped per-role turn budgets (Task 23, spec §8.1).
memory: MemoryConfigContinuous-memory settings surface (Task A2, spec §12).
warnings: Vec<String>Non-fatal problems found while parsing the config file (unknown keys, unparseable values). Surfaced once at startup — never block boot.
Trait Implementations§
Source§impl Clone for SynapsConfig
impl Clone for SynapsConfig
Source§fn clone(&self) -> SynapsConfig
fn clone(&self) -> SynapsConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SynapsConfig
impl Debug for SynapsConfig
Source§impl Default for SynapsConfig
impl Default for SynapsConfig
Source§fn default() -> SynapsConfig
fn default() -> SynapsConfig
Auto Trait Implementations§
impl Freeze for SynapsConfig
impl RefUnwindSafe for SynapsConfig
impl Send for SynapsConfig
impl Sync for SynapsConfig
impl Unpin for SynapsConfig
impl UnsafeUnpin for SynapsConfig
impl UnwindSafe for SynapsConfig
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.