Remix.run Logo
50lo 14 hours ago

If both sides refactor the same function into multiple smaller ones (extract method) or rename it, can Weave detect that as a structural refactor, or does it become “delete + add”? Any heuristics beyond name matching?

rs545837 14 hours ago | parent [-]

Yes, weave detects renames via structural_hash (AST-normalized hash that ignores identifier names). If both sides rename the same function, it matches by structure and merges cleanly.

gritzko 14 hours ago | parent [-]

This will not work for refactors. In fact, any other change will break the hash. I know because I used this approach for quite some time.

rs545837 14 hours ago | parent [-]

Thanks a lot, I will test it out as you said, in the mean time, could you also open up an issue on the repo, so that it helps me and others to track the issue.

gritzko 14 hours ago | parent [-]

I will ask Claude to open it, thanks!

rs545837 14 hours ago | parent [-]

Thanks, lemme know how it goes, I will review and we can discuss over the issue.