Skip to content

Releases: borro/ragcli

v0.8.0

17 Mar 21:26

Choose a tag to compare

Крупный релиз с новой командой self-update, которая позволяет ragcli самостоятельно проверять и устанавливать свежий stable release из GitHub Releases.

Главное

  • Добавлена команда ragcli self-update.
  • Добавлен режим ragcli self-update --check для безопасной проверки доступности новой версии без записи на диск.
  • ragcli self-update скачивает asset для текущей платформы, проверяет checksums.txt и атомарно заменяет текущий бинарь.
  • Пререлизы и draft-релизы игнорируются: выбирается только последний stable release из borro/ragcli.

Что важно знать

  • self-update работает только для release-сборок с корректной semver-версией, а не для dev-билдов.
  • Для обновления обязателен checksums.txt; без него команда завершится ошибкой.
  • Команда не принимает prompt и не использует LLM-конфигурацию.
  • Для сборки из исходников теперь требуется Go 1.26+.

Дополнительно

  • Усилен live e2e smoke: добавлены проверки verbose-сценариев и stricter pre-push / pre-commit automation.
  • Обновлены документация, help и тесты вокруг новой команды.

v0.7.0

16 Mar 22:45

Choose a tag to compare

Крупный релиз с новым interaction mode для всех основных режимов ragcli.

Главное

  • Добавлен флаг --interaction (-i).
  • После первого успешного ответа CLI теперь может оставаться в post-run сессии и принимать follow-up вопросы без повторного запуска команды.
  • Поддерживаются команды /reset и /exit.

Что это даёт

  • map, rag, tools и hybrid теперь можно использовать как лёгкий REPL поверх уже подготовленного входа и текущего состояния ответа.
  • Follow-up ответы продолжают идти в stdout, а prompt и banner работают через отдельный interaction stream.
  • Если исходный документ был передан через stdin, follow-up ввод читается из controlling TTY, чтобы не ломать пайплайны.

Поведение

  • /reset возвращает состояние к моменту сразу после первого ответа.
  • /exit завершает интерактивную сессию.
  • Для tools и hybrid interaction mode сохраняет и переиспользует conversation state, evidence tracking и tool-session baseline между follow-up вопросами.
  • Для hybrid interaction mode работает и в direct-context path, и в tool-based path.

Зачем обновляться

v0.7.0 полезен, если вы задаёте к одному и тому же файлу или директории несколько последовательных вопросов и не хотите каждый раз заново поднимать полный pipeline. Это особенно удобно для tools, rag и hybrid, где follow-up вопросы естественно продолжают уже начатое расследование.

v0.6.2

15 Mar 20:22

Choose a tag to compare

Патч-релиз с ускорением hybrid на маленьких входах и добавлением live e2e smoke-проверки для реальных backend’ов.

Что изменилось

  • В hybrid добавлен fast path для маленьких single-file входов и stdin.
  • Если файл помещается в безопасный budget контекста, hybrid теперь отвечает напрямую по содержимому без предварительного search_rag, индекса и tool-loop.
  • Если direct-context path неприменим, поведение остаётся прежним: режим откатывается к seeded retrieval flow.
  • Добавлены тесты на direct-context path, fallback при невозможности определить context length и корректное завершение verbose progress.
  • Добавлен live e2e smoke script scripts/e2e_live_smoke.sh.
  • lefthook теперь запускает этот smoke на pre-push; при отсутствии обязательных env сценарий корректно пропускается, а для жёсткого режима есть RAGCLI_E2E_REQUIRED=1.

Зачем обновляться

v0.6.2 заметно снижает стоимость и задержку hybrid на небольших документах, где полноценный retrieval+tools pipeline избыточен. Одновременно релиз усиливает проверку реальной интеграции с LLM backend’ами через отдельный smoke-тест.

v0.6.1

15 Mar 07:53

Choose a tag to compare

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

Что изменилось

  • Выделено общее ядро ragcore: единая логика retrieval, seed-потока и tool-интерфейса.
  • Улучшено поведение hybrid: лучшее формирование evidence и fused seed flow.
  • Нормализован формат Sources: в rag.
  • Дедуплицирована обработка аргументов tools и добавлена общая sanitization‑логика.
  • В debug-логах tools теперь фиксируются аргументы tool call.
  • Тесты и ownership-checks очищены от дубликатов и межпакетных пересечений.

