Every machine has a home directory atDocumentation Index
Fetch the complete documentation index at: https://docs.dedaluslabs.ai/llms.txt
Use this file to discover all available pages before exploring further.
~ (/root inside the guest). Files there survive sleep, wake, migration, and host failure. The filesystem is backed by S3.
API
Six operations. All path-addressed.PUT
Write a file. Creates parent directories automatically.
GET
Read a file.
HEAD
Stat a file or directory. Returns size, type, timestamps.
DELETE
Remove a file.
POST ?import=tar
Upload a directory tree as a tar stream. Preserves permissions.
GET ?bundle=tar
Download a directory tree as a tar stream.
How it works
Path resolution
PUT /fs/a/b/c.js splits the path into components, walks the directory tree from root, and creates missing directories.Tiered storage
Small files (up to 16 KiB) are stored inline in SQLite. Medium files (up to 4 MiB) go to append-only pack files. Large files are split into 4 MiB content-addressed chunks. All durable on S3.
Awake vs asleep
| Machine state | What handles the request |
|---|---|
| Awake | API server proxies to the storage daemon running on the host. |
| Asleep | API server opens the snapshot from S3 directly. Writes accumulate privately until you publish. |
Tiers
| Tier | Range | What happens |
|---|---|---|
| Inline | up to 16 KiB | Stored as a BLOB in the SQLite metadata database. Zero S3 PUTs per file. |
| Pack | 16 KiB to 4 MiB | Appended to a pack file on disk. Sealed at 64 MiB and uploaded as one S3 object. |
| Chunks | over 4 MiB | Split into 4 MiB content-addressed chunks. Deduplicated by SHA-256. |
Durability
Writes are durable on local disk immediately. S3 replication happens asynchronously.fsync() from inside the VM forces S3 durability before returning.
On sleep, every open pack is sealed and uploaded. On wake, the daemon verifies no unsealed packs remain. If they do, the machine reports unhealthy.