frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Weave – A language aware merge algorithm based on entities

https://github.com/Ataraxy-Labs/weave
44•rs545837•2h ago

Comments

sea-gold•2h ago
Website: https://ataraxy-labs.github.io/weave/

I haven't tried it but this sounds like it would be really valuable to me.

rs545837•1h ago
Haha, thanks for the feedback, yeah multi agent workflows were especially kept in mind when designing this! So I hope it helps, I am always here for feedback and feature requests.
esafak•1h ago
Are agents any good with it?
rs545837•1h ago
Yes I designed it for agents especially, there's also weave mcp that I built that you can checkout.

The good part is that this research extends really good for code review because tracking entities is more semantically rich than lines.

kelseydh•1h ago
Very cool, would love to see Ruby support added.
rs545837•1h ago
Thanks for the request, our team is already working on it, and infact we were going to ship ruby tonight!

Cheers,

rs545837•1h ago
Some context on the validation so far: Elijah Newren, who wrote git's merge-ort (the default merge strategy), reviewed weave and said language-aware content merging is the right approach, that he's been asked about it enough times to be certain there's demand, and that our fallback-to-line-level strategy for unsupported languages is "a very reasonable way to tackle the problem." Taylor Blau from the Git team said he's "really impressed" and connected us with Elijah. The creator of libgit2 starred the repo. Martin von Zweigbergk (creator of jj) has also been excited about the direction. We are also working with GitButler team to integrate it as a research feature.

The part that's been keeping me up at night: this becomes critical infrastructure for multi-agent coding. When multiple agents write code in parallel (Cursor, Claude Code, Codex all ship this now), they create worktrees for isolation. But when those branches merge back, git's line-level merge breaks on cases where two agents added different functions to the same file. weave resolves these cleanly because it knows they're separate entities. 31/31 vs git's 15/31 on our benchmark.

Weave also ships as an MCP server with 14 tools, so agents can claim entities before editing, check who's touching what, and detect conflicts before they happen.

deckar01•25m ago
Does this actually matter for multi-agent use cases? Surely people that are using swarms of AI agents to write code are just letting them resolve merge conflicts.
rs545837•18m ago
So that you don't feel that I am biased about my thing but just giving more context that it's not just me, its actually people saying on twitter how often the merging breaks when you are running production level code and often merging different branches.

https://x.com/agent_wrapper/status/2026937132649247118 https://x.com/omega_memory/status/2028844143867228241 https://x.com/vincentmvdm/status/2027027874134343717

keysersoze33•1h ago
Interesting that Weave tries to solve Mergiref's shortcomings (also Tree-sitter based):

> git merges lines. mergiraf merges tree nodes. weave merges entities. [1]

I've been using mergiraf for ~6 months and tried to use it to resolve a conflict from multiple Claude instances editing a large bash script. Sadly neither support bash out of the box, which makes me suspect that classic merge is better in this/some cases...

Will try adding the bash grammar to mergiraf or weave next time

[1] https://ataraxy-labs.github.io/weave/

rs545837•1h ago
Hey, author here. This comparison came up a lot when weave went viral on X (https://x.com/rs545837/status/2021020365376671820).

The key difference: mergiraf matches individual AST nodes (GumTree + PCS triples). Weave matches entities (functions, classes, methods) as whole units. Simpler, faster, and conflicts are readable ("conflict in validate_token" instead of a tree of node triples).

The other big gap: weave ships as an MCP server with 14 tools for agent coordination. Agents can claim entities before editing and detect conflicts before they merge. That's the piece mergiraf doesn't have.

On bash: weave falls back to line-level for unsupported languages, so it'll work as well as git does there.

Adding a bash tree-sitter grammar would unlock entity-level merge for it. But I can work on it tonight, if you want it urgently.

Cheers,

gritzko•30m ago
At this point, the question is: why keep files as blobs in the first place. If a revision control system stores AST trees instead, all the work is AST-level. One can run SQL-level queries then to see what is changing where. Like

  - do any concurrent branches touch this function?
  - what new uses did this function accrete recently?
  - did we create any actual merge conflicts?
Almost LSP-level querying, involving versions and branches. Beagle is a revision control system like that [1]

It is quite early stage, but the surprising finding is: instead of being a depository of source code blobs, an SCM can be the hub of all activities. Beagle's architecture is extremely open in the assumption that a lot of things can be built on top of it. Essentially, it is a key-value db, keys are URIs and values are BASON (binary mergeable JSON) [2] Can't be more open than that.

[1]: https://github.com/gritzko/librdx/tree/master/be

[2]: https://github.com/gritzko/librdx/blob/master/be/STORE.md

rs545837•27m ago
This is the right question. Storing ASTs directly would make all of this native instead of layered on top.

The pragmatic reason weave works at the git layer: adoption. Getting people to switch merge drivers is hard enough, getting them to switch VCS is nearly impossible. So weave parses the three file versions on the fly during merge, extracts entities, resolves per-entity, and writes back a normal file that git stores as a blob. You get entity-level merging without anyone changing their workflow.

But you're pointing at the ceiling of that approach. A VCS that stores ASTs natively could answer "did any concurrent branches touch this function?" as a query, not as a computation. That's a fundamentally different capability. Beagle looks interesting, will dig into the BASON format.

We built something adjacent with sem (https://github.com/ataraxy-labs/sem) which extracts the entity dependency graph from git history. It can answer "what new uses did this function accrete" and "what's the blast radius of this change" but it's still a layer on top of git, not native storage.

SurvivorForge•12m ago
The entity-level approach is a meaningful step up from line-based merging. Anyone who has dealt with a merge conflict where git splits a function signature across conflict markers knows how much context is lost at the line level. Curious how this handles languages with significant whitespace like Python, where indentation changes can shift the semantic meaning of entire blocks.
rs545837•9m ago
Thanks for commenting, Good question. Python was one of the trickier ones to get right. Tree-sitter parses the full AST including indentation structure, so weave knows that an indented block belongs to its parent class or function. When merging, it matches entities by name and reconstructs with the original indentation preserved.

We also handle Python class merge specifically: if both sides add different methods to the same class, weave merges them as separate inner entities rather than treating the whole class as one conflicting block. The indentation is derived from the AST structure, not from line diffing, so it can't accidentally shift a method out of its class scope.

WalterGR•10m ago
It’s described as a “git merge driver”. Is it usable independently of git? Can I use it to diff arbitrary files?
WalterGR•8m ago
It’s described as a “merge driver for Git”. Is it usable independently of git? Can I use it to diff arbitrary files?
rs545837•2m ago
We got asked this on the X thread too, when we went viral here https://x.com/rs545837/status/2021020365376671820. Your git doesn't change at all. Weave plugs in through git's merge driver interface (.gitattributes), so git still handles everything, it just calls weave for the content merge step instead of its default line-level algorithm. All your git commands, workflow, and history stay exactly the same.

For diffing arbitrary files outside git, we built sem (https://github.com/ataraxy-labs/sem) which does entity-level diffs. sem diff file1.py file2.py shows you which functions changed, were added, or deleted rather than line-level changes

Motorola GrapheneOS devices will be bootloader unlockable/relockable

https://grapheneos.social/@GrapheneOS/116160393783585567
229•pabs3•3h ago•54 comments

California's Digital Age Assurance Act, and FOSS

https://runxiyu.org/comp/ab1043/
36•todsacerdoti•55m ago•2 comments

Graphics Programming Resources

https://develop--gpvm-website.netlify.app/resources/
29•abetusk•2h ago•3 comments

Speculative Speculative Decoding (SSD)

https://arxiv.org/abs/2603.03251
14•E-Reverance•1h ago•0 comments

TikTok will not introduce end-to-end encryption, saying it makes users less safe

https://www.bbc.com/news/articles/cly2m5e5ke4o
44•1659447091•3h ago•22 comments

Weave – A language aware merge algorithm based on entities

https://github.com/Ataraxy-Labs/weave
44•rs545837•2h ago•18 comments

MacBook Pro with M5 Pro and M5 Max

https://www.apple.com/newsroom/2026/03/apple-introduces-macbook-pro-with-all-new-m5-pro-and-m5-max/
713•scrlk•14h ago•712 comments

The largest acidic geyser has been putting on quite a show

https://www.usgs.gov/observatories/yvo/news/echinus-geyser-back-action-now
31•1659447091•3h ago•1 comments

Nobody Gets Promoted for Simplicity

https://terriblesoftware.org/2026/03/03/nobody-gets-promoted-for-simplicity/
11•SerCe•51m ago•0 comments

Mac external displays for designers and developers, part 2

https://bjango.com/articles/macexternaldisplays2/
20•fragmede•1h ago•9 comments

Claude's Cycles [pdf]

https://www-cs-faculty.stanford.edu/~knuth/papers/claude-cycles.pdf
538•fs123•17h ago•227 comments

Voxile: A ray-traced game made in its own engine and programming language

https://elbowgreasegames.substack.com/p/voxray-games-pushes-major-update
136•spacemarine1•7h ago•32 comments

Mount Mayhem at Netflix: Scaling Containers on Modern CPUs

https://netflixtechblog.com/mount-mayhem-at-netflix-scaling-containers-on-modern-cpus-f3b09b68beac
18•vquemener•2d ago•6 comments

Textadept

https://orbitalquark.github.io/textadept/
93•giancarlostoro•2d ago•19 comments

You can use newline characters in URLs

https://lemire.me/blog/2026/02/28/you-can-use-newline-characters-in-urls/
37•chmaynard•3d ago•18 comments

Intel's make-or-break 18A process node debuts for data center with 288-core Xeon

https://www.tomshardware.com/pc-components/cpus/intels-make-or-break-18a-process-node-debuts-for-...
261•vanburen•9h ago•216 comments

When AI writes the software, who verifies it?

https://leodemoura.github.io/blog/2026/02/28/when-ai-writes-the-worlds-software.html
178•todsacerdoti•11h ago•167 comments

GPT‑5.3 Instant

https://openai.com/index/gpt-5-3-instant/
311•meetpateltech•10h ago•240 comments

An Interactive Intro to CRDTs (2023)

https://jakelazaroff.com/words/an-interactive-intro-to-crdts/
106•evakhoury•9h ago•21 comments

Vibe coding for PMs

https://www.ddmckinnon.com/2026/02/11/my-%f0%9f%8c%b6-take-on-vibe-coding-for-pms/
37•dmckinno•4h ago•31 comments

Launch HN: Cekura (YC F24) – Testing and monitoring for voice and chat AI agents

76•atarus•14h ago•19 comments

A pretty looking web for a quantum mechanics tool

https://github.com/Jamessfks/mace
3•Jamessfks123•2d ago•0 comments

We've freed Cookie's Bustle from copyright hell

https://gamehistory.org/cookies-bustle/
107•sb057•8h ago•14 comments

130k Lines of Formal Topology: Simple and Cheap Autoformalization for Everyone?

https://arxiv.org/abs/2601.03298
20•PaulHoule•5h ago•8 comments

Don't become an engineering manager

https://newsletter.manager.dev/p/dont-become-an-engineering-manager
325•flail•14h ago•237 comments

LLMs can unmask pseudonymous users at scale with surprising accuracy

https://arstechnica.com/security/2026/03/llms-can-unmask-pseudonymous-users-at-scale-with-surpris...
18•Gagarin1917•1h ago•1 comments

Lenovo’s new ThinkPads score 10/10 for repairability

https://www.ifixit.com/News/115827/new-thinkpads-score-perfect-10-repairability
306•wrxd•4h ago•143 comments

TorchLean: Formalizing Neural Networks in Lean

https://leandojo.org/torchlean.html
79•matt_d•3d ago•11 comments

Physics Girl: Super-Kamiokande – Imaging the sun by detecting neutrinos [video]

https://www.youtube.com/watch?v=B3m3AMRlYfc
450•pcdavid•13h ago•73 comments

What’s in a name? (2014)

https://sailsandcommas.com/2014/02/03/whats-in-a-name/
15•Curiositry•2d ago•6 comments