pub struct StartArgs {Show 15 fields
pub repo: PathBuf,
pub intent: String,
pub engine: EngineChoice,
pub max_iterations: Option<u32>,
pub state_dir: PathBuf,
pub project: Option<CoderProject>,
pub model: Option<String>,
pub routing_exclusions: Vec<String>,
pub repair_invokes: Option<u32>,
pub transient_retries: Option<u32>,
pub discussion_id: Option<String>,
pub base: Option<String>,
pub browser: bool,
pub distributed: bool,
pub workers: Vec<String>,
}Fields§
§repo: PathBuf§intent: String§engine: EngineChoice§max_iterations: Option<u32>None falls back to the operator config’s default_max_iterations
(~/.car/coder.toml), resolved inside start_session against the
config it already loads — so the file is read once per start, and the
preference / keep-on-failure / iteration defaults can’t drift.
state_dir: PathBuf§project: Option<CoderProject>When set, this session works on a CAR-managed project (repo is the
project’s repo path). Carries the project metadata needed for
commit-to-main delivery and, for Agent projects, draft persistence and
rebuild-in-place registration. None = raw-repo session.
model: Option<String>Per-session native-loop model pin (overrides ~/.car/coder.toml’s
model). None/blank falls back to the config, then adaptive routing.
routing_exclusions: Vec<String>Canonical model names the adaptive native loop must not route to. This is a strict separation boundary when non-empty. Ignored if the effective session model is pinned.
repair_invokes: Option<u32>External-engine hypothesis budget. None = the engine default.
transient_retries: Option<u32>External-engine availability budget. None = the engine default.
discussion_id: Option<String>A coder.discuss conversation this run came out of. Its agreed
constraints are folded into contract derivation, so something stated
once in the discussion does not have to be restated in the intent, and
the session records the provenance. An unknown id is a hard error — a
run that silently drops its grounding is worse than one that refuses.
base: Option<String>Start the worktree at this commit-ish instead of the repository’s
HEAD — e.g. another developer’s published branch. Resolved to a full
SHA before anything is provisioned; an unknown revision fails the start.
None/blank = the discussion’s prior delivered commit, otherwise HEAD.
Not valid for project sessions, which deliver
straight to the project’s main.
browser: boolExpose the assistant’s browser tools to this session’s native loop. False unless the caller explicitly opts in.
distributed: boolFarm this session’s subtasks across reachable CAR instances, not just
this machine. Only the foreman engine can use it; every other rung
runs here regardless.
OFF by default and never inferred: distribution spends agent quota on
other people’s machines, which is a thing to ask for rather than a
default that could be wrong. Mirrors foreman.run { distributed }.
workers: Vec<String>Restrict placement to these instances. Empty = every instance that can
serve the repository. Mirrors foreman.run { workers }, which the
operator who knows their own fleet already has.
Auto Trait Implementations§
impl Freeze for StartArgs
impl RefUnwindSafe for StartArgs
impl Send for StartArgs
impl Sync for StartArgs
impl Unpin for StartArgs
impl UnsafeUnpin for StartArgs
impl UnwindSafe for StartArgs
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
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