pub enum WinxError {
Show 61 variants
ShellInitializationError(String),
WorkspacePathError(String),
BashStateLockError(String),
BashStateNotInitialized,
CommandExecutionError(String),
NoActiveCommand(String),
BackgroundSessionNotFound(String),
EmptyInteractiveInput {
action: String,
},
InteractiveTargetNotRunning(String),
ArgumentParseError(String),
FileAccessError {
path: PathBuf,
message: String,
},
FileNotFound {
path: PathBuf,
},
FileReadRequired {
path: PathBuf,
reason: ReadRequirement,
ranges: Vec<String>,
message: String,
},
FileChangedAfterEdit {
path: PathBuf,
message: String,
},
UndoCheckpointNotFound {
path: PathBuf,
},
UndoExpired {
path: PathBuf,
undo_id: String,
},
UndoOutOfOrder {
path: PathBuf,
undo_id: String,
latest_undo_id: String,
},
FileOperationDenied {
path: PathBuf,
message: String,
},
ConcurrentFileModification {
path: PathBuf,
attempts: usize,
},
FileRevisionMismatch {
path: PathBuf,
expected: String,
actual: String,
},
PathSecurityError {
path: PathBuf,
message: String,
},
TemporaryArtifactPolicy {
path: PathBuf,
temporary_artifact_dir: PathBuf,
message: String,
},
TemporaryArtifactBudgetExceeded {
temporary_artifact_dir: PathBuf,
total_bytes: u64,
max_total_bytes: u64,
session_bytes: u64,
max_session_bytes: u64,
session_files: usize,
max_session_files: usize,
largest_file_bytes: u64,
max_file_bytes: u64,
},
InvalidWaitPolicyForAction {
wait_policy: String,
action: String,
},
DerivedCodeMapBudget {
path: PathBuf,
temporary_artifact_dir: PathBuf,
calls_used: usize,
calls_limit: usize,
unique_files_used: usize,
unique_files_limit: usize,
message: String,
},
CommandNotAllowed(String),
ThreadIdMismatch(String),
WorkspaceBindingRequired {
thread_id: String,
},
WorkspaceThreadMismatch {
thread_id: String,
workspace_root: PathBuf,
},
WorkspaceBindingMismatch {
thread_id: String,
requested_workspace: PathBuf,
bound_workspace: PathBuf,
},
WorkspaceChangeRequiresNewSession {
workspace_root: PathBuf,
},
DeserializationError(String),
SerializationError(String),
SearchReplaceSyntaxError(String),
SearchBlockNotFound(String),
SearchBlockAmbiguous {
block_content: String,
match_count: usize,
suggestions: Vec<String>,
},
MultiFilePlanError {
index: usize,
path: PathBuf,
source: Box<WinxError>,
},
EditContextError {
path: PathBuf,
source: Box<WinxError>,
},
IndexedEditError {
index: usize,
path: PathBuf,
mode: String,
source: Box<WinxError>,
},
SearchReplaceSyntaxErrorDetailed {
message: String,
line_number: Option<usize>,
block_type: Option<String>,
suggestions: Vec<String>,
},
JsonParseError(String),
FileTooLarge {
path: PathBuf,
size: u64,
max_size: u64,
},
FileWriteError {
path: PathBuf,
message: String,
},
DataLoadingError(String),
ParameterValidationError {
field: String,
message: String,
},
MissingParameterError {
field: String,
message: String,
},
NullValueError {
field: String,
},
RecoverableSuggestionError {
message: String,
suggestion: String,
},
ContextSaveError(String),
CommandTimeout {
command: String,
timeout_seconds: u64,
},
InteractiveCommandDetected {
command: String,
},
CommandAlreadyRunning {
current_command: String,
duration_seconds: f64,
},
ProcessCleanupError {
message: String,
},
BufferOverflow {
size: usize,
max_size: usize,
},
SessionRecoveryError {
message: String,
},
ResourceAllocationError {
message: String,
},
IoError(Error),
ConfigurationError(String),
ParseError(String),
InvalidInput(String),
FileError(String),
}Expand description
Errors that can occur in the Winx application
Variants§
ShellInitializationError(String)
Error when initializing the shell
WorkspacePathError(String)
Error when operating on a workspace path
BashStateLockError(String)
Error when locking the bash state
BashStateNotInitialized
Error when the bash state is not initialized
CommandExecutionError(String)
Error when a command fails for an internal execution reason.
NoActiveCommand(String)
A status/input action targeted a shell with no running command.
BackgroundSessionNotFound(String)
A background command identifier is unknown or has already exited.
EmptyInteractiveInput
An interactive input action was supplied without any payload.
InteractiveTargetNotRunning(String)
Interactive bytes were sent to an idle shell instead of a running program.
ArgumentParseError(String)
Error when parsing arguments
FileAccessError
Error when trying to access a file or directory
FileNotFound
A requested path does not exist.
FileReadRequired
The edit guard requires a fresh or broader read before mutation.
FileChangedAfterEdit
An undo/edit postcondition no longer matches the on-disk file.
UndoCheckpointNotFound
No in-session undo checkpoint exists for the requested file.
UndoExpired
An opaque in-memory undo checkpoint was evicted or lost on restart.
UndoOutOfOrder
A receipt-bound undo may only consume the newest checkpoint for a file.
FileOperationDenied
A file operation was rejected by an explicit policy or OS permission.
ConcurrentFileModification
A live file changed repeatedly while Winx was taking a bounded snapshot.
FileRevisionMismatch
A compare-and-swap edit targeted a different file revision.
PathSecurityError
Security error - path traversal or symlink escape attempt
TemporaryArtifactPolicy
A model-owned helper violated the managed .winx/tmp/<session> contract.
TemporaryArtifactBudgetExceeded
Bash created dynamic helpers that could not be projected safely before execution and the active managed session is now over budget.
Fields
InvalidWaitPolicyForAction
A valid delivery policy was paired with an action it cannot represent.
DerivedCodeMapBudget
Syntax navigation over derived helpers exceeded its bounded session budget.
Fields
CommandNotAllowed(String)
Error when a command is not allowed in the current mode
ThreadIdMismatch(String)
Error when chat IDs don’t match
WorkspaceBindingRequired
A remote stateful call omitted the explicit workspace half of its session binding.
WorkspaceThreadMismatch
The supplied workspace and thread cannot belong to the same affinity key, so executing the request could select another project’s shell.
WorkspaceBindingMismatch
The requested binding disagrees with the workspace stored in the selected durable session.
WorkspaceChangeRequiresNewSession
Remote sessions never change project identity in place. A new first call gives the target workspace its own coherent session binding.
DeserializationError(String)
Error when deserializing data
SerializationError(String)
Error when serializing data
SearchReplaceSyntaxError(String)
Error in the search/replace format
SearchBlockNotFound(String)
Error when search block is not found in content
SearchBlockAmbiguous
Error when search block matches multiple locations (WCGW-style)
MultiFilePlanError
Path-aware context for a planning failure in an atomic multi-file edit. The boxed source preserves the original recovery class instead of flattening it into an argument/string error.
EditContextError
Path context for a single-file edit without changing its historical display text. Recovery consumes the typed path instead of re-parsing the public request shape.
IndexedEditError
Neutral path/index context for the unified batch planner. Legacy
MultiFileEdit retains its historical error wording separately.
SearchReplaceSyntaxErrorDetailed
Enhanced search/replace syntax error with detailed context
Fields
JsonParseError(String)
Error when JSON parsing fails
FileTooLarge
Error when a file is too large for operation
FileWriteError
Error when writing to a file
DataLoadingError(String)
Error loading data
ParameterValidationError
Parameter validation error
MissingParameterError
Required parameter missing error
NullValueError
Null or undefined value error
RecoverableSuggestionError
Recovery suggestion error with potential solutions
ContextSaveError(String)
Context save error
CommandTimeout
Command timeout error
InteractiveCommandDetected
Interactive command detected error
CommandAlreadyRunning
Command already running error
ProcessCleanupError
Process cleanup error
BufferOverflow
Buffer overflow error
SessionRecoveryError
Session recovery error
ResourceAllocationError
Resource allocation error
IoError(Error)
IO error
ConfigurationError(String)
Configuration error
ParseError(String)
Parse error for responses
InvalidInput(String)
Invalid input error
FileError(String)
File error for file operations
Trait Implementations§
Source§impl Error for WinxError
impl Error for WinxError
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()
Auto Trait Implementations§
impl !RefUnwindSafe for WinxError
impl !UnwindSafe for WinxError
impl Freeze for WinxError
impl Send for WinxError
impl Sync for WinxError
impl Unpin for WinxError
impl UnsafeUnpin for WinxError
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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