Blast Shield
How Pytxo isolates agent writes, prepares immutable packages, and gates reviewed Apply.
Blast Shield keeps eligible agent writes outside your primary repository until you review a prepared package. Reviewed Apply supports Orbit and Galaxy in one execution domain and one repository root.
Workspace modes
| Mode | Description |
|---|---|
worktree | Git worktree per agent |
overlay | Sparse copy-layer workspace |
Both modes produce the same immutable package. Both also start each agent from
your checkout's current files, including ignored files outside sparse_exclude
such as .env, so Review compares the agent's work with the files it started
from. The copy-layer is not a kernel ProjFS/FUSE provider.
Package preparation
After a successful Orbit or Galaxy run, Pytxo writes
.pytxo/data/reviews/<run-id>/. Target bytes are stored as
content-addressed blobs. The manifest records:
- path and add/modify/delete kind
- before and after SHA-256 digests
- byte count and target blob digest
- task and agent ownership
- base revision, preparation time, and package digest
Preparation includes untracked and binary additions. It rejects traversal,
protected .git/.pytxo paths, symlinks, sockets, FIFOs, devices,
non-regular targets, and divergent ownership. Eligible workspaces remain
available until dependent waves finish and the package is durably written.
Apply reads only this package. It never rebuilds approved bytes from a live workspace.
Drift, retry, and recovery
Before mutation, Pytxo compares each affected path with its recorded preimage. v1.2.2 also checks the included source inventory bound to combined verification. Changes to included files, even outside the edited paths, can make the review stale. Refresh prepares and checks a new candidate.
Every attempt records backups, operations, temporary paths, progress, and phase
under .pytxo/data/apply/<run-id>/<attempt-id>/. Pytxo reconciles an
interrupted journal before another run or Apply in that execution domain.
- A proven rollback returns the package to
ready, where Apply can be retried. - A proven commit records
applied. - Source drift becomes
stale. - Evidence that cannot prove the result becomes
recovery_required.
Discard removes staged blobs and retained workspaces after confirmation while keeping the manifest and audit history.
Permission profiles and limits
DeepSpace is Apply denied (not eligible; internally non-flushable). Supernova writes directly to the host tree and has no reviewed Apply step.
v1.1 does not provide cross-root transactions or partial-file acceptance. The journal supports automatic process-crash recovery; it is not a power-loss ACID or cross-filesystem durability guarantee. Host filesystem and network controls remain advisory when the operating system cannot supply the requested kernel boundary.
Run pytxo doctor and check overlay_isolation if you use overlay mode.