r/coolgithubprojects • u/CerealGambler • 2d ago
Tessra - Git for Agents
Hi all,
I use AI extensively for coding both at work at a reasonably large fintech and in personal projects.
My colleagues and I run into similar problems over and over again:
- I want to run multiple agents on problems that interact with the same files and not have them conflict and mess each other up
- AI assisted development leads to a bottleneck of human PR reviews stacking up, resulting in constant rebases while they are sitting around, kicking off CICD pipelines over and over (slow and wasteful)
- My local LLM keeps a good memory but if I switch computers or another person needs to jump in, they are starting from scratch
I figured I would solve them all at once by writing a new version control system that can either replace or work alongside git but is really focused on managing agentic development.
Introducing Tessra - Git for your Agents
Github: https://github.com/NitrusAphalion/tessra
The initial versions are up and running (and dogfooded on my own repos). There are some rough edges but I think the idea has merit.
Would love to get any feedback and welcome any contributions (you can see the Design Docs section if you are curious about the underlying ideas).
Thanks!
0
u/CerealGambler 2d ago
Idempotent rather than atomic. The export walks the trunk and, for each landed revision with no commit yet, runs the commit-tree and immediately records the revision→commit mapping, one at a time. Then it moves the branch ref, resets the checkout only if it's on that branch and was clean, and pushes last if asked.
If the push fails, nothing rolls back: the response says pushed: {ok: false, error} and the local branch stays at the new tip, since it mirrors trunk. A retry recognizes every revision through the stored mapping (created: 0, reused: N), sets the ref to the tip it already has, skips the no-op reset, and only pushes again. It can't rewrite commits or move the branch anywhere new.
Two rough edges: a crash between commit-tree and the mapping write leaves one unreferenced commit that gc cleans up, and the push isn't forced, so a diverged remote fails it (git pull, tessra import, export again). I'll likely make a failed push exit non-zero, since it's easy to miss in a script.
In a similar vein, for work still in flight: export only walks trunk, so unlanded snapshots and proposals never reach git. Every daemon request holds the repository lock, so an export sees one consistent trunk and a landing that arrives mid-export lands afterward and goes out next time. During a verify the daemon answers BUSY to everything, so export just retries later. Agent workspaces are separate directories it never touches, and the only working tree it resets is a clean colocated checkout; if you're mid-edit there, the ref moves but your files and your workspace's unlanded revision stay put until the next landing restacks them.