Storage & security
Where state lives, bind defaults, path safety, and pruning.
Paths
| Location | Purpose |
|---|---|
~/.diffing/<repo-name>-<8-char-hash>/ | Per-repository server state |
~/.config/diffing/settings.json | User preferences (theme, mode, editor, …) |
~/.diffing/backups/ | MCP config backups from setup merge |
Repo hash is sha256(absolute-repo-root).slice(0, 8).
Typical per-repo contents:
server.json
sessions/
comments.json
plans.json
plan-sources/
attachments/
fff/ # search frecency + history DBs
Inactive projects may be auto-pruned after prolonged inactivity (see product settings/docs for current window).
Network defaults
- Host:
127.0.0.1 - Port: OS-selected free port, or
--port <n> - LAN: only with
--host 0.0.0.0(or::) and--insecure-no-auth
Path safety
..and null bytes rejected- Paths URL-decoded and constrained to the repository root
- Escape attempts return 403
- Attachments isolated under the per-repo
attachments/directory
Privacy
- No account, no telemetry, no required cloud
- GitHub features only run when you open a PR session / authorize publish
- Agent plans and scratch should live under
~/.diffing/…/plan-sources/, not in the consumer working tree