Skip to content

Add next-gen VCS design spec#14

Merged
mattzcarey merged 10 commits intomainfrom
claude/next-gen-vcs-design-ZYt9x
Feb 18, 2026
Merged

Add next-gen VCS design spec#14
mattzcarey merged 10 commits intomainfrom
claude/next-gen-vcs-design-ZYt9x

Conversation

@mattzcarey
Copy link
Owner

Design document for a platform where git clone = ssh into a running app.
Covers environment layer (Nix-based), agent-first sessions, continuous
review, and viral migration via GitHub mirrors.

https://claude.ai/code/session_01463GBokz33PDkW1upR4cUE

Design document for a platform where git clone = ssh into a running app.
Covers environment layer (Nix-based), agent-first sessions, continuous
review, and viral migration via GitHub mirrors.

https://claude.ai/code/session_01463GBokz33PDkW1upR4cUE
One thing: `zagi mount` gives you any repo as a runnable local directory.
Nix hidden underneath, TOML on top, content-addressed cache, secret
isolation. Bring your own agent/editor.

https://claude.ai/code/session_01463GBokz33PDkW1upR4cUE
A change = source + env. Not two systems bolted together. jj semantics
(working copy as change, stable IDs, first-class conflicts) + Nix
reproducibility (content-addressed, declarative, cached) exposed through
zagi CLI. Server lives on S3/R2 natively -- git objects and env closures
in the same bucket.

https://claude.ai/code/session_01463GBokz33PDkW1upR4cUE
No Nix on client. No FUSE. No sudo. One static binary, one shell hook.
Server builds envs with Nix, packages as relocatable tarballs per
OS/arch, client just downloads and hardlinks. Concrete UX flows for
fresh machine, second project, existing project, day-to-day, agents.

https://claude.ai/code/session_01463GBokz33PDkW1upR4cUE
… model

Dependencies are tracked the same way as source -- content-addressed
objects in the store. No lock files, no install step, no postinstall
scripts. Edit deps directly, upgrade with jj-style conflict resolution.
Storage via content-defined chunking (HF/Xet model): 64KB chunks,
cross-project dedup, pack-based S3 storage, lazy fetching.

https://claude.ai/code/session_01463GBokz33PDkW1upR4cUE
The tracked state IS the manifest. zagi add puts code in the store.
zagi deps shows what's tracked. No env.toml, no env.lock, no
package.json. One step (add) replaces three (declare, resolve, install).

https://claude.ai/code/session_01463GBokz33PDkW1upR4cUE
zagi add is for env (tools, services). For deps, use npm/pip/cargo
as normal and commit the result. zagi chunks and tracks node_modules
the same way it tracks source. No custom resolver, no reimplementing
what package managers already do.

https://claude.ai/code/session_01463GBokz33PDkW1upR4cUE
Content-addressing makes dep merges clean: shared transitive deps
have identical hashes so no conflicts. Non-overlapping changes are
additive. No need to re-run npm install during merge -- the tracked
files are the source of truth.

https://claude.ai/code/session_01463GBokz33PDkW1upR4cUE
Deps are files. jj merges files. Content-addressing means shared
transitive deps never conflict. That's it.

https://claude.ai/code/session_01463GBokz33PDkW1upR4cUE
Phase 1: chunking engine (prove dedup works on node_modules)
Phase 2: local store + round-trip (snapshot/restore)
Phase 3: remote store + push/pull (clone without npm install)
Phase 4: shell hook + zagi add (clone and it works, the demo)
Phase 5: VCS with jj-style history, branching, merging
Phase 6: services (postgres, redis as part of env)
Phase 7: mirror + viral loop (convert any GitHub repo)

https://claude.ai/code/session_01463GBokz33PDkW1upR4cUE
@mattzcarey mattzcarey merged commit cf8cb26 into main Feb 18, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants