It is more content aware and tuned towards versioned data vs block aware among other things. There’s a benchmark as to how it impacts things in the site
I think it’s actually a fairly useful thing but I worry about something so obviously vibe coded hitting 1.0.0 and without a track record but the ideas seem pretty useful. I’ve certainly found the work tree semantics most agents and harnesses follow at scale to be obnoxious at best and it seems to tackle issues head on.
Nice benchmarks, impressive numbers. 20x less space than btrfs for the deep seek harness.
They even have some explanations. Files writes in btrfs snapshots recreatethe contents as opposed to storing what's changed. Btrfs has no dedupe, if multiple snapshots happen to have the same data. And small files store metadata twice in btrfs for reasons.
I do think their use case is a bit pathological, checking out the same harness at every commit. Most of these btrfs gotchas don't feel like they would be super impactful to me. But really cool results none the less.
I have this pattern but because I run pipelined agents working on a speculative merge topologically sorted task list merging into a merge train. This leads to lots and lots of work trees that largely overlap except for slight variants. Their articulated use case is mine, and I can have up to a hundred work trees at a time. The storage and related back pressures can be complicated.
For the source code part of that, the difference between using layerfs and btrfs snapshots feels near trivial. There'd be so little difference at the source layer. Unless your changes are massive massive massive repo wide changes, most of the content is going to remain the same, and the btrfs snapshot is going to mean each workspace is a proportionally a tiny delta, have as many as you want.
I guess the win is that often build artifacts are the same in many cases, so a pristine checkout still de-dupes. There's very good build caching systems out there that help with not needing to keep re-compiling the exact same stuff you've compiled, so I tend to discredit this usage some. But each of those workspaces would end up with it's own copy of the build artifacts, so there is a real savings to layerfs in either case, with it's dedupe.
Good for you on your "speculative merge topologically sorted task list merging into a merge train". Fun hard problems to have! Great. I don't want to be too rude, but also, personally, I think you could have simmered that down a bit, at the cost of not presenting quite entirely how super advanced elite super cool you are.
Perhaps but it wouldn’t have been explicit about why I have that problem. I don’t think it’s a normal problem to have, whether it’s elite or not, it’s IMO not common. The speculative pipeline and the merge train is the key part because they overlap with changes in the same files. This is why block based doesn’t help me as much. I’d prefer to not censor myself with respect to my problem statements for some internet humility virtue signaling.
"I have lots of builds on the same tree" is not really losing much relevant signal. I don't think I'm trying to make you earn "virtue signaling" humility points, I'm trying to increase the chance people understand and ascertain what you're actually saying. Without having to spend time digging through all the inflated noise you're giving off. Communication and brevity are worthy objectives.
If your commitment is just to bragging keep doing what you're doing. I'm just trying to help you be effective. Apologies, I guess? You seem not only not interested, but you're showing some gross colors in the process (virtue is good, actually).
As much as I appreciate your intention might be to be helpful it was in fact quite rude and arrogant. I think telling someone in a technical forum to not be so technical and lecturing them on clarity of communication is pretty offensive - you don’t know me, know what I do or who I am, what my background is, and clearly my message wasn’t intended for your consumption since you found it not for your consumption. Some advice since we are dishing it out, this sort of stuff is as annoying as correcting grammar on Usenet posts or all the other forms of things that disingenuously begin with “not to be rude” - if you are aware it is likely to be read as rude, maybe just not type it next time? Just trying to help you be effective and not show such gross colors next time.
PS, it’s about builds on the same tree but about edits on the same set of files in the tree that would cause block COWs in brtfs. If you read the original links docs you will see that’s the use case they’re targeting, and it’s a lot different than build artifacts. Their proposal isn’t just assisting in deduping but in merging rapidly files that have interleaved changes.
I started on a bad foot when you messaged me, and here's why it rubbed me wrong: it seemed like btrfs snapshots would give you 98% of the wins just as easily. With far better reliability than using a nosync sqlite as a backing store. And I'd talked thought some of the differences. But it didn't seem like you were connecting with or going further into any of the material or tradeoffs or how the two would meet your workload. You didn't connect your work to the subject at all other than to show up and plant a flag. I found it rude and arrogant that you'd just show up to share your thing and be so technically disconnected from the topic.
That all made me pretty sore. Complaining about virtue signalling & this post here, well, we're done here. I don't feel like you've done anything to connect me with the problems. Btrfs seems like it would work just fine for your use cases. You haven't talked to the problem or drawn any connection. Not really interested anymore. Good luck.
I disagree. Its full of AI slop. Too much animation (cute but distracting) I literally tried for 20 minutes and couldn't focus on reading. I just couldnt comprehend anything.
The evergreen observation; The most self-promote-y among us are mostly using AI to reinvent solutions and disguise them as new designs. These address solved problems, which are themselves disguised as new agentic problems.
Celebrating and promoting this stuff does not help us get better at discovering and building actually new things; change my mind.
I have to try it but I am very well interested in the decentralized agents mentioned there, I am tired of scattered agents and sessions across multiple OSes and harnesses I have, I just need one say an LXC that I can self host and automatically sync (or rather async like push/pull) all my harnesses, regardless wherever the previous session was.
You can achieve this by externalizing the memory outside of every harness and then connecting all harnesses to it via MCP.
Then you will have a single store where you can both read and write, and nothing will need to be synced.
I am the founder of Substrate, a project that aims to provide this capability: having just one memory for all your agents, sessions and tools.
What two harnesses do you switch between most often?
Not memory, rather the sessions and skills. So you start your session in opencode on linux with say sol model, then the next hour you pull your Mbp start claude code on macos and cont the session on opus, with the same skills too. Memory isn’t that useful I found it actually bad as it impacts the output in a different direction than what was asked. I was thinking to build it but didn’t have the time, if something proven exists and open source (to trust it with sessions) then that would be great.
> start your session in ... then ... cont the session on
This is not a technical restriction, but a commercial one. Any vendor agnostic harness can implement session sharing as a feature, but because you would be made to pay higher token pricing, there will be little interest among the consumers.
You can do session sharing in proprietary harnesses as well - we do that at Substrate.
Sessions are just text - and can be manipulated however you want.
lmk if you want a quick onboarding to trysubstrate.co
If the skill wa already loaded into context tranplanting it into a new harness will move that skills context as well (not the scripts though).
What kind of memory has degraded your performance?
Memory is quite tricky to tune and simple a direct implementations of an LLM Wiki concept can indeed have a lot of problems, as context accumulates.
We don't move session / skill files between tools.
Instead the next tool gets the decisions from the last session, as well as the sources they were based on.
The plugins are open source (MIT), the server isn't, and there's no self-hosted version yet.
Is it enough to have the decisions and open questions, or do you need the full transcript?
~245k lines of Rust the LLMs coded. So my question is other than DSH does the author(s) have any advice on setup that made creating this possible? or other have tips for best setup that can produce a project like this.
Even those bashing for being AI generated have to admit it’s technically impressive and reflective of where software engineering is headed.
Folks might also be interested in try [1].
Lets you run anything (including your agent) in a mirror of your current system and then inspect/apply/discard/++ any of its effects.
46 comments
[ 0.20 ms ] story [ 93.7 ms ] threadPS: it’s just a fun play on memory/storage and AI. Hope you enjoy :)
Here’s the first write up with the CLI version: https://nicobrenner.github.io/lossy-git/
And repo code: https://github.com/nicobrenner/lossy-git
https://layerfs.ai/benchmarks/dsh-dedup/
I think it’s actually a fairly useful thing but I worry about something so obviously vibe coded hitting 1.0.0 and without a track record but the ideas seem pretty useful. I’ve certainly found the work tree semantics most agents and harnesses follow at scale to be obnoxious at best and it seems to tackle issues head on.
They even have some explanations. Files writes in btrfs snapshots recreatethe contents as opposed to storing what's changed. Btrfs has no dedupe, if multiple snapshots happen to have the same data. And small files store metadata twice in btrfs for reasons.
I do think their use case is a bit pathological, checking out the same harness at every commit. Most of these btrfs gotchas don't feel like they would be super impactful to me. But really cool results none the less.
I guess the win is that often build artifacts are the same in many cases, so a pristine checkout still de-dupes. There's very good build caching systems out there that help with not needing to keep re-compiling the exact same stuff you've compiled, so I tend to discredit this usage some. But each of those workspaces would end up with it's own copy of the build artifacts, so there is a real savings to layerfs in either case, with it's dedupe.
Good for you on your "speculative merge topologically sorted task list merging into a merge train". Fun hard problems to have! Great. I don't want to be too rude, but also, personally, I think you could have simmered that down a bit, at the cost of not presenting quite entirely how super advanced elite super cool you are.
If your commitment is just to bragging keep doing what you're doing. I'm just trying to help you be effective. Apologies, I guess? You seem not only not interested, but you're showing some gross colors in the process (virtue is good, actually).
PS, it’s about builds on the same tree but about edits on the same set of files in the tree that would cause block COWs in brtfs. If you read the original links docs you will see that’s the use case they’re targeting, and it’s a lot different than build artifacts. Their proposal isn’t just assisting in deduping but in merging rapidly files that have interleaved changes.
That all made me pretty sore. Complaining about virtue signalling & this post here, well, we're done here. I don't feel like you've done anything to connect me with the problems. Btrfs seems like it would work just fine for your use cases. You haven't talked to the problem or drawn any connection. Not really interested anymore. Good luck.
https://www.usenix.org/conference/usenix-atc-10/apiary-easy-...
https://www.usenix.org/legacy/event/lisa11/tech/full_papers/...
https://patents.google.com/patent/US8589947B2/
I disagree. Its full of AI slop. Too much animation (cute but distracting) I literally tried for 20 minutes and couldn't focus on reading. I just couldnt comprehend anything.
EDIT: If you scroll down to the commit graph and have your mouse inside the big commit graph rectangle, you can't scroll up anymore!
Celebrating and promoting this stuff does not help us get better at discovering and building actually new things; change my mind.
I am the founder of Substrate, a project that aims to provide this capability: having just one memory for all your agents, sessions and tools.
What two harnesses do you switch between most often?
This is not a technical restriction, but a commercial one. Any vendor agnostic harness can implement session sharing as a feature, but because you would be made to pay higher token pricing, there will be little interest among the consumers.
What kind of memory has degraded your performance? Memory is quite tricky to tune and simple a direct implementations of an LLM Wiki concept can indeed have a lot of problems, as context accumulates.
Even those bashing for being AI generated have to admit it’s technically impressive and reflective of where software engineering is headed.
[1]: https://github.com/binpash/try