vitali87/code-graph-rag

Идеальный RAG для вашего монолита. Запрашивайте, понимайте и редактируйте многоязычные кодовые базы с помощью ИИ и графов знаний

RAG⭐ 5 157Pythonпоследний релиз: v0.0.945
Открыть на GitHub ↗Сайт проекта ↗

Что это за инструмент

Code-Graph-RAG — это инструмент для индексации и анализа мультиязычных монолитных репозиториев, который преобразует код в граф знаний с помощью Tree-sitter и Memgraph, позволяя взаимодействовать с кодовой базой через естественный язык.

Зачем нужен

Инструмент решает проблему навигации в сложных, разнородных кодовых базах, обеспечивая контекстно-зависимые ответы на вопросы о структуре и логике кода. Он полезен для автоматизации рефакторинга, поиска устаревшего кода и безопасного редактирования файлов через агентов, опирающихся на AST, а не просто на текстовый поиск.

Что можно реализовать

  • Поиск и исправление устаревшего (dead code) путем обхода графа вызовов от точек входа.
  • Структурный поиск и замена кода по AST-паттернам с использованием ast-grep для безопасного рефакторинга.
  • Анализ потока данных (data-flow tracing) для отслеживания значений через присваивания и вызовы функций в 10 поддерживаемых языках.
  • Генерация Cypher-запросов к графу знаний на основе естественных запросов пользователя для быстрого понимания архитектуры.
  • Оптимизация кода в соответствии с лучшими практиками или внутренними стандартами через AI-агентов.

