envseal 0.3.9

Write-only secret vault with process-level access control — post-agent secret management
Documentation
//! Invariant: StorageIo and ExecFailed preserve the source io::Error.
use envseal::error::Error;
use std::error::Error as StdError;

#[test]
fn io_error_source_chain() {
    let io_err = std::io::Error::new(std::io::ErrorKind::PermissionDenied, "denied");
    let err = Error::StorageIo(io_err);
    assert!(
        err.source().is_some(),
        "Fix: StorageIo must expose source io::Error"
    );

    let io_err2 = std::io::Error::new(std::io::ErrorKind::NotFound, "missing");
    let err2 = Error::ExecFailed(io_err2);
    assert!(
        err2.source().is_some(),
        "Fix: ExecFailed must expose source io::Error"
    );

    // Non-IO errors should have no source
    let err3 = Error::UserDenied;
    assert!(err3.source().is_none());
}