Skip to main content

Config

Struct Config 

Source
pub struct Config {
Show 53 fields pub project_root: Option<PathBuf>, pub validation_depth: u32, pub checkpoint_ttl_hours: u32, pub max_symbol_depth: u32, pub formatter_timeout_secs: u32, pub type_checker_timeout_secs: u32, pub format_on_edit: bool, pub hashline_enabled: bool, pub validate_on_edit: Option<String>, pub formatter: HashMap<String, String>, pub checker: HashMap<String, String>, pub restrict_to_project_root: bool, pub search_index: bool, pub index: IndexConfig, pub semantic_search: bool, pub views: ViewsConfig, pub aft_search_registered: bool, pub callgraph_store: bool, pub callgraph_chunk_size: usize, pub experimental_bash_rewrite: bool, pub experimental_bash_compress: bool, pub experimental_bash_background: bool, pub max_background_bash_tasks: usize, pub bash_long_running_reminder_enabled: bool, pub bash_long_running_reminder_interval_ms: u64, pub foreground_wait_window_ms: u64, pub bash: BashConfig, pub bash_permissions: bool, pub sandbox: SandboxConfig, pub search_index_max_file_size: u64, pub semantic: SemanticBackendConfig, pub inspect: InspectConfig, pub backup: BackupConfig, pub worktree: WorktreeConfig, pub github: GithubConfig, pub gh_shim: GhShimConfig, pub gh_read: GhReadConfig, pub git: GitConfig, pub experimental_lsp_ty: bool, pub lsp_servers: Vec<UserServerDef>, pub disabled_lsp: HashSet<String>, pub diagnostics_on_edit: bool, pub lsp_paths_extra: Vec<PathBuf>, pub lsp_auto_install_binaries: HashSet<String>, pub lsp_inflight_installs: HashSet<String>, pub storage_dir: Option<PathBuf>, pub url_fetch_allow_private: bool, pub hoist_builtin_tools: bool, pub tool_surface: String, pub disabled_tools: Vec<String>, pub harness: Option<Harness>, pub diagnostic_cache_size: usize, pub idle: IdleConfig,
}

Fields§

§project_root: Option<PathBuf>

Root directory of the project being analyzed. None if not scoped.

§validation_depth: u32

How many levels of call-graph edges to follow during validation (default: 1).

§checkpoint_ttl_hours: u32

Hours before legacy backup-session maintenance may collect inactive history (default: 24). Named checkpoint retention is intentionally fixed at fourteen days and is not controlled by configuration.

§max_symbol_depth: u32

Maximum depth for recursive symbol resolution (default: 10).

§formatter_timeout_secs: u32

Seconds before killing a formatter subprocess (default: 10).

§type_checker_timeout_secs: u32

Seconds before killing a type-checker subprocess (default: 30).

§format_on_edit: bool

Whether to auto-format files after edits (default: false).

§hashline_enabled: bool

Whether the hashline edit/read surface is enabled for eligible sessions. Resolved from the public edit_mode enum in aft.jsonc.

§validate_on_edit: Option<String>

Whether to auto-validate files after edits (default: false). When “syntax”, only tree-sitter parse check. When “full”, runs type checker.

§formatter: HashMap<String, String>

Per-language formatter overrides. Keys: “typescript”, “python”, “rust”, “go”. Values: “biome”, “oxfmt”, “prettier”, “deno”, “ruff”, “black”, “rustfmt”, “goimports”, “gofmt”, “none”.

§checker: HashMap<String, String>

Per-language type checker overrides. Keys: “typescript”, “python”, “rust”, “go”. Values: “tsc”, “tsgo”, “biome”, “pyright”, “ruff”, “cargo”, “go”, “staticcheck”, “none”.

§restrict_to_project_root: bool

Whether to restrict file operations to within project_root (default: false). When true, write-capable commands reject paths outside the project root.

§search_index: bool

Enable the trigram search index (default: false).

§index: IndexConfig

User-tier standing roots. Empty by default, so normal session indexing is unchanged.

§semantic_search: bool

Enable semantic search (default: false).

§views: ViewsConfig

Content-addressed index view assembly. Disabled by default.

§aft_search_registered: bool

Whether the plugin registered the aft_search tool for this surface (default: false). Forwarded by the plugin’s resolved registration predicate (semantic on + not minimal + not disabled). Used only to pick the grep-rewrite footer: when true the footer steers to aft_search, otherwise to the grep tool. Not a capability gate.

§callgraph_store: bool

Enable the persisted callgraph store substrate (default: true).

§callgraph_chunk_size: usize

Number of files to parse in a single batch during callgraph store cold build (default: 100). Lower values reduce peak memory during cold build. Set to 0 to disable chunking and parse all files at once.

§experimental_bash_rewrite: bool

Enable experimental bash command rewriting (default: false).

§experimental_bash_compress: bool

Enable experimental bash command compression (default: false).

§experimental_bash_background: bool

Enable experimental bash background execution (default: false).

§max_background_bash_tasks: usize

Maximum number of background bash tasks allowed to run concurrently (default: 8).

§bash_long_running_reminder_enabled: bool

Emit reminders for long-running bash tasks (default: true).

§bash_long_running_reminder_interval_ms: u64

Milliseconds between long-running bash reminders (default: 10 minutes).

§foreground_wait_window_ms: u64

Milliseconds to wait before a foreground bash task is promoted to background handling.

§bash: BashConfig

Plugin-owned bash settings accepted by configure but inert in the engine.

§bash_permissions: bool

Enable OpenCode-style bash permission prompts (default: false).

§sandbox: SandboxConfig

Native sandbox policy for first-party bash and PTY processes.

