Сайт пересобран из одной страницы в девять, на русском и английском. Содержимое лежит в JSON по локалям, сборка валит себя, если локали разошлись по ключам: страница с половиной непереведённого выглядит рабочей, и замечает её посетитель.
цифры
Тесты пересчитаны по коду
910 тестов: 639 в ядре и 271 в коннекторах. Прошлая витрина показывала 905, README до сих пор пишет 737. Цифру на публичной странице берём из кода, а не из соседнего документа.
имя
Агент для человека называется CapyAgent
Внутри платформа остаётся InterClaw: пути, переменные окружения, юнит службы и модуль Go. Смена внутренних имён ломает каждую существующую установку, и чинится это миграцией, а миграция у клиента - отдельная работа с отдельным риском.
Действия в браузере разрешены только на площадках из списка, только с подтверждением и только по ссылке из снимка. Перед нажатием коннектор сверяет надпись с живой страницей: подтверждали одно, нажимается ровно оно.
аудит
Проверки на то, что написанное подключено
За три дня одиннадцать раз повторилось одно: код написан, покрыт тестами, зелёный в CI - и вызвать его некому. Дважды это оказалось внутри задач, помеченных готовыми. Теперь make check-wiring валит сборку, а не пишет предупреждение в список, который читают до первого раза.
безопасность
Аудит закрыл 21 находку
Самое дорогое: у команды /вызов была отдельная дорога в коннектор мимо списка запретов, выключенных инструментов и подтверждений. Закрыто. У исполнения появился исход в журнале: след с согласием и без исхода не отвечает на единственный важный вопрос - успело ли оно случиться.
служба
Ядро работает службой на боевом сервере
Задачи по расписанию выполняет агент, отказ основного провайдера модели переключает на запасной. Падение канала теперь валит процесс: раньше служба числилась активной, а бот молчал сутками, и узнавали об этом от клиента.
сверка
Сверка с тремя чужими ядрами
Hermes, OpenClaw и GoClaw разобраны после того, как своя версия была написана, а не до. Сравнение до работы даёт копию, сравнение после показывает, что упустил. Нашлось три места, где нагрузка выбивала диалог.
решение
Делаем своё ядро, а не форк
Форк любого из трёх означает вечную гонку за апстримом: соседние ядра пушат ежедневно. Язык ядра Go - из-за памяти и из-за поставки клиенту одним бинарником. Коннекторы вне ядра отдельными MCP-серверами: они переживут смену ядра, и это и есть продукт.
Хотите получать это письмом?
Рассылки пока нет. Напишите нам, и мы позовём, когда появится что-то стоящее вашего внимания.