Skip to content

0.3.10 - 2026-08-28

Choose a tag to compare

@github-actions github-actions released this 28 Aug 19:46

Release Notes

Added

  • Mark::Recorded, and an origin note that survives what the App Sandbox
    destroys.
    Under the sandbox the platform marks whatever the calling process
    writes and refuses to have that mark replaced, so carry reported
    AlreadyMarked and the source's value was lost. The gate was never the
    problem — the copy is gated whoever marked it — but the answer to where did
    it come from
    was, and a caller that reports provenance could no longer tell a
    container that arrived from elsewhere from one made on the machine. Found in
    slipcase-desktop, where saving an edit to a downloaded container made the
    card's arrived from elsewhere line disappear.

    carry now keeps the source's quarantine value verbatim under
    com.excelano.slipcase.origin when the platform refuses to carry it, and
    answers Mark::Recorded rather than Mark::AlreadyMarked when it did.
    arrived_from_elsewhere consults the note. carries_a_mark deliberately does
    not: the note gates nothing, nothing outside this crate reads it, and a
    caller deciding whether to hand a payload to the system must not read our own
    writing as the platform's word.

    Three things measured inside a bundle signed with the sandbox entitlement
    rather than assumed: the refusal is specific to com.apple.quarantine and an
    attribute of our own goes on without complaint; the note survives
    -[NSFileManager replaceItemAtURL:], which is the operation that destroys the
    attribution; and no supported API preserves the original attribution, since
    NSURL's quarantinePropertiesKey succeeds and then substitutes the calling
    process as the agent.

    macOS only. Windows can reach the same branch and does nothing there yet, for
    want of a measurement; Linux cannot reach it, because its carry never fails.
    Nothing changes for a caller that is not sandboxed.

    Mark is #[non_exhaustive], so the new variant is not a breaking change for
    anyone matching on it.

Install slipcase 0.3.10

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/excelano/slpc-rust/releases/download/v0.3.10/slipcase-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/excelano/slpc-rust/releases/download/v0.3.10/slipcase-installer.ps1 | iex"

Install prebuilt binaries via Homebrew

brew install excelano/tap/slipcase

Download slipcase 0.3.10

File Platform Checksum
slipcase-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
slipcase-x86_64-apple-darwin.tar.xz Intel macOS checksum
slipcase-x86_64-pc-windows-msvc.zip x64 Windows checksum
slipcase-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
slipcase-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum