Skip to main content

ProjectConfig

Struct ProjectConfig 

Source
pub struct ProjectConfig {
Show 16 fields pub tmux_session: Option<String>, pub agent_doc_auto_compact: Option<usize>, pub agent_doc_queue_context_reset: Option<bool>, pub agent_doc_gate_autoverify: Option<bool>, pub agent_doc_clear_threshold: Option<u8>, pub agent_doc_supervisor_auto_recycle: Option<bool>, pub agent_doc_agent_change_restart: Option<bool>, pub agent_doc_supervisor_auto_install: Option<bool>, pub guards: GuardConfig, pub lint: LintConfig, pub ssh: SshConfig, pub components: BTreeMap<String, ComponentConfig>, pub documents: DocumentsConfig, pub vision: VisionConfig, pub stash_session_ttl_secs: u64, pub stash_session_ttl_prune_enabled: bool,
}
Expand description

Project-level configuration, read from .agent-doc/config.toml relative to CWD.

Fields§

§tmux_session: Option<String>

Target tmux session name for this project.

§agent_doc_auto_compact: Option<usize>

Explicit opt-in for automatic compaction/reload policies. Session-accretion heuristics never compact by themselves; omit to disable.

§agent_doc_queue_context_reset: Option<bool>

Explicit opt-in for the supervisor idle-queue watch to pre-emptively interleave a context-clear (/clear) before an active queue head when session accretion is unhealthy (#nm1x-no-preempt-clear). Off by default so a manual Run Agent Doc / auto-loop drain never fires a pre-emptive /clear that churns the session or is rejected mid-turn.

§agent_doc_gate_autoverify: Option<bool>

Explicit opt-in for opportunistic gated-review auto-verification (#optverify). When true, preflight may auto-flip a gated [/] review item carrying a verify predicate to [x] once its proof marker is provable from ops.log. A per-document frontmatter agent_doc_gate_autoverify takes precedence. Off by default — never silently flip a human gate without this opt-in.

§agent_doc_clear_threshold: Option<u8>

Project-default context-usage percentage (0–100) at or above which an opted-in editor pre-emptively runs /clear (#clear-opt-in-threshold). A per-document frontmatter agent_doc_clear_threshold takes precedence; absent here too, the built-in default of 50 applies.

§agent_doc_supervisor_auto_recycle: Option<bool>

Explicit opt-in for the in-process supervisor (agent-doc start --route-owned) to self-recycle onto a freshly-installed binary at a turn or inter-queue-item boundary (#ctlrecycle R3 / #suprecyclequeue). When true, a stale supervisor hot-reloads via execve (preserving the live agent child + pane) without a manual agent-doc session restart-supervisor. Resolution precedence: the env var AGENT_DOC_SUPERVISOR_AUTO_RECYCLE (truthy enables, 0/false/off force-disables), then a per-document frontmatter agent_doc_supervisor_auto_recycle opt-in/opt-out, then this project value. Off by default — the image swap is high blast-radius, so projects opt in (dog-fooding repos that rebuild constantly set this so the supervisor always promotes the latest build automatically).

§agent_doc_agent_change_restart: Option<bool>

Per-project opt-in/opt-out for restart-agent on a harness change (#agentreloadrestart). When the resolved harness from current frontmatter (agent:) differs from the one the running supervisor launched with, true lets the supervisor auto-restart the agent at the next idle/turn boundary so changing agent (e.g. claude→opencode) takes effect without a manual restart. Resolution precedence: env AGENT_DOC_AGENT_CHANGE_RESTART, then per-document frontmatter agent_doc_agent_change_restart, then this project value, then the built-in default of ON.

§agent_doc_supervisor_auto_install: Option<bool>

Per-project opt-in/opt-out for supervisor auto-install (#supautoinstall). When a DOGFOODING supervisor finds agent-doc’s own source newer than the installed binary at an idle boundary, this controls whether it rebuilds + installs (then the #ctlrecycle recycle promotes the new build) or only logs supervisor_source_newer_detected. Resolution precedence: env AGENT_DOC_SUPERVISOR_AUTO_INSTALL (truthy enables, 0/false/off force-disables), then the per-document frontmatter agent_doc_supervisor_auto_install, then this project value, then the built-in default of ON. Never fires for a non-agent-doc dogfood session document, so the default is safe for ordinary users and ordinary project docs cannot force it on.

§guards: GuardConfig

Guard behavior overrides (for example pending-capture enforcement).

§lint: LintConfig

Lint behavior overrides for the agent-doc finalize lint gate.

§ssh: SshConfig

Project-local SSH requirement mappings for known ops documents.

§components: BTreeMap<String, ComponentConfig>

Component-specific configuration (patch modes, timestamps, max_entries, hooks).

§documents: DocumentsConfig

Opt-in gating for which .md files become agent-doc session documents.

§vision: VisionConfig

Vision (describe-image) provider configuration.

§stash_session_ttl_secs: u64

#stash-session-ttl-prune: idle TTL in seconds for stash-window agent-doc panes. When set (> 0), resync logs which panes would be reaped. Set stash_session_ttl_prune_enabled = true to enable destructive kill. Default 0 (disabled).

§stash_session_ttl_prune_enabled: bool

#stash-session-ttl-prune: enable destructive kill of idle stash panes that exceed stash_session_ttl_secs. Report-only when false. Default false.

Trait Implementations§

Source§

impl Debug for ProjectConfig

Source§

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

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

impl Default for ProjectConfig

Source§

fn default() -> ProjectConfig

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

impl<'de> Deserialize<'de> for ProjectConfig

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 ProjectConfig

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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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<M> Meta for M
where M: Default,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.