Индексирует кодовую базу в граф знаний зависимостей, цепочек вызовов и потоков выполнения и предоставляет его AI-агентам для программирования через инструменты MCP.
Ataraxy-Labs/weave
Драйвер слияния Git на уровне сущностей: объединяет код по функциям, классам и ключам, а не по строкам, предотвращая ложные конфликты независимых изменений.
- Звёзды
- 1,352
- Форки
- 49
- Открытые issues
- 2
- Последний коммит
- 16 часов назад
Что это?
Weave заменяет построчное трёхстороннее слияние Git слиянием на уровне сущностей. Он разбирает базовую версию файла, а также версии ours и theirs с помощью tree-sitter, сопоставляет функции, классы и ключи между версиями по имени, типу и области видимости, а затем объединяет эти сущности. Изменения разных сущностей применяются автоматически, а конфликт возникает только тогда, когда изменения одной и той же сущности действительно несовместимы.
Проблема особенно заметна, когда несколько AI-агентов или разработчиков одновременно редактируют один файл. Git сообщает о конфликте, если в двух ветках рядом добавлены разные функции, хотя фактического пересечения изменений нет. Weave устанавливается как драйвер слияния командой `weave setup`, а неразрешимые конфликты записываются с контекстом на уровне сущностей — например, указывается, какая функция была изменена в одной ветке и удалена в другой.
В проект также входят `weave land` для проверки и публикации слияний от агентов, `weave check` и `weave explain` для анализа результатов слияния, MCP-сервер для фреймворков агентов и конфигурация Jujutsu. Поддерживается около 38 языков; для неподдерживаемых или очень больших файлов используется построчное слияние Git.
Ключевые возможности
- 01Объединяет функции, классы и ключи как сущности, поэтому независимые изменения в одном файле не конфликтуют.
- 02Использует грамматики tree-sitter для разбора примерно 38 языков, включая TypeScript, Python, Go, Rust и JSON.
- 03Показывает конфликты с контекстом на уровне сущностей, например указывает тип сущности и то, какая сторона её изменила или удалила.
- 04Устанавливается как драйвер слияния Git командой `weave setup` — глобально или для отдельного репозитория.
- 05Предоставляет `weave check`, `weave explain` и `weave preview`, чтобы проверить результаты слияния перед коммитом.
- 06Включает MCP-сервер, с помощью которого фреймворки агентов могут вызывать инструменты слияния, редактирования и проверки.
Сценарии использования
- Позволяет нескольким AI-агентам для написания кода работать с одним исходным файлом без ручного разрешения конфликтов.
- Сокращает число ложных конфликтов слияния, когда много разработчиков редактируют один большой модуль или файл конфигурации.
- Добавляет структурную проверку перед публикацией автоматического слияния от агента в ветку.
Быстрый старт
- 1
Установите weave (подробности см. в разделе Install файла README)
- 2
Включите weave в репозитории, чтобы git использовал его при merge
weave setup - 3
Выполните merge: реальные конфликты отображаются маркерами со строкой refused_by
git merge <branch> - 4
Сверьте итоговое рабочее дерево с этапами merge
weave check
Что важно знать
- Слияние на уровне сущностей может приводить к конфликтам там, где обычный Git выполнил бы слияние без проблем. Собственные бенчмарки проекта показывают ухудшение результатов на нескольких репозиториях.
- Файлы Vue, Svelte, ERB и Haskell намеренно не обрабатываются weave и передаются другим механизмам.
- Проект находится на версии 0.5.x, и решения о слиянии менялись между выпусками.
В подборках
Темы
Частые вопросы
- Что такое weave?
- Драйвер слияния Git на уровне сущностей: объединяет код по функциям, классам и ключам, а не по строкам, предотвращая ложные конфликты независимых изменений. Weave заменяет построчное трёхстороннее слияние Git слиянием на уровне сущностей. Он разбирает базовую версию файла, а также версии ours и theirs с помощью tree-sitter, сопоставляет функции, классы и ключи между версиями по имени, типу и области видимости, а затем объединяет эти сущности. Изменения разных сущностей применяются автоматически, а конфликт возникает только тогда, когда изменения одной и той же сущности действительно несовместимы.
- weave можно использовать бесплатно? Какая у него лицензия?
- weave распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- weave всё ещё поддерживается?
- Активно поддерживается. Последний коммит в weave — 7 нояб. 2026 г..
- Для чего можно использовать weave?
- Позволяет нескольким AI-агентам для написания кода работать с одним исходным файлом без ручного разрешения конфликтов. Сокращает число ложных конфликтов слияния, когда много разработчиков редактируют один большой модуль или файл конфигурации. Добавляет структурную проверку перед публикацией автоматического слияния от агента в ветку.
- Как установить weave?
- Установите weave (подробности см. в разделе Install файла README) Включите weave в репозитории, чтобы git использовал его при merge: weave setup Выполните merge: реальные конфликты отображаются маркерами со строкой refused_by: git merge <branch> Сверьте итоговое рабочее дерево с этапами merge: weave check
- Где скачать weave?
- Исходный код и инструкции по установке — на GitHub: https://github.com/Ataraxy-Labs/weave
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Локальный движок анализа кода: строит граф знаний по нескольким репозиториям и предоставляет его AI-агентам для программирования и IDE через CLI, MCP-сервер и API.
MCP-сервер индексирует код, документацию и инфраструктуру в локальный граф знаний, чтобы AI-агенты для программирования могли изучать структуру проекта, не перечитывая файлы.
Самостоятельно размещаемый слой контекста по коду: индексирует репозитории на разных хостингах, чтобы разработчики и AI-агенты могли искать по ним и изучать их структуру.
CLI и MCP-сервер на C++23 без зависимостей, который строит для coding agents ранжированную карту кодовой базы и проверяет правки на радиус воздействия, необходимые тесты и ухудшение качества.
Jujutsu (jj) — совместимая с Git система контроля версий, которая записывает изменения рабочей копии как коммиты и сохраняет историю операций для их отмены.