pub(crate) struct LoadedProject {Show 15 fields
pub name: String,
pub path: PathBuf,
pub display_path: String,
pub org: String,
pub accounts: Vec<String>,
pub fallback_accounts: Vec<String>,
pub model: Option<String>,
pub env: HashMap<String, String>,
pub env_file: Option<String>,
pub max_workers: Option<usize>,
pub permission_mode: PermissionMode,
pub document_roots: Vec<PathBuf>,
pub handoff: Option<HandoffSettings>,
pub browser_profile: ProfileKey,
pub slack_workspace: Option<String>,
}Fields§
§name: String§path: PathBuf§display_path: StringOriginal path string from forge.toml, preserved for display
(e.g. ~/Projects/forge with ~ un-expanded). Use path for
filesystem access; this for human-readable output.
org: StringName of the org this project belongs to (matches
LoadedOrg.name). The spawn resolves the org’s pin and walk
order through this back-reference.
accounts: Vec<String>Cached pinned account list from the project’s org. Duplicated here so callers don’t need to walk the org list on every resolution.
fallback_accounts: Vec<String>Cached fallback list from the project’s org, alongside
accounts. Absent key -> empty.
model: Option<String>The project’s model: fills the CLI’s model slots at spawn
(ANTHROPIC_DEFAULT_*_MODEL, ANTHROPIC_SMALL_FAST_MODEL,
CLAUDE_CODE_SUBAGENT_MODEL) and is the model the walk matches
accounts on. A project that declares none cannot spawn.
env: HashMap<String, String>Per-project environment from the entry’s env table, layered
over the account’s env at spawn. An ANTHROPIC_BASE_URL or
ANTHROPIC_AUTH_TOKEN here desyncs forge’s own accounting -
the usage probe and the selection walk both read the ACCOUNT
map, so they measure a different endpoint.
env_file: Option<String>The env_file path the entry declared, kept for the settings page;
its entries are already folded into env.
max_workers: Option<usize>Cap on this project’s live dynamic workers; None keeps the
default. See ProjectEntry::max_workers.
permission_mode: PermissionModeCLI permission mode stamped onto every session this project
spawns. Resolved once at load; absent key resolves to auto.
document_roots: Vec<PathBuf>The extra roots the document read accepts beyond a session’s own
tree: the entry’s document_roots with ~ expanded. Empty for a
project that declares none.
handoff: Option<HandoffSettings>This project’s handoff table, unresolved; None inherits the
top-level one entirely.
browser_profile: ProfileKeyThe browser profile this project’s sessions drive: the project’s
override, else the org’s, else <org>/default.
slack_workspace: Option<String>The [[slack]] label this project’s sessions act in: the
project’s binding, else the org’s. None leaves the Slack tools
refusing with the key to add.
Trait Implementations§
Source§impl Clone for LoadedProject
impl Clone for LoadedProject
Auto Trait Implementations§
impl Freeze for LoadedProject
impl RefUnwindSafe for LoadedProject
impl Send for LoadedProject
impl Sync for LoadedProject
impl Unpin for LoadedProject
impl UnsafeUnpin for LoadedProject
impl UnwindSafe for LoadedProject
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> 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