Automation needs bounded authority
A model that assumes one deliberate human author per commit has no way to express “this agent may touch frontend code but never secrets”, and no way to record which model, task or person stood behind a change.
Atlas
Five diagrams and a walkthrough, for a reader who wants the mechanism rather than the pitch: where a change goes when you commit it, what happens when a protected file is read, what an agent can and cannot reach, and how two divergent tips reconcile.
Why it is shaped this way
Git was designed when every committer was a careful human and read access was all-or-nothing per repository. Each gap below is answered in the architecture rather than worked around in process.
A model that assumes one deliberate human author per commit has no way to express “this agent may touch frontend code but never secrets”, and no way to record which model, task or person stood behind a change.
You cannot say “this person reads the source but not the production configuration”. Every workaround — split repositories, submodules, external secret managers — routes around the version control system rather than through it.
When a commit's identity is its hash, an amend or a rebase produces a different object with no record that it is the same work — so review threads, automation and provenance lose their subject exactly when history moves.
The mental model
Write no policy and you never meet encryption, keys or a Key Authority. Register no agent and capability tokens never appear. The everyday surface is the first four.
Every actor — you, a teammate, an agent, a CI runner — is a keypair, created silently at init. There is no anonymous actor, so a protected read is attributable.
Like An SSH key TOVIO manages for you.
Named chg:xkqm7y — random, and stable across the supported rewrite operations. You live in a change; there is no staging area and no add step.
Like A branch and its commits as one named unit, with a tracking number.
Immutable and content-hashed, carrying the Change ID of the work that produced it. The hash moves when content moves; the change's name does not.
Like A Git commit, plus a stable owner.
Stored as a typed object, so the merge completes and work continues. Resolving it once propagates to contexts sharing the same conflict signature.
Like A type error rather than a crash — but landing onto a protected lane still refuses it.
Attach a rule to a path and files there are encrypted at snapshot time. You declare who should be able to read; key handling is not yours to manage.
Like A secrets manager that lives in the repository.
A signed, expiring token naming the paths an agent may touch, the operations it may perform, and whether it carries secret clearance.
Like A fine-grained access token, scoped to paths and tied to an agent identity.
The optional server for sync, review, locks and audit. It runs inside your perimeter or hosted, and it is not the authority over who may read a file.
Like A code host that is blind to your protected files.
Diagram 01 · the mental flip
Git's commit records the snapshot and advances your branch pointer in the same motion. TOVIO separates the two, which is what lets the work keep its name when history is rewritten underneath it.
main.| TOVIO | Closest Git idea | The difference that matters |
|---|---|---|
| Change | A branch and its commits as one unit | Stable ID survives the supported rewrites; no staging area |
| Lane | Branch | A landing target rather than a workspace; propagates as a CRDT ref |
| Conflict object | Merge markers | Durable data that can be inspected and resolved later |
| Policy object | Ignored file plus an external secrets manager | Lives in the repository, enforced cryptographically, survives cloning |
| Capability token | Fine-grained access token | Path-scoped and expiring, with provenance on agent-authorized work |
| Op-log and undo | Reflog | Covers supported mutations retained locally, not commits alone |
| sync | push plus pull | One operation; a divergent tip reconciles on the lane |
| land | Merging a feature in | Integrates a change and cascades the rebase to its descendants |
| Stacked changes | Branching off a branch | Landing the base rebases the rest, identities unchanged |
| — none — | The staging area | Removed. The working copy is the current change |
These are orientation points, not automatic translations.The migration page goes further →
Diagram 02 · the stack
The layers are a conceptual decomposition rather than a package layout. The engine performs no I/O, reads no configuration, and reaches for no clock or randomness on its own — every side effect arrives through an injected interface, which is what keeps it deterministic and testable.
Because the working copy snapshots continuously, policy matching and encryption happen at snapshot time rather than commit time. That single ordering decision is why plaintext for a protected path never lands in a tracked tree, and why the protection survives a full clone by an unauthorized reader.
It is also why the read path needs no server: the decision was made when the object was sealed, not when it is opened.
Walkthrough 01 · commit
Eight hops. The second is the seam described above; the rest is addressing, signing and durability.
Note the scope of step 08: committing advances the lane you are on. Publishing onto a shared lane such as main is what land does, which is the split the first diagram draws. Speed comes from hashing only what changed, and the repository mutation lock is held across state capture, ref persistence and the audit append — so a second writer cannot fork the transaction midway.
Walkthrough 02 · a protected read
The Key Authority authorizes at grant and seal time. It is not consulted when the file is opened, which is what makes a protected read work offline and makes an untrusted mirror harmless.
Your own key unwraps the content key directly. A solo user who writes no policy never encounters any of this machinery.
A content key sealed to explicitly named recipients with an authorized wrapped key. The Key Authority guides grants; it is not in the read path.
Attribute-based read control, which has passed its enterprise Key Authority conformance and internal review gate. It is default-off and not generally available.
The security model →Walkthrough 03 · an agent at work
Scope is checked before anything is sealed, and a refusal outside clearance is arithmetic rather than policy: with no key wrapped to it, the bytes simply do not open.
Runner and tool isolation remain separate operator responsibilities; the token bounds what TOVIO-mediated operations can reach.How agent access works →
Walkthrough 04 · sync
“The other side has work you do not have” is an ordinary state rather than an error. Pointers propagate as CRDTs, and a genuinely divergent tip reconciles on the lane into a two-parent commit — clean, or carrying a typed conflict object.
The surface
Help shows the everyday tier; the team and advanced tiers are one flag away. Advanced power stays invisible until you reach for it.
Git-compat aliases map familiar verbs onto their TOVIO equivalents and tell you what they mapped to.
The network is an optimization for sync, never a dependency for correctness. Run it yourself →
Status as of 2026-08-03
Everything drawn above is built and runnable under its documented supported profile. What remains is largely assurance rather than construction — and none of it is converted into an availability claim here.
The object store, change identity, the op-log, CRDT lanes, typed merge, and the everyday CLI.
Tier-0 and Tier-1 crypto, the Key Authority, encrypt-at-snapshot policy objects, and the signed audit chain.
Capability tokens with delegation, scope enforced before sealing, provenance, and the MCP and Node edges.
Networked clone, push, pull and serve over TLS, sparse path scope, locking, and the commercial Forge.
The symbol graph across four languages, semantic diff, semantic-aware landing, and behavioral versioning.
Hosted operations, packaging and publication, scale and failure evidence, Tier-2 Enterprise, and independent review.
These are decisions, not backlog.
TOVIO is pre-alpha. Packages are unpublished and independent assurance is incomplete, so production secrets do not belong in it yet.
Phases 0-4 are implementation-complete under their documented profiles. Phase 5 productization, publication, hosted-service, Tier-2 Enterprise, and independent evidence remain in progress.
The capability list goes wider, the comparison sets it against other version control systems, and the documentation defines exact behavior.