Source view
A digest-pinned program tree copied into an ordinary directory.
Filesystem isolation research · 2026-08-10
A macOS-first experiment in giving trusted coding agents pinned, writable views of one program state—without requiring Git worktrees, containers, privileged mounts, or cloud services.
$ pdb-env create alpha
→ base a8cd…807ff
→ root /…/alpha/root
$ pdb-env run alpha -- codex
PDB_ENV=alpha
cwd=/…/alpha/root
$ pdb-env create beta
→ same base, different dirt
$ pdb-env list
alpha dirty private
beta clean privateAgents expect a normal repository tree. They run language servers, package managers, watchers, build tools, local databases, and shell commands. The research asks whether each agent can get that familiar interface while its writable state stays invisible to its siblings.
The selected shape
Full-copy is deliberately boring. That makes it the correctness oracle: if an optimized backend cannot reproduce its visible tree and exact changes, the optimization loses.
A digest-pinned program tree copied into an ordinary directory.
Private mutable graphs; shared caches are inputs, never shared node_modules.
Processes, ports, sockets, databases, and temp paths remain separate concerns.
A workspace cannot publish or advance a canonical head by itself.
Evidence, not vibes
Every failure stayed in the record. No retry was converted into a pass, and full-copy remained the reference oracle.
Both agents edited shared.txt, deleted and renamed the same base files, created nested files and symlinks, and changed an executable bit. Claude ran after Codex was dirty and still saw none of Codex's output.
TypeScript, tsserver, Vite, Next.js, Jest, and Vitest watcher updates.
Private node_modules graphs with shared immutable cache inputs.
Source checksums remained unchanged while both private views diverged.
Open the complete research trail →Backend bake-off
Correctness and observable fallback behavior came before benchmark theater.
| Backend | Decision | Strength | Blocking tradeoff |
|---|---|---|---|
| full-copynative directory | selected | Portable, inspectable, native watchers | Copies bytes; disk cost is real |
| APFS clonecopy-on-write | experimental | Promising startup and physical growth | Must prove forced clone success without silent fallback |
| AgentFS 0.6.4SQLite + NFS | rejected | Portable delta and session model | Timed out twice before mutation on the tested macOS profile |
| Git worktreeVCS workspace | optional | Familiar branching and tooling | Requires Git and couples workspace mechanics to VCS state |
These agents are trusted and cooperative. Private directories prevent accidental overwrites and cross-visible dirt. They do not stop a same-user process from reading another path, opening a socket, or accessing credentials. Containers and microVMs solve a different problem.
Open research artifact