2.6 KiB
Run Scratch Files
This document maps the files that still live under a run scratch directory. Durable run state lives in the durable event stream, event-derived projections, and CAS; scratch is mostly local runtime state and caches.
Scope:
- Scratch root:
~/.fabro/scratch/YYYYMMDD-{run_id}/ - This covers local run files only
- Persistent store keys live in
lib/components/fabro-store/src/keys.rs - Artifact object-store keys live in
lib/components/fabro-store/src/artifact_store.rs
There is no _init.json anymore. Run existence in the database is determined by stored run events, and local scratch directories are managed separately under scratch/.
Root-Level Files
| File | Purpose | Source |
|---|---|---|
workflow_bundle.json |
Bundled workflow input used by start to restore workflow_path and bundled child workflows/files |
Written during create from the resolved workflow bundle |
run.pid |
Legacy detached-run pid file from older runs | Legacy only; current flows do not rely on it |
Local-Only Directories
These paths are local runtime state, not canonical event projections.
| Path | Purpose |
|---|---|
worktree/ |
Git worktree used by checkpointed runs |
runtime/server.log |
Worker tracing log for the run |
runtime/blobs/ |
Materialized local blob payloads for file-backed fabro+blob:// references |
nodes/{manager_node}_{visit}/child/ |
Nested scratch root for manager-loop child workflows |
Reconstructed / Exported Files
These names are still real, but they are no longer live scratch files by default:
- Metadata branch files such as
run.json,start.json, andcheckpoint.json fabro dumpexports such asrun.json,start.json,status.json,checkpoint.json,conclusion.json,events.jsonl, and per-node prompt/response/status/stdout/stderr files
Notes
- New captured artifact binaries live in
ArtifactStore, with originals retained in the sandbox. Historical SQLite captures remain in the blob table. - Final diffs for checkpointed runs are projected from the run store; they are no longer written as scratch files.
Captured artifact content
New automatic captures use <artifact prefix>/<run ID>/captures/sha256/<digest>
in the configured artifact store. Platform records and the run projection hold
the stage, retry, relative path and content source (object for this layout,
blob for historical SQLite captures). Content objects alone are not listing
entries. Historical stage-keyed objects remain readable. Run deletion removes
both object layouts; generic blobs and checkpoint patches keep their SQLite
storage contract.