pub struct RecoveryAdvice {
pub kind: &'static str,
pub error: String,
pub hint: String,
pub unsafe_condition: String,
pub would_change: String,
pub preserved: String,
pub primary_command: String,
pub recovery_commands: Vec<String>,
pub extra_json_fields: Map<String, Value>,
}Fields§
§kind: &'static str§error: String§hint: String§unsafe_condition: String§would_change: String§preserved: String§primary_command: String§recovery_commands: Vec<String>§extra_json_fields: Map<String, Value>Implementations§
Source§impl RecoveryAdvice
impl RecoveryAdvice
pub fn safety_refusal( kind: &'static str, error: impl Into<String>, hint: impl Into<String>, unsafe_condition: impl Into<String>, would_change: impl Into<String>, already_preserved: impl Into<String>, primary_command: impl Into<String>, recovery_commands: Vec<String>, ) -> Self
pub fn dirty_worktree( action: &str, dirty_paths: Vec<String>, already_preserved: impl Into<String>, ) -> Self
pub fn git_head_mismatch( action: &str, current_oid: impl Into<String>, expected_oid: impl Into<String>, branch: impl Into<String>, dirty_paths: Vec<String>, ) -> Self
pub fn destructive_requires_force( action: &str, unsafe_condition: impl Into<String>, would_change: impl Into<String>, preview_command: impl Into<String>, force_command: impl Into<String>, already_preserved: impl Into<String>, ) -> Self
pub fn op_id_conflict( command: &str, dedup_scope: &str, incoming_argv: &[String], incoming_request_hash: [u8; 32], existing: Option<DedupConflictMetadata>, ) -> Self
pub fn op_id_in_flight() -> Self
pub fn op_id_unsupported(command: &str) -> Self
pub fn op_id_invalid(raw: &str, parse_error: impl Display) -> Self
pub fn json_unsupported(command: &str) -> Self
pub fn json_compact_unsupported(command: &str) -> Self
pub fn stale_daemon_protocol(their_version: u32, our_version: u32) -> Self
pub fn git_import_metadata_required(map_path: &str, git_path: &str) -> Self
pub fn adopt_path_conflict(positional: &str, repo_path: &str) -> Self
pub fn adopt_requires_git_worktree(details: Option<String>) -> Self
pub fn git_overlay_tip_bind_failed(details: impl Into<String>) -> Self
pub fn init_path_conflict(positional: &str, repo_path: &str) -> Self
pub fn init_principal_field_required(field: &str) -> Self
pub fn hook_veto(hook: &str, action: &str, reason: impl Into<String>) -> Self
pub fn invalid_usage( kind: &'static str, error: impl Into<String>, hint: impl Into<String>, primary_command: impl Into<String>, ) -> Self
pub fn missing_option( kind: &'static str, option: &'static str, required_for: &'static str, primary_command: impl Into<String>, ) -> Self
pub fn malformed_option_value( kind: &'static str, option: &'static str, raw: &str, expected: &'static str, primary_command: impl Into<String>, ) -> Self
pub fn discuss_resolve_missing_dismiss_reason() -> Self
pub fn review_symbols_malformed(raw: &str) -> Self
pub fn thread_absorb_parent_required(thread: &str) -> Self
pub fn repository_no_head_capture_first(action: &str) -> Self
pub fn repository_no_head_anchor_first(action: &str) -> Self
pub fn context_empty() -> Self
pub fn annotation_not_found(annotation_id: &str) -> Self
pub fn no_current_thread( command: &'static str, explicit_selector: Option<&'static str>, primary_command: impl Into<String>, ) -> Self
pub fn no_current_session( command: &'static str, explicit_selector: Option<&'static str>, primary_command: impl Into<String>, ) -> Self
pub fn land_checkpoint_partial_failure( thread: &str, checkpoint_error: impl Display, performed_steps: Vec<String>, ) -> Self
pub fn land_checkpoint_rolled_back( thread: &str, checkpoint_error: impl Display, performed_steps: Vec<String>, ) -> Self
pub fn land_checkpoint_partial_failure_undo_failed( thread: &str, checkpoint_error: impl Display, undo_error: impl Display, performed_steps: Vec<String>, ) -> Self
pub fn land_checkpoint_recovery_required( thread: &str, checkpoint_error: impl Display, recovery_error: impl Display, performed_steps: Vec<String>, ) -> Self
pub fn land_checkpoint_rollback_marker_cleanup_failed( thread: &str, checkpoint_error: impl Display, cleanup_error: impl Display, performed_steps: Vec<String>, ) -> Self
pub fn from_git_projection_error(error: &GitProjectionError) -> Option<Self>
pub fn git_heddle_thread_diverged(thread: &str, branch: &str) -> Self
pub fn remote_transport_mismatch(action: &str, remote: &str) -> Self
pub fn native_https_iroh_endpoint_missing(action: &str, remote: &str) -> Self
pub fn remote_not_configured(action: &str) -> Self
pub fn remote_not_found(name: &str) -> Self
pub fn local_lazy_pull_unsupported(source_path: &Path) -> Self
pub fn remote_push_failed(track_name: &str, error: &str) -> Self
pub fn remote_pull_failed( remote_thread: &str, local_thread: Option<&str>, error: &str, ) -> Self
pub fn network_clone_failed(error: &str, local_path: &Path) -> Self
Sourcepub fn missing_target_thread(thread_id: &str, attempted_verb: &str) -> Self
pub fn missing_target_thread(thread_id: &str, attempted_verb: &str) -> Self
thread refresh was asked to refresh a thread that has no
recorded target_thread. The thread metadata lives on disk but
the integration target was never written, so the refresh has no
concrete destination to rebase onto.
Surfaces Priya’s #1 untyped error site: the bare
Thread '<id>' has no target thread line gave the operator no
next step. The typed envelope hands back the inspection commands
(heddle thread show, heddle thread list) and the
re-configuration command shape so the JSON envelope’s
recovery_action_templates field carries executable argv.
Sourcepub fn rebase_referenced_state_missing(state_id: &str, role: &str) -> Self
pub fn rebase_referenced_state_missing(state_id: &str, role: &str) -> Self
A rebase replay step referenced a state, commit, or tree the
object store no longer has. Usually means a pruning operation
ran between rebase start and rebase resume, or the persisted
REBASE_STATE references objects from a sibling repository.
Abort recovers — the tolerant loader will rewind to
original_head without needing the missing objects.
Sourcepub fn rebase_state_corrupted(field: &str, detail: impl Display) -> Self
pub fn rebase_state_corrupted(field: &str, detail: impl Display) -> Self
A persisted REBASE_STATE file could not be parsed or violated
an invariant. The strict loader (used by --continue) hard-fails
so a half-applied batch never reaches the oplog; the tolerant
loader (used by --abort) absorbs most of these cases and rewinds
to original_head.
field describes which part of REBASE_STATE failed validation
(e.g. "Missing 'onto'", "decode pending_advance",
"Inconsistent rebase state"); detail carries the underlying
cause when there is one (e.g. a hex/msgpack decode error) and may
be empty. Tests assert on the field substring, so the user-
visible error always starts with field.
Sourcepub fn thread_referenced_state_missing(state_id: &str, role: &str) -> Self
pub fn thread_referenced_state_missing(state_id: &str, role: &str) -> Self
A thread command resolved a state spec or anchor and the
referenced state was not in the object store. Distinct from
state_not_found because the lookup happens inside thread
command flow (start/create/anchor) rather than the generic state
resolver.
--print-cd-path (or another path-only output mode) was passed
to a thread command but the thread has no on-disk worktree to
cd into. Lightweight (non-materialized) threads do not own a
directory — the operator needs to materialize the thread or use
a different command that doesn’t require a checkout path.
pub fn primary_hint(&self) -> &str
Trait Implementations§
Source§impl Clone for RecoveryAdvice
impl Clone for RecoveryAdvice
Source§fn clone(&self) -> RecoveryAdvice
fn clone(&self) -> RecoveryAdvice
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 RecoveryAdvice
impl Debug for RecoveryAdvice
Source§impl Display for RecoveryAdvice
impl Display for RecoveryAdvice
Source§impl Error for RecoveryAdvice
impl Error for RecoveryAdvice
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()