Version Control
Manage your Context File System like Git, with every change recorded automatically.
Why version control matters
When multiple agents work on your data at the same time, accidental overwrites, deletions, and bad writes can happen. PuppyOne's version control system automatically creates a versioned commit for every change so you can:
- Roll back anytime - restore any historical version through the API
- Review changes - compare two versions to see exactly what an agent changed
- Trace everything - every operation is recorded in the audit log
No manual commits, no need to remember to save - every write creates a commit automatically.
Core capabilities
Mut Commits
Every write to the Content API creates a versioned commit stored in the mut_commits table. Each commit records the changes, the author, a timestamp, and an optional message.
# View the commit history of a file
curl -X GET "https://api.puppyone.ai/api/v1/content/{project_id}/versions?path=/docs/product-spec.md" \
-H "Authorization: Bearer {token}"Version Diff
Compare any two versions side by side to see additions, deletions, and modifications clearly.
# Compare version 2 and version 5
curl -X GET "https://api.puppyone.ai/api/v1/content/{project_id}/diff?path=/docs/readme.md&v1=2&v2=5" \
-H "Authorization: Bearer {token}"Rollback
Restore a file to any historical version. The rollback itself creates a new commit, so history is never lost.
# Roll back to version 3
curl -X POST "https://api.puppyone.ai/api/v1/content/{project_id}/rollback" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"path": "/docs/product-spec.md", "version": 3}'Audit Logs
Every operation is recorded in the audit log, including who performed it, what changed, and when.
Common use cases
| Scenario | Recommended Feature |
|---|---|
| An agent accidentally overwrote a file | Rollback to a previous version |
| Review what an agent changed | Version diff |
| Track how data evolved over time | Version history (commits) |
| Investigate bad data | Audit log + version diff |
How it differs from Git
PuppyOne version control is designed for a cloud Context File System, so it differs from Git in a few important ways:
- Automatic versioning - every write creates a commit automatically, no explicit
commitneeded - Path-based addressing - files are identified by project ID and path, not UUIDs
- No branches - linear history, which simplifies agent workflows
- Instant rollback - rollback itself creates a new commit, so history is never lost