Зачем обновляться

v0.6.1 делает ответы rag/hybrid более аккуратными и предсказуемыми, а инструментарий tools — более надёжным и прозрачным при отладке.

v0.6.0

14 Mar 18:06

Choose a tag to compare

Крупный релиз с новой версией hybrid, расширением tools через --rag, и переносом tool-инфраструктуры в отдельный aitools слой.

Главное

  • Полностью переработан hybrid: теперь это seeded-режим, который стартует с search_rag, затем проверяет и уточняет ответ через file-tools, и всегда дополняет финал Sources:.
  • В tools добавлен флаг --rag, который подключает semantic retrieval tool search_rag поверх локального индекса.
  • Для tools --rag и hybrid теперь обязательны embeddings (как и для rag).

Что изменилось

  • tools переведён на новую tool-архитектуру aitools с единым registry/execute pipeline и отдельным набором file-tools и rag-tools.
  • filetools переработаны и перенесены в internal/aitools/files, добавлен полноценный search_rag tool в internal/aitools/rag.
  • i18n разбит на package-level каталоги и упрощён загрузчик локализации.
  • hybrid теперь работает через tool-session orchestration вместо прежнего пайплайна.

Для кого это важно

Если вы:

  • используете hybrid — поведение изменилось, теперь это seeded+tools режим;
  • используете tools и хотите semantic retrieval без обязательного initial seed — включайте --rag.

v0.5.0

13 Mar 22:15

Choose a tag to compare

Крупный релиз, который переводит ragcli от file-only input к path-based input и добавляет полноценную работу с директориями во всех режимах: map, rag, hybrid и tools.

Главное

  • Добавлен канонический флаг --path для входного файла или директории.
  • Добавлена каноническая переменная окружения INPUT_PATH.
  • --file, -f и INPUT_FILE сохранены как alias-ы для совместимости.
  • Теперь ragcli умеет работать не только с одним файлом, но и с целым локальным corpus из директории.

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

  • map теперь может анализировать директорию как детерминированный synthetic corpus с сохранением границ файлов.
  • rag и hybrid поддерживают directory input с file-aware retrieval:
    • индексация идёт по файлам внутри директории;
    • citations и Sources: сохраняют relative paths;
    • line numbers остаются file-local.
  • tools теперь умеет работать по директории, а не только по одному файлу.
  • В tools добавлен новый инструмент list_files.
  • Для multi-file сценариев search_file может искать по всему corpus, а read_lines и read_around работают с явным path.

Поведение input

  • Если --path указывает на директорию, ragcli рекурсивно обходит её в детерминированном порядке.
  • В corpus включаются только regular text files.
  • Hidden directories, symlink-объекты и бинарные файлы пропускаются.
  • stdin по-прежнему поддерживается, но теперь материализуется как snapshot через единый path-aware input lifecycle.

Что ещё улучшено

  • Проведён крупный рефакторинг internal/app и internal/llm, чтобы разделить CLI binding, runtime orchestration, retry, auto-context и клиентские адаптеры.
  • Обновлены документация, архитектурное описание и package-level README по внутренним пакетам.
  • Добавлены и переработаны тесты для directory input, runtime и multi-file tool/retrieval сценариев.
  • Упрощена логика reduce batching в map.

Почему это 0.5.0

Это уже не patch-релиз:

  • меняется канонический способ задания входа;
  • появляется новый пользовательский сценарий работы по директориям;
  • расширяется surface area tools;
  • заметно переработаны orchestration- и input-слои.

v0.4.1

11 Mar 07:07

Choose a tag to compare

Патч-релиз с явным и предсказуемым управлением proxy для всего LLM-трафика в ragcli, включая и chat-запросы, и embeddings.

Что изменилось

В ragcli появилась отдельная настройка proxy для всех HTTP-запросов к LLM backend’у.

Добавлено

  • Новый глобальный флаг --proxy-url
  • Новый глобальный флаг --no-proxy
  • Новая переменная окружения LLM_PROXY_URL
  • Новая переменная окружения LLM_NO_PROXY

