pub struct SessionRead(/* private fields */);Expand description
Deliberately does not implement Clone: read().clone() clones the Session,
preserving the existing detached-snapshot read contract.
Methods from Deref<Target = Session>§
Sourcepub fn supervisor_incarnation_id(&self) -> Option<Uuid>
pub fn supervisor_incarnation_id(&self) -> Option<Uuid>
Identity shape observed from an executing snapshot, never a live grant. Every management operation must still revalidate canonical storage.
Sourcepub fn root_mode_birth_token(&self) -> String
pub fn root_mode_birth_token(&self) -> String
Opaque lifetime token, so a deleted Root ID cannot reuse an old CAS.
pub fn root_mode_operation( &self, operation_id: &str, ) -> Option<&RootModeOperationReceipt>
pub fn subagent_type(&self) -> Option<String>
pub fn last_run_status(&self) -> Option<String>
pub fn last_run_error(&self) -> Option<String>
Sourcepub fn child_launch_generation(&self) -> u64
pub fn child_launch_generation(&self) -> u64
The queued launch identity is durable on the logical Child session, independent of a process-local runner or scheduler entry.
pub fn is_child_launch_cancelled(&self, generation: u64) -> bool
Sourcepub fn recoverable_child_launch_generation(&self) -> Option<u64>
pub fn recoverable_child_launch_generation(&self) -> Option<u64>
Reconciliation is deliberately narrower than a pending status:
an old intent cannot borrow a later draft/retry generation.
pub fn provider_name(&self) -> Option<String>
Sourcepub fn pending_injected_messages(&self) -> Option<Vec<Value>>
pub fn pending_injected_messages(&self) -> Option<Vec<Value>>
Read the pending injected messages, decoding the legacy JSON-string form
defensively. Malformed legacy JSON yields None (never a panic).
Sourcepub fn has_pending_injected_messages(&self) -> bool
pub fn has_pending_injected_messages(&self) -> bool
True when there are queued injected messages on either plane.
pub fn session_inbox_admission(&self) -> Option<&SessionInboxAdmissionState>
Sourcepub fn selected_skill_ids(&self) -> Option<Vec<String>>
pub fn selected_skill_ids(&self) -> Option<Vec<String>>
Read selected skill ids. The typed field is preferred; the legacy
fallback parses the stored JSON-array string defensively (malformed →
None).
Sourcepub fn skill_mode(&self) -> Option<String>
pub fn skill_mode(&self) -> Option<String>
Read the skill mode. Resolution order: typed field, then legacy
skill_mode key, then the historical mode key. When both legacy keys
are present and disagree, a warning is logged and skill_mode wins.
pub fn reasoning_effort_meta(&self) -> Option<String>
pub fn enhance_prompt(&self) -> Option<String>
Sourcepub fn root_orchestration_prompt_enabled(&self) -> bool
pub fn root_orchestration_prompt_enabled(&self) -> bool
Host-selected delegation guidance is scoped to a genuine root Session. An imported or malformed child cannot acquire it from inherited metadata.
pub fn task_list_version_meta(&self) -> Option<String>
pub fn todo_list_version_meta(&self) -> Option<String>
pub fn workspace_path_meta(&self) -> Option<String>
Sourcepub fn project_id_meta(&self) -> Option<String>
pub fn project_id_meta(&self) -> Option<String>
Read the stable Project identity, preferring typed runtime metadata and falling back to the legacy metadata string during migration.
pub fn root_thinking_mode(&self) -> RootThinkingMode
pub fn root_orchestration_only_enabled(&self) -> bool
Sourcepub fn validate_root_orchestration_compatibility(
&self,
) -> Result<(), RootToolAuthorityError>
pub fn validate_root_orchestration_compatibility( &self, ) -> Result<(), RootToolAuthorityError>
Keep the narrow tool catalog usable when an old turn or a new request carries a mode that requires tools outside the Root allowlist.
Sourcepub fn model_orchestration_only_enabled(&self) -> bool
pub fn model_orchestration_only_enabled(&self) -> bool
Derived model posture, not a persisted selection or permission grant. A trusted Supervisor orchestrates in both thinking modes. Children and ordinary Roots retain their own independent mode and permissions.
Sourcepub fn allows_model_tool_execution(&self, execution_name: &str) -> bool
pub fn allows_model_tool_execution(&self, execution_name: &str) -> bool
Defense in depth at both catalog projection and final dispatch.
Sourcepub fn effective_token_budget(&self) -> Option<&TokenBudget>
pub fn effective_token_budget(&self) -> Option<&TokenBudget>
The effective token budget: a genuine/child override (token_budget) if
set, otherwise the current round’s resolved-budget snapshot
(resolved_token_budget). Both are None until the first resolution.
Downstream readers should use this rather than token_budget directly so
they observe the engine-resolved budget without persisting it. Note the
snapshot is returned regardless of which model it was resolved for; that is
safe because resolve_token_budget runs at round start (re-keying to the
current model) before any reader — don’t call this expecting model-freshness
without a preceding same-round resolve. (#180)