§search_index_max_file_size: u64

Maximum file size to fully index in bytes (default: 1MB).

§semantic: SemanticBackendConfig§inspect: InspectConfig§backup: BackupConfig§worktree: WorktreeConfig

Linked-worktree RAM overlay. Default off; see WorktreeConfig.

§github: GithubConfig

Resolved GitHub integration gates. User configuration only.

§gh_shim: GhShimConfig

Effective gh shim gate plus its legacy binary override.

§gh_read: GhReadConfig

Effective structured GitHub read gate retained for the read engine API.

§git: GitConfig

Git attribution for AFT-spawned agent children. Default off.

§experimental_lsp_ty: bool

Enable Astral ty as an experimental Python LSP server (default: false).

§lsp_servers: Vec<UserServerDef>

User-defined LSP servers registered by the OpenCode plugin.

§disabled_lsp: HashSet<String>

Lowercase LSP server IDs disabled by user config.

§diagnostics_on_edit: bool

Whether the system should request inline diagnostics after a tool call edits or writes a file.

§lsp_paths_extra: Vec<PathBuf>

Extra directories to search when resolving LSP binaries. The plugin populates these from its own auto-install cache (e.g. ~/.cache/aft/lsp-packages/<pkg>/node_modules/.bin/) so an LSP binary installed by AFT is discoverable without needing it on PATH. Resolution order: <project_root>/node_modules/.bin/<bin>lsp_paths_extra/<bin> (in order) → PATH via which. Python-family servers additionally probe the selected workspace’s .venv/venv first.

§lsp_auto_install_binaries: HashSet<String>

Binary names the hosting plugin knows how to auto-install.

Built-in LSPs discovered from files only emit missing-binary warnings when their binary is in this set. User-configured lsp_servers keep warning unconditionally.

§lsp_inflight_installs: HashSet<String>

Binary names with plugin-managed auto-installs currently in flight.

Missing-binary warnings are suppressed while the install is actively running; install failure reporting is handled by the plugin after the background work settles.

§storage_dir: Option<PathBuf>

Persistent storage directory for indexes (trigram, semantic). Set by the plugin to the XDG-compliant path (e.g. ~/.local/share/opencode/storage/plugin/aft/). Falls back to ~/.cache/aft/ if not set.

§url_fetch_allow_private: bool

Allow URL-fetch commands to access private network hosts. Default false; hosting plugins only forward this from user-level config.

§hoist_builtin_tools: bool

Resolved host-tool registration preference. The Rust core retains this value for cross-harness config parity; the hosting plugin owns registration.

§tool_surface: String

Resolved tool-surface tier (“minimal”, “recommended”, or “all”). The hosting plugin owns registration; the core keeps the value so it can reach the same conclusion about which built-in slots survive.

§disabled_tools: Vec<String>

Agent-visible tool names the user switched off. Kept for the same reason as tool_surface: slot-survival questions must be answered identically on both sides of the plugin boundary.

§harness: Option<Harness>

Hosting harness identity supplied by configure.

§diagnostic_cache_size: usize

Maximum number of (server, file) entries kept in the in-memory diagnostic cache. Older entries are evicted in LRU order when the cap is exceeded. Set to 0 to disable the cap entirely. Default: 5000 (covers very large monorepos with bounded memory).

§idle: IdleConfig

Idle reclamation windows for unbound-root artifacts and language servers.

Implementations§

Source§

impl Config

Source

pub fn semantic_backend_label(&self) -> &'static str

Source§

impl Config

Source

pub fn read_slot_survives(&self) -> bool

Whether the host’s tagged read slot survives surface, hoisting, and disable filters.

Only a tagged read mints the [path#TAG] snapshots a hashline patch can address, so a session that lost the read slot must not be offered the hashline edit arm. The predicate is deliberately spelled the same way as the plugins’ registration check so both sides of the boundary classify a given config identically.

Trait Implementations§

Source§

impl Clone for Config

Source§

fn clone(&self) -> Config

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Config

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Config

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for Config
where Config: Default,

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for Config

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert 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>

Convert 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)

Convert &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)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<'a, T> FromIn<'a, T> for T

Source§

fn from_in(t: T, _: &'a Allocator) -> T

Converts to this type from the input type within the given allocator.
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<'a, T, U> IntoIn<'a, U> for T
where U: FromIn<'a, T>,

Source§

fn into_in(self, allocator: &'a Allocator) -> U

Converts this type into the (usually inferred) input type within the given allocator.
Source§

impl<D> OwoColorize for D

Source§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
Source§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
Source§

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black
Source§

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black
Source§

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red
Source§

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red
Source§

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green
Source§

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green
Source§

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow
Source§

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow
Source§

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue
Source§

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue
Source§

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta
Source§

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta
Source§

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple
Source§

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple
Source§

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan
Source§

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan
Source§

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white
Source§

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white
Source§

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default
Source§

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default
Source§

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black
Source§

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black
Source§

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red
Source§

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red
Source§

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green
Source§

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green
Source§

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow
Source§

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow
Source§

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue
Source§

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue
Source§

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta
Source§

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta
Source§

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple
Source§

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple
Source§

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan
Source§

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan
Source§

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white
Source§

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white
Source§

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold
Source§

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim
Source§

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized
Source§

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined
Make the text blink
Make the text blink (but fast!)
Source§

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors
Source§

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text
Source§

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text
Source§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either OwoColorize::fg or a color-specific method, such as OwoColorize::green, Read more
Source§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either OwoColorize::bg or a color-specific method, such as OwoColorize::on_yellow, Read more
Source§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
Source§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
Source§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
Source§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
Source§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more