Ключевые возможности

  • Поддержка мультиязычных монорепозиториев (Python, JS/TS, Go, Java, Rust, C++, C, C#, Ruby) через единую схему графа.
  • Использование Tree-sitter для точного парсинга AST и Memgraph для хранения графа знаний.
  • Возможность редактирования кода через агентов с предварительным просмотром diff и применением патчей на уровне AST.
  • Плагинная архитектура для добавления новых языков (например, Ruby) через YAML-файлы с паттернами ast-grep.
  • Интеграция с CI/CD и наличие метрик качества кода (Sonar, Codecov, OpenSSF).

👤 Кому подойдёт: Разработчики и технические лидеры, работающие с крупными мультиязычными монолитами, а также команды, стремящиеся автоматизировать поддержку и рефакторинг кодовой базы с помощью AI.

Релизы

v0.0.945minor
🕐 5 дн назад · релиз на GitHub ↗

Добавлена поддержка Neo4j, узел Gloss для заметок агентов и улучшена обработка UTF-8 и CI.

  • Added: Добавлена поддержка Neo4j в качестве графового бэкенда через плагинный интерфейс.
  • Added: Введен узел Gloss для заметок, авторизованных агентами, с возможностью чтения и записи через MCP.
  • Added: Улучшена документация: теперь захватывается модульная документация и docstrings для всех языков.
  • Fixed: Исправлена потеря определений файлов из-за некорректных байтов UTF-8.
  • Added: Улучшены процессы CI: авто-ревью стека PR, проверка конфигураций и статусов запуска.
v0.0.895minor
🕐 12 дн назад · релиз на GitHub ↗

Релиз v0.0.895: улучшена безопасность (блокировка удаления корня), кэширование, парсинг C++/Go и добавлены детерминированные запросы к графу.

  • Fixed: Исправлена критическая уязвимость: заблокировано удаление корня проекта.
  • Added: Введены детерминированные инструменты запросов к графу для точного анализа связей кода.
  • Added: Улучшено управление кэшем: добавлено атомарное сохранение и обработка сиротских кэшей.
  • Added: Расширена интеграция с C++ и Go: добавлен парсинг модульных интерфейсов и алиасов классов.
  • Added: Улучшен процесс повторного анализа: добавлена поддержка удаления файлов и пересборка структур данных.
v0.0.845major
🕐 18 дн назад · релиз на GitHub ↗

Критическое исправление уязвимости обхода allowlist в EXECUTE_SHELL (GHSA-wvxg-744g-6pcg), улучшена стабильность тестов и индексации.

  • Fixed: Устранена критическая уязвимость обхода allowlist в EXECUTE_SHELL, позволявшая выполнять произвольный код через xargs, sed и git.
  • Added: Улучшена точность проверки наследования TypeScript с использованием tsc oracle.
  • Fixed: MCP-индексация теперь корректно учитывает файлы .cgrignore и .gitignore, как и CLI.
  • Fixed: Исправлена работа с флагом --exclude и устранены ошибки разбора отчетов о патчах.
  • Fixed: Улучшена надежность тестов и корректность удаления временных репозиториев на Windows.
v0.0.820minor
🕐 21 дн назад · релиз на GitHub ↗

Релиз v0.0.820: улучшен парсинг PHP/Scala, добавлен графовый реранкинг и транзакционные правки кода.

  • Added: Парсинг NODE_SCHEMAS переведен в машиночитаемый формат, добавлена поддержка PHP use function через пространства имен.
  • Added: Реализован прототип графового реранкинга по близости и ограничено извлечение графа рамками одного проекта.
  • Added: Добавлены транзакционные правки нескольких файлов с поэтапной проверкой и возможностью отмены.
  • Added: Улучшено понимание кода: добавлены ребра INHERITS для Scala и чтение Markdown front-matter в узлы Module.
  • Fixed: Исправлено нестабильное поведение теста scan-perf в Rust и добавлена ранняя проверка неизвестных ID моделей.
v0.0.770minor
🕐 26 дн назад · релиз на GitHub ↗

Релиз v0.0.770: добавлен AST-анализ дубликатов, улучшен индекс графа и внедрены строгие CI-гейты.

  • Added: Внедрена система обнаружения дубликатов кода на базе AST с поддержкой кросс-репозиторного анализа.
  • Added: Добавлен индекс для свойства name в графе и оптимизирован поиск вызовов SQL-рутин.
  • Added: Появился агентный QA-бенчмарк и инструменты для оценки качества индексации.
  • Added: В CI интегрированы pre-commit.ci для автофиксов и Sonar-гейт для слияния без замечаний.
  • Fixed: Исправлена обработка C# интерфейсов, внутренних пространств имен и парсинг markdown-заголовков.
v0.0.720minor
🕐 29 дн назад · релиз на GitHub ↗

Улучшен тaint-трекинг для Java и C#, добавлен in-process Jedi для Python, канонический индекс Protobuf и поддержка Dart/Scala.

  • Added: Улучшен тaint-трекинг в Java: поддержка JDK shims, цепочечных вызовов и литеральных аргументов.
  • Added: Улучшено распространение тaint в C# с учетом привязки аргументов, кортежей и async-методов.
  • Added: Добавлен in-process Jedi semantic frontend для Python и поддержка Dart (Process.run, Socket.connect).
  • Added: Внедрен канонический индекс Protobuf с манифестом происхождения и командой verify для целостности данных.
  • Added: Расширена поддержка Scala (io_access) и добавлены структурные диффы для индексов Protobuf.
  • Fixed: Исправлены ошибки: детерминированные списки директорий, валидация диапазонов кода и стабильность сборки.
v0.0.670major
🕐 1 мес назад · релиз на GitHub ↗

Исправлены критические уязвимости обхода авторизации команд, добавлено трассирование вызовов для C/C++/Rust и корреляция трассировок через MCP.

  • Fixed: Устранены две связанные уязвимости (GHSA-2rr7-8xrw-gmhr, GHSA-4p93-4vf7-4m8r), позволявшие злоумышленникам выполнять произвольные команды без согласования с пользователем через обход механизма EXECUTE
  • Added: Расширено динамическое трассирование графа вызовов: добавлена поддержка Rust, C и C++ (через shim -finstrument-functions), а также сбор данных eBPF continuous-profiler с разрешением фреймов для Python
  • Added: Введен новый инструмент MCP для корреляции runtime-трассировок (traceback) с графом кода, возвращающий ранжированный список вероятных корневых причин ошибок.
  • Added: Улучшено определение типов: переменные циклов в Python теперь выводятся из generic-аннотаций, а в TS/JS — из аннотаций и типов элементов for-of.
  • Added: Добавлена фиксация конкретных классов-получателей для вызовов в PHP, деконфликтование локальных функций CLR в C# и пометка ребер профилирования как приблизительных.
v0.0.639minor
🕐 1 мес назад · релиз на GitHub ↗

Релиз v0.0.639: добавлен трассинг вызовов для 8 языков, улучшена тейн-аналитика и исправлены баги с символическими ссылками.

  • Added: Добавлен runtime call tracing для Go, JVM, Node.js, .NET, PHP, Lua и Dart.
  • Added: Улучшено распространение тейна аргументов для анализа потока данных.
  • Fixed: Исправлена проблема с путями ссылок при удалении символических линков.
  • Fixed: Восстановлена читаемость логотипа в README для темной темы.
  • Added: Расширено покрытие FLOWS_TO для Lua и реализована обработка записей через дескрипторы.
v0.0.589major
🕐 1 мес назад · релиз на GitHub ↗

Критическое исправление уязвимости чтения файлов через симлинки в инструментах структурного поиска и замены.

  • Fixed: Исправлена уязвимость обхода ограничений пути (CVSS 7.1) в AstGrepService, позволявшая читать и записывать произвольные файлы через симлинки в инструментах structural_search и structural_replace.
  • Added: NEWS.md и раздел «Latest News» в README теперь автоматически обновляются при каждом релизе.
  • Added: Сборка бинарных файлов теперь запускается на pull-реквестах с изменениями и по еженедельному расписанию для предотвращения регрессий.
vitali87/code-graph-rag — GitHub-трекер AIKraft | AIKraft