pub struct ThreadStartArgs {Show 16 fields
pub name: String,
pub from: Option<String>,
pub path: Option<PathBuf>,
pub workspace: WorkspaceModeArg,
pub agent_provider: Option<String>,
pub agent_model: Option<String>,
pub task: Option<String>,
pub parent_thread: Option<String>,
pub automated: bool,
pub print_cd_path: bool,
pub daemon: bool,
pub no_daemon: bool,
pub interactive_setup: bool,
pub shared_target: bool,
pub no_shared_target: bool,
pub hydrate: bool,
}Expand description
Arguments for the thread start and top-level start commands.
Fields§
§name: StringThread name to create or resume.
from: Option<String>Base state for the thread (default: HEAD).
path: Option<PathBuf>Filesystem path for the isolated checkout.
workspace: WorkspaceModeArgWorkspace mode for the thread.
agent_provider: Option<String>AI provider name for the registered agent thread.
agent_model: Option<String>AI model name for the registered agent thread.
task: Option<String>First-class task/goal metadata for the thread.
parent_thread: Option<String>Parent thread identifier for delegated child work.
automated: boolInternal hint that this thread was started by automation rather than a direct CLI flow.
print_cd_path: boolPrint only the new thread’s absolute checkout path to stdout and exit.
Designed for shell wrappers that want to cd into the new checkout:
dir=$(heddle start foo –print-cd-path) && cd “$dir”
Skips all other output (no JSON, no styling, no extra lines) so the
stdout is a clean path. Mutually exclusive with --watch-style flows.
daemon: boolFor --workspace virtualized: hand the filesystem mount off to the
long-lived heddled daemon (default). The daemon owns the
mount across CLI invocations, so the mount survives heddle thread start exiting. Linux-only; no-op for heavy
workspaces. Pass --no-daemon to keep the mount in-process
instead.
no_daemon: boolFor --workspace virtualized: keep the filesystem mount in this CLI
process instead of handing it to the heddled daemon. The
mount unmounts when this heddle thread start exits — useful
for one-shot inspections, debugging the in-process mount path,
or environments where the daemon can’t run.
interactive_setup: boolAllow this invocation to open System Settings and wait briefly for FSKit approval. Requires an interactive terminal; otherwise setup fails before opening a GUI.
Redirect cargo’s target/ directory to a workspace-wide shared
path (.heddle/targets/<workspace-fingerprint>/) instead of
letting cargo create a per-thread target/. Saves multiples of
gigabytes when several materialized threads coexist in a Rust
workspace. Implemented by writing .cargo/config.toml inside
the new thread checkout — transparent to any cargo invocation
in that directory.
Default: on for solid/materialized threads when the repository
root has a Cargo.toml. Pass --no-shared-target to opt out.
Explicit --shared-target forces the attempt on (still a no-op
without a top-level Cargo.toml). Has no effect on virtualized
(mounted) threads.
Opt out of the default shared cargo target/ redirect for
solid/materialized threads in Rust workspaces. See
--shared-target.
hydrate: boolSymlink the origin checkout’s top-level ignored dependency
directories (node_modules, .venv, target, …) into this
isolated checkout so it’s immediately buildable — run
tsc/eslint/tests without reinstalling deps from scratch.
The links point back at the origin’s directories and stay
ignored, so the deps are never captured into heddle. Admin dirs
(.git, .heddle) are excluded; only top-level ignored
directories are linked. Has no effect on virtualized (mounted)
threads.
Trait Implementations§
Source§impl Args for ThreadStartArgs
impl Args for ThreadStartArgs
Source§fn augment_args<'b>(__clap_app: Command) -> Command
fn augment_args<'b>(__clap_app: Command) -> Command
Source§fn augment_args_for_update<'b>(__clap_app: Command) -> Command
fn augment_args_for_update<'b>(__clap_app: Command) -> Command
Command so it can instantiate self via
FromArgMatches::update_from_arg_matches_mut Read moreSource§impl Clone for ThreadStartArgs
impl Clone for ThreadStartArgs
Source§fn clone(&self) -> ThreadStartArgs
fn clone(&self) -> ThreadStartArgs
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 ThreadStartArgs
impl Debug for ThreadStartArgs
Source§impl FromArgMatches for ThreadStartArgs
impl FromArgMatches for ThreadStartArgs
Source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
Source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches,
) -> Result<Self, Error>
fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>
Source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Source§fn update_from_arg_matches_mut(
&mut self,
__clap_arg_matches: &mut ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Auto Trait Implementations§
impl Freeze for ThreadStartArgs
impl RefUnwindSafe for ThreadStartArgs
impl Send for ThreadStartArgs
impl Sync for ThreadStartArgs
impl Unpin for ThreadStartArgs
impl UnsafeUnpin for ThreadStartArgs
impl UnwindSafe for ThreadStartArgs
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> 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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request