Снова время релизов.
Три недели назад майская волна подтянула весь стек в одном посте. С тех пор два самых пользовательских инструмента выпустили по новому минору — Octocode 0.16.0 и Octobrain 0.8.0, оба нарезаны 7 июня — поверх подъёма Octolib с 0.21.5 до 0.23.0.
Через всё это проходит одна сквозная нить, и стоит сказать о ней сразу: эта волна про то, чтобы не настраивать ничего. Octolib 0.23.0 обзавёлся общим способом посмотреть на Git-чекаут и вывести стабильный project ID. Octocode 0.16.0 теперь делегирует идентификацию проекта прямо туда; Octobrain 0.8.0 тем же движением получил автоматическое обнаружение проекта. В итоге два инструмента, которые вы реально наводите на кодовую базу, просто работают в момент запуска, в любом репозитории, без project ID, который пришлось бы выставлять руками.
Начнём с того, что важнее всего.
Octocode 0.16.0 — один сервер, любой репозиторий, теперь со Swift
github.com/muvon/octocode · 0.15.0 → 0.16.0 · 7 июня
0.15.0 был local-first релизом — без API-ключа, hybrid search и reranking включены по умолчанию. Тот релиз был про то, чтобы один индекс был хорош из коробки. 0.16.0 — про то, что происходит, когда у вас больше одной кодовой базы для поиска.
Мультирепозиторный серверный режим — на замену mcp-proxy. Главное изменение. Это breaking change, ради которого стоит обновиться. До сих пор обслуживание нескольких репозиториев через одного ассистента означало гонять mcp-proxy перед флотом однорепозиторных инстансов Octocode — больше движущихся частей, больше того, что надо держать живым, больше того, что надо объяснять. 0.16.0 удаляет этот слой. Один MCP-сервер Octocode теперь говорит на мультирепозиторном языке нативно. Подключаетесь один раз, и ваш агент может искать по проиндексированным кодовым базам, а не быть запертым в одном проекте на подключение.
Внимание: удаление
mcp-proxy— единственный пункт в списке breaking changes 0.16.0. Если ваш сетап сегодня запускает Octocode через прокси, именно это придётся поменять при обновлении.
Zero-config идентификация проекта. Octocode больше не носит свою собственную логику того, какому проекту принадлежит каталог — он делегирует это Octolib, который выводит стабильную идентичность из Git-remote (подробнее о том, почему это важно, ниже). Выигрыш: это та же идентичность, которую теперь выводят Octobrain и остальной стек, так что память и поиск кода сходятся в том, что означает «этот проект», без какой-либо проводки с вашей стороны.
Swift, от начала до конца. 0.16.0 добавляет Swift и в индексатор, и в структурный grep. Если работаете в iOS- или macOS-кодовой базе — а таких у нас теперь несколько, между Vext, Timex и TypeTab — Swift-символы первоклассны для семантического поиска и сопоставления паттернов, а не просто текст.
Кастомный путь к конфигу через env-переменную. Теперь можно навести Octocode на конфиг через переменную окружения, а не полагаться на фиксированное расположение. Маленькое изменение, большой выигрыш в качестве жизни для CI-джоб и машин, жонглирующих несколькими проектами с разными настройками.
Усиление безопасности под капотом. Два изменения, которых вы не увидите, но о которых стоит знать: учётные данные из Git URL теперь вырезаются при нормализации, так что remote со встроенным токеном никогда не окажется записанным в сохранённый URL проекта; а слой хранилища централизует имена таблиц и усиливает свои SQL-запросы.
cargo install octocode --version 0.16.0
# or grab a binary at https://github.com/muvon/octocode/releases
Octobrain 0.8.0 — память, которая настраивает себя сама
github.com/muvon/octobrain · 0.7.0 → 0.8.0 · 7 июня
0.7.0 был громким — sleep-консолидация, half-life decay, память с привязкой к целям, HyDE-recall по умолчанию. Тот релиз был про то, что память вашей ИИ делает сама по себе. 0.8.0 — про то, чтобы убрать последнее, что вам всё ещё приходилось делать руками: сказать ей, в каком она проекте.
Автоматическое обнаружение проекта и деривация ID. Заголовок 0.8.0 и вторая половина сквозной нити. Octobrain теперь обнаруживает проект и выводит его ID автоматически — а под капотом он сменил свои собственные git-утилиты на Octolib (релиз поднимается до Octolib 0.23.0), так что идентичность, которую он выводит, — та же, что выводит Octocode. Запустите Octobrain внутри репозитория, и его память привязывается к этому проекту сама: никакого параметра проекта для передачи, никакого ID для копирования между инструментами и никакого риска, что поиск кода и память указывают на разные проекты. Память, которая уже сама себя обслуживала, теперь ещё и сама себя настраивает.
Кастомный путь к конфигу через env-переменную. Тот же выигрыш в эргономике, что и у Octocode, и это by design — оба инструмента получили в эту волну одну и ту же возможность, чтобы вести себя идентично на CI и многопроектных машинах.
Более стройная MCP-поверхность. 0.7.0 сузил набор инструментов с 8 до 5. 0.8.0 настраивает то, что осталось: листинг инструментов и провайдер памяти оптимизированы, а блокировки проекта и роли теперь развязаны — так что две роли, работающие над одним проектом, или одна роль через несколько проектов, перестают конкурировать за единый lock.
Заметки 0.8.0 не перечисляют breaking changes, так что это чистый апгрейд с 0.7.0 — и на практике вы получаете возможность перестать передавать project ID, потому что Octobrain теперь вычисляет его сам.
cargo install octobrain --version 0.8.0
# or grab a binary at https://github.com/muvon/octobrain/releases
Octolib 0.21.5 → 0.23.0 — плумбинг, который всё вышеперечисленное сделал возможным
github.com/muvon/octolib · 0.21.5 → 0.23.0
Несколько важных замечаний, потому что это слой, делающий тихую работу. Octolib — движок за каждым LLM-вызовом, который мы делаем, и в последнее время он ещё стал местом, где живут общие, не-LLM утилиты, чтобы инструменты выше не изобретали каждый своё.
- Детекция Git-репозитория и деривация project ID (0.23.0). То, что Octocode 0.16.0 явно делегирует и на что Octobrain 0.8.0 перешёл в том же релизе. Положите логику «это Git-репозиторий, какой у него канонический remote, какой у него стабильный ID» в одно место — и каждый инструмент, зависящий от Octolib, получает один и тот же ответ. Это и есть вся причина, почему zero-config идентичность проекта консистентна по всему стеку, а не три инструмента, каждый из которых слегка ошибается по-своему.
- Проверка соответствия схеме ответа (0.23.0). Octolib теперь может проверить, что вывод модели соответствует ожидаемой response schema — полезно везде, где вы парсите структурированный вывод обратно из LLM.
- Поддержка Claude Opus 4.8 (0.21.7). Новейший Opus подключён, вместе с поддержкой структурированного вывода OctoHub и finish-reason, чтобы вызывающая сторона могла понять, почему генерация остановилась, а не только что она остановилась.
- Minimax M3 и M3-highspeed (0.21.8). Ещё две модели в ростере.
- Обработка параллельных инструментов и connection timeouts (0.22.0). Лучшая обработка параллельных вызовов инструментов и connection timeout на HTTP-клиенте, с обработкой запросов, унифицированной за единым путём
send_and_read— меньше способов для медленного или зависшего эндпоинта застопорить агента. - Починки учёта токенов (0.21.6). Закешированные токены больше не считаются дважды, а summaries сжатия больше не блокируют историю разговора. Если ваши цифры стоимости выглядели слегка завышенными на длинных закешированных сессиях — вот почему, и это исправлено.
Если строите что-то, вызывающее LLM из Rust, это по-прежнему слой, на котором стоит стандартизироваться: каждый провайдер, на котором Octolib уже говорит, за одним трейтом, с той же логикой ретрая и тем же учётом стоимости.
А Octofs? Держится на 0.4.3 — намеренно
github.com/muvon/octofs · 0.4.3 · без изменений
Octofs выпустил 0.4.3 в майской волне — regex-поиск, параллельный обход файлов и команда delete — и с тех пор не нуждался в релизе. Это не запущенность; в этом и суть. Слой файловой системы — единственный кусок стека, который хочется иметь скучным и предсказуемым, и сейчас он именно такой. Когда рантайм над ним изменит то, как он трогает файлы, Octofs снова сдвинется. До тех пор 0.4.3 делает свою работу.
Octomind 0.30.0 — выпущен отдельно
Рантайм, который связывает весь этот стек воедино, Octomind, тоже выпустил 0.30.0 3 июня — переносимые workflow-файлы, project-local guardrails и наблюдаемость сессий. Он получил собственный разбор, так что мы просто отправим вас туда: заметки о релизе Octomind 0.30.0 на octomind.run.
Как они стыкуются
Стек тот же, что и в прошлом месяце. Что изменилось — насколько меньше о нём нужно думать. Octolib 0.23.0 теперь выводит идентичность проекта из Git один раз, и Octocode 0.16.0 с Octobrain 0.8.0 читают её. Никакого прокси перед Octocode. Никакого project ID для копирования между конфигами. Никакого риска, что поиск кода и память указывают на разные проекты.
Год назад связать всё это означало прокси, скопированный ID и надежду, что эти двое сходятся. Зазор закрыт. Одиночные бинарники, Apache-2.0, все из них.
Уже начали следующий. Если что-то здесь разблокирует то, что вы давно хотели построить, откройте issue — фичи, запрошенные в июне, склонны выходить в июле.
— Don