Поведение

  • --proxy-url / LLM_PROXY_URL принудительно отправляют все LLM-запросы через указанный proxy URL
  • --no-proxy / LLM_NO_PROXY=true полностью отключают любой proxy для ragcli, включая proxy из окружения
  • Если новые настройки не заданы, ragcli сохраняет стандартное поведение Go через HTTP_PROXY, HTTPS_PROXY и NO_PROXY
  • Одинаковая proxy-логика теперь применяется и к chat completion, и к embeddings
  • Явный proxy override имеет приоритет над системными proxy-настройками окружения

UX и документация

  • Обновлены help-тексты CLI и локализованные описания новых флагов
  • README дополнен примерами использования для Linux и Windows
  • В debug-логах теперь показывается режим proxy без утечки credentials

Валидация и надёжность

  • Некорректный proxy URL теперь приводит к понятной ошибке уже на старте
  • Добавлены тесты на CLI binding, proxy override, no-proxy, fixed proxy и безопасное логирование proxy-адреса

Зачем обновляться

v0.4.1 полезен для корпоративных сетей, Windows-окружений и любых сценариев, где важно не зависеть от неявного поведения HTTP_PROXY и иметь полный контроль над маршрутизацией запросов к LLM.

v0.4.0

10 Mar 21:54

Choose a tag to compare

Крупный релиз с локализацией CLI, переработкой retrieval-слоя для rag и hybrid, и улучшением стабильности tools.

Главное

  • Добавлена локализация интерфейса CLI.
  • Язык теперь определяется автоматически по системной locale и окружению.
  • Важно: локализация зависит от переменных окружения и системной locale, но её можно явно переопределить через --lang или RAGCLI_LANG.
  • Поддерживаются en и ru.
  • Приоритет такой: --langRAGCLI_LANG → автоопределение системной locale → fallback в en.

Что изменилось

  • rag и hybrid переведены на общий retrieval-слой с выделенными shared helpers.
  • Старые retrieval-индексы теперь инвалидируются корректно после изменений формата кеша.
  • Упрощено хранение индекса и добавлен streaming source file вместо лишнего удержания данных в памяти.
  • В rag исправлена публикация temp index files на Windows.
  • В tools orchestration limit увеличен до 20 шагов, а при достижении лимита добавлена принудительная финализация ответа.
  • Упрощён flow auto context length resolution и fallback для map и hybrid.
  • Тесты изолированы от реальных backend’ов и загруженных моделей, чтобы снизить флаки и зависимость от внешнего окружения.

Зачем обновляться

v0.4.0 делает CLI заметно удобнее для реального использования в разных локалях и окружениях, а rag/hybrid становятся стабильнее за счёт более чистого retrieval pipeline и корректной работы с кешами. Для пользователей tools это также обновление на более предсказуемое завершение длинных orchestration-сценариев.

v0.3.2

09 Mar 22:26

Choose a tag to compare

Патч-релиз про более надёжный выбор лимита контекста в map и hybrid, плюс правка CI/coverage.

Что изменилось

  • Добавлено автоопределение context length модели для map (через LM Studio /api/v1/models, с fallback-проверкой по ошибке переполнения контекста).
  • --length теперь работает как строгий override: если флаг/переменная LENGTH заданы, автоопределение не используется.
  • Если автоопределение недоступно, map использует безопасный fallback 10000.
  • hybrid в режиме fallback на map теперь использует ту же логику auto-or-default, чтобы поведение было консистентным.
  • Расширены тесты для резолва context length, caching, warmup-сценария и strict override.
  • Исправлен workflow покрытия в CI (codecov upload и порядок шагов).

Зачем обновляться

v0.3.2 снижает риск ручного подбора --length и делает обработку больших файлов стабильнее на разных OpenAI-compatible backend’ах. При этом для предсказуемых сценариев остаётся полный контроль через явный --length.

v0.3.1

09 Mar 17:53

Choose a tag to compare

Небольшой patch-релиз с улучшением диагностики embedding-ошибок.

Что изменилось

  • ragcli теперь сохраняет и возвращает исходную причину ошибки после исчерпания retry при запросах к embedding endpoint.
  • Вместо общего сообщения об ошибке пользователь получает более полезный контекст, например конкретный 503 или другую ошибку backend'а.