#[derive(Debug, thiserror::Error)]
pub enum PoolError {
#[error("failed to connect to UDS socket: {0}")]
Connect(#[from] std::io::Error),
#[error("failed to write UDS socket: {0}")]
IoWrite(String),
#[error("failed to read UDS socket: {0}")]
IoRead(String),
#[error("failed to parse worker response: {0}")]
ResponseParse(String),
#[error("registry.json corrupted: {0}")]
RegistryCorrupted(String),
#[error("worker spawn failed: {0}")]
Spawn(String),
#[error("worker handshake failed: {0}")]
Handshake(String),
#[error("session not found in pool: {0}")]
SessionNotFound(String),
#[error("version mismatch: client={client}, server={server}")]
VersionMismatch { client: String, server: String },
}