English
Version Control
Overview

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

ScenarioRecommended Feature
An agent accidentally overwrote a fileRollback to a previous version
Review what an agent changedVersion diff
Track how data evolved over timeVersion history (commits)
Investigate bad dataAudit 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 commit needed
  • 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