Configuration
Graft’s configuration is minimal. The entire project state lives in a single JSON file.State File
Location:~/.graft/<project>/config.json
Environment Variables
| Variable | Default | Description |
|---|---|---|
GRAFT_HOME | ~/.graft | Root directory for all Graft project data |
GRAFT_RSYNC | rsync | Path to rsync binary (used in snapshot mode bridge) |
Project Discovery
Graft resolves which project to use through a discovery mechanism:- Current directory check — Looks for
.graft/config.jsonin the current working directory - GRAFT_HOME scan — Scans
$GRAFT_HOME/<project>/config.jsonfor all project directories - If exactly one project exists under GRAFT_HOME, it’s used automatically
- If multiple projects exist, an error is shown (future:
--projectflag)
Schema Versioning
Both the state file and the SQLite DAG carry schema versions:| Store | Field | Current Version | On Mismatch |
|---|---|---|---|
config.json | schema_version | 2 | Error: delete project dir and re-init |
graft.db | schema_version table | 1 | Error: delete graft.db and re-init |