Skip to content

Выпуск v0.42.0: точнее поиск памяти, чат не застревает на пересказе истории - #360

Merged
nyxandro merged 28 commits into
mainfrom
develop
Oct 8, 2026
Merged

nyxandro merged 28 commits into
mainfrom
develop

Conversation

@nyxandro

@nyxandro nyxandro commented Oct 8, 2026

Copy link
Copy Markdown
Owner

Выпуск v0.42.0. Описание выпуска — docs/releases/v0.42.0.md.

Три миграции (130–132), переиндексация не нужна. Защита памяти хоста (MemoryLow 2300M), zswap и kernel.panic на проде уже применены. После выкатки переустановить правила Osinara на хабе.

🤖 Generated with Claude Code

nyxandro and others added 28 commits October 8, 2026 16:19
…ексации — только от индексатора

#352: утренний сценарий 08.10 не дождался смыслового поиска за 30 с. Сервис memory-embedding
упирался в свой mem_limit 1024m: 808 МБ в памяти и 295 МБ собственных страниц в свопе при
свободной машине, первый запрос после простоя тратил 7–18 с на подкачку токенизатора.

- compose.production.yaml: mem_limit 1536m, mem_reservation 1200m; защита osinara.slice в
  инструкции деплоя — 2300M (300 + 800 + 1200). Тест сверяет лимит и резерв с замеренным
  рабочим объёмом на проде (1103 МБ).
- Строка AGENT_MEMORY_EMBEDDING_PROVIDER_UNAVAILABLE пишет адрес, число текстов в запросе и
  время ожидания: какой из запросов длинного вопроса не дождался, видно из лога, а не по меткам.
- OsinaraEmbeddingFailed считает только строки сервиса memory-embedding-worker: сбой чтения
  памяти принадлежит OsinaraMemorySemanticBranchDown и больше не отправляет дежурного к индексатору.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
fix(memory): сервис поиска держит рабочий объём в памяти (#352)
…осстановления

#320: OsinaraErrorBurst загоралась на здоровой выкатке — строки переноса истории из Eve (их
кода больше нет) и AGENT_RUNTIME_STARTED не были в списке штатных. Сверка всех console.info
в исходниках нашла ещё восемь таких: остановка и запуск ядра, восстановление ходов после
перезапуска, отложенный обслуживанием ход, перехват блокировки, будильники разговоров.

- Все девять внесены в исключения правила.
- Тест читает каждый console.info-код в agent/, scripts/, services/ и падает, если новый код не
  внесён: список больше не отстаёт от кода молча.
- AGENT_SCHEDULE_CYCLE_SKIPPED остаётся в счёте намеренно: диспетчер, не успевший к следующей
  минуте, — первый признак перегруженной машины (#336).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…е сыплет ошибками

#317: после перезагрузки сервера Docker поднимает контейнеры по политике перезапуска, без
depends_on; обработчик очереди стартовал на 36 с раньше агента, записал 11 строк
AGENT_TELEGRAM_DRAIN_FAILED, и OsinaraErrorBurst загорелась, хотя без ответа не остался никто.

Пока агент ни разу не ответил с момента старта обработчика и не прошло 3 минуты, неудачный
опрос пишется как AGENT_TELEGRAM_DRAIN_WAITING (информация, исключена из всплеска). После первого
ответа или по истечении 3 минут каждая неудача снова ошибка: агент, который так и не поднялся,
остаётся тревогой, на несколько минут позже.

Падение агента на «database system is starting up» со стеком FATAL было у Eve; своё ядро на этом
пишет одну строку AGENT_RUNTIME_START_FAILED и перезапускается Docker — менять там нечего.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ет память

#342: запись, которую нашли и слова, и смысл, на эталоне полезна в 16,5% случаев против
3,8–4,8% у находки одной ветки, но занимала место по той же сумме рангов. Её итоговый балл
теперь умножается на 1,25 (MEMORY_RETRIEVAL_BRANCH_AGREEMENT_FACTOR). На 153 живых ходах:
первая полезная запись в первой тройке в 69% ходов вместо 64%, MRR 0,557 → 0,602, попадание
в 12 мест не изменилось (0,873). Синтетика: полное покрытие длинных вопросов 0,333 → 0,5.

#341: сообщение, целиком составленное из приветствий, благодарностей, смеха и подтверждений,
память не ищет вовсе (memory-small-talk.ts): ни вектора, ни записей, ни нитей. Сигналы самого
поиска (порог сходства, «ни одно слово не совпало») проверены и отвергнуты: на синтетике они
глушили перефраз, вопрос на английском и транслит. Эталон: молчание в 6 из 88 ходов без
нужды в памяти вместо 0, ни одного потерянного попадания. Синтетика: болтовня пуста в v3
в 100% (было 0), в группе в 50% (было 0), 4,4 записи на реплику вместо 8,9.

- В строке AGENT_MEMORY_RETRIEVAL_METRICS поле abstained; хаб считает такие ходы отдельной
  записью и не смешивает их с пустой подборкой из сломанного поиска.
- Синтетические замеры и харнесс эталона меряют автоподборку как продукт, с молчанием.
- Харнесс эталона: команда candidates выгружает всех кандидатов хода с оценками веток для
  офлайн-перебора слияний; защита запроса пересмотрена под новый параметр.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
#344: «Что было вчера?» не находил запись того дня — в её тексте нет слова «вчера», а дату
события читал только явный поиск за период, который модель вызвала в 2 ответах из 255.
Автоподборка теперь сама распознаёт явные формы: вчера, позавчера, N дней назад, неделю назад,
на прошлой/этой неделе, в прошлом/этом месяце, «в июне [2025]», «3 марта [2025]». Записи с датой
события в окне идут первыми (сначала совпавшие и по теме), остальное место заполняет обычный
поиск. День без года — последний прошедший; «сегодня», «тогда», «недавно» не читаются.
«Вчера» считается по календарю человека, в группе — по часовому поясу группы.

- memory-automatic-selection.ts: одна функция автоподборки (болтовня, поиск, окно дат) для хода,
  синтетических замеров и харнесса эталона; эталон считает «сегодня» на момент вопроса.
- В строке AGENT_MEMORY_RETRIEVAL_METRICS поле dateWindow: форма, границы и число записей окна.
- Синтетика: dateQuestionRecallAt12 0 → 1; вопросу с точным днём дан год, иначе он со временем
  указывал бы на другой год. Остальные цифры не изменились.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
#346: «Осинара, как ты выглядишь?» не находил запись об аватаре. Обращение с именем вырезается
из вопроса перед поиском, и «как ты выглядишь» ни на кого не указывал, а записи чата об
ассистенте подписаны его именем. В групповом чате имя теперь возвращается в конец поискового
текста, если в вопросе есть «ты/тебя/твой…» и нет третьего лица (иначе «ты» может быть
цитатой). В личном чате правило не действует: там «ты» открывает почти каждую просьбу.

Групповая синтетика: botPersonaRecallAt12 0,75 → 1, aliasWordingRecallAt12 и его доля в первой
тройке 0,75 → 1 («железо», «гардрейлы» спрашивают у бота), positiveRecallAt12 0,917 → 1,
expectedInTopThreeRate 0,875 → 1. Цена: «ты подшофе?» теперь получает записи о боте.

Имя ассистента вынесено в AGENT_DISPLAY_NAME (agent-name.ts) вместо двух копий строки.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…м спросили

#343: на «что Нина говорила про Стаю?» запись Тимура о Стае занимала место рядом с записями
Нины, и модель могла приписать его мнение ей. Если вопрос называет человека (подпись субъекта
вида «Имя (ник)», по имени в любом падеже или по нику), записи о других людях получают четверть
своего балла до выбора двенадцати мест. Они не убираются: если у названного по теме ничего нет,
сосед остаётся, ниже.

Жёсткий фильтр «только названный и записи без субъекта» замерен и отвергнут: подписи в боевой
памяти — свободный текст («Осинара / Мия», «Ilya Kruglov — система памяти»), имя бота стоит
почти в каждом групповом вопросе, и на 153 живых ходах фильтр стоил 8 полезных записей и одно
попадание. Мягкий вариант на тех же ходах: 111 полезных записей в выдаче вместо 110, MRR 0,605.

Групповая синтетика: новая метрика participantNearMissNeighbourTopThreeRate — запись соседа
в первой тройке на вопрос о человеке, у которого такого нет: 0,6 → 0. Остальное без изменений,
тишина на таких вопросах (participantNearMissEmptyRate) остаётся 0. Групповой корпус хранит
подпись субъекта в колонке, как прод; без этого правило в замере не видно.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
#345: «тачка», «комп», «репа», «ДР», «инет», «дейли», «гитхаб», «гардрейлы» не находили запись
или ставили её ниже третьего места: ветки по словам не видят связи, смысловая видит слабо.
К поисковому тексту автоподборки добавляется обычная форма из короткого словаря однозначных
замен (memory-query-aliases.ts); написанное человеком не меняется. Многозначное («железо»)
в словарь не входит: неверная замена тянет чужие записи.

Синтетика v3: aliasWordingRecallAt12 0,875 → 1, aliasWordingTopThreeRate 0,5 → 1 — вопросы
составлены из тех же слов, что в словаре, так что это проверка работы, а не охвата; на 153
живых ходах словарь сработал 4 раза, из них «напомни свой гитхаб» и «твои гардрейлы».

Псевдонимы на уровне субъекта (вариант А) не сделаны: измеренные промахи закрыты словарём и
правилом «ты» из #346, а своя семейная кличка вещи — новые данные с правкой и удалением,
которые без живых промахов не оправданы.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
#336, #314: своп — файл на медленном диске базы; zswap держит вытесненные страницы сжатыми в
памяти. #315: kernel.panic = 10 перезагружает машину после паники ядра вместо многочасового
простоя. Обе настройки применены на сервере 08.10.2026 и записаны в инструкцию, чтобы новая
установка их не потеряла.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…т чат навсегда

#331: если модель отклоняла сам запрос на пересказ старой части истории (окно по её счёту,
отказ провайдера), ход падал, история не менялась, и следующее сообщение отправляло тот же
запрос с тем же результатом — чат замолкал навсегда.

Выход — со следующего сообщения, без повтора внутри хода (решение владельца 08.10.2026):
- отказ на пересказ (не временная недоступность и не отмена хода) записывается в состояние
  сессии отдельной транзакцией: compaction_summary_refusals, миграция 130;
- каждый отказ вдвое уменьшает бюджет следующего пересказа, и бюджет становится жёстким: что
  не спасает обрезка, отдают старейшие сообщения с пометкой, сколько их выпало;
- после четырёх отказов подряд старая часть заменяется пометкой «не удалось пересказать» без
  вызова модели — путь выхода гарантирован;
- удачное сжатие обнуляет счётчик; строка AGENT_COMPACTION_SUMMARY_REFUSED с числом отказов.

Обычное сжатие без отказов работает как раньше.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Тест этапов подборки отдавал из поиска объект без claimIdsByConflictRef и ждал лимит undefined;
общая автоподборка читает поле и передаёт лимит явно.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
fix(monitoring): штатные строки запуска не зажигают всплеск ошибок (#320, #317)
feat(memory): точнее подборка памяти — согласие веток, молчание на болтовню, даты, «ты», соседи, сленг (#341–#346)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
По ревью #331. Ошибка ключа, оплаты, пропавшая модель или модель, не
ответившая вовремя, валят любой запрос, а не этот пересказ. Раньше они
тоже засчитывались как отказ: четыре сообщения во время такой аварии
молча выбросили бы старую часть истории. Отказом теперь считаются только
переполнение окна, пустой ответ и отклонённый запрос без статусов
доступа (401, 402, 403, 404).

Когда старая часть истории выбрасывается после четырёх отказов,
принятая раньше сводка остаётся. Ход падает с понятным кодом
AGENT_COMPACTION_SUMMARY_REFUSED и сообщением, что следующее сообщение
сожмёт историю сильнее, вместо «повтор не поможет». Если счётчик отказов
записать не удалось, это уходит в лог, а ход падает с исходным отказом.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
fix(runtime): отказ модели пересказать историю больше не останавливает чат (#331)
… сессии, а не только за автоподборку хода

#339: запись, которую модель нашла явным поиском, увидела в профиле или в ответе прошлого хода,
счётчик отклонял — в журнале показов была только автоподборка этого хода. Кривая забывания
старила именно то, что приходилось искать вручную; 141 из 280 названных записей отклонены.

- Журнал показов знает источник (миграция 131): selection, profile, search, list.
  search_memories и list_memories пишут свои показы, блок памяти — постоянные утверждения
  профиля. Ход без окна журнала (дочерний агент, запуск по расписанию) не пишет ничего.
- Счётчик засчитывает запись, показанную в этой сессии беседы до этого хода в пределах журнала,
  один раз на показ и один раз на ответ: показ помнит, какой ход его потратил, и повторная
  обработка хода не тратит следующий. Другая сессия той же беседы не считается — её история не
  перед моделью. Ответ после подтверждения действия (новый turnId) теперь тоже засчитывается.
- Отбор повторов автоподборки смотрит только на её собственные показы: найденное поиском не
  прячется от следующей подборки.
- Ошибка записи в журнал не отнимает у человека результат поиска: строка
  AGENT_MEMORY_SHOW_RECORD_FAILED в лог, инструмент отвечает найденным.

Теперь rejectedRefs в AGENT_MEMORY_USAGE_DIRECTIVE значит одно: модель назвала то, чего этой
сессии не показывали.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
По ревью #339. Счётчик использования теперь засчитывает и записи,
найденные самой моделью, а запись хаба osinara_memory_used_1m и тревога
OsinaraMemoryNeverUsed сравнивают использованное с предложенным
автоподборкой. Без разделения тревога не заметила бы подборку, которая
предлагает бесполезное, пока модель находит нужное сама. Счётчик
возвращает отдельно записи из автоподборки, строка
AGENT_MEMORY_USAGE_DIRECTIVE несёт countedSelectionCount, правило хаба
считает по нему; пороги тревоги сняты именно на таком числителе.

Эталонный замер читал из журнала показов всё подряд: теперь только
показы автоподборки, и использованной считается запись, которую
засчитал тот же ход.

Тесты: оба читающих инструмента пишут показы, сбой записи уходит в лог
и не мешает ответу.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Споры не создаются с v0.12.0, а оставшаяся часть механизма прятала живую
запись, если вторую сторону спора удалили (#340). Убраны инструмент
manage_memory_conflict и его выдача во всех режимах, сборка спорных пар в
подборке и в search_memories, фильтры «участвует в споре» в профиле и в
ремонте дайджеста, ссылки на споры в нитях памяти, конфликтные ветки
бюджета блока памяти, журнала показов, харнессов замера.

Подборка теперь перепроверяет права на найденные записи отдельным
запросом (searchAuthorized), как раньше это делала сборка спорных пар:
отзыв членства посреди хода по-прежнему убирает выдачу целиком.

Миграция 132 вычищает manage_memory_conflict из разрешённых инструментов
внешних групп: неизвестное имя в списке иначе обнулило бы политику
группы целиком. Таблица claim_conflicts пуста и остаётся как история.

Closes #340

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Споров между версиями записей больше нет (#340), а ответ после
подтверждения с #339 засчитывается по показам всей сессии. В комментарии
правила хаба осталось одно принятое расхождение — запись из профиля,
которую бюджет убрал из блока.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Харнесс замера ответов пересобирал запрос хода сам и в нескольких местах
расходился с продом (#348). Теперь системная часть строится из блоков,
которые прод сохранил с ходом (agent_turns.prepared), той же функцией,
что и в ядре (preparedSystemPrompt). Подменяется только блок памяти: в
нём и различаются варианты замера. В запрос вернулись блоки
делегирования, предпочтений оформления, набора реакций, список skills и
пользовательские блоки хода.

search_memories предлагается так, как его показала настоящая выдача
инструментов хода (resolveToolSurface): во внешней группе без гранта
модель не получает инструмента, описание то же, что в проде. Исполняется
сам инструмент продукта, без обёрток выдачи: в личном чате обёртка
забирала бы досланные сообщения на копии базы и могла бы расшифровывать
голос через провайдера.

Ход без ровно одного блока памяти отклоняется с понятной ошибкой. На
боевой базе у всех 153 ходов эталона блок памяти ровно один.

Closes #348

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ресказе истории

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
feat(memory): использование засчитывается за всё, что модель видела в сессии (#339)
refactor(memory): удалён механизм споров между версиями записей
feat(memory-quality): замер ответов берёт инструкции хода из прода
@coderabbitai

coderabbitai Bot commented Oct 8, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 108 files, which is 8 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

Check out review usage here.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 3577cf5b-3f0a-4103-8052-8a4de5ed1017
📥 Commits

Reviewing files that changed from the base of the PR and between 4832f85 and 56b53cc.

⛔ Files ignored due to path filters (3)
  • docs/production-deployment.md is excluded by !docs/**
  • docs/releases/v0.42.0.md is excluded by !docs/**
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (108)
  • agent/lib/agent-name.ts
  • agent/lib/agent-schedules/ai-digest-repair.ts
  • agent/lib/conversation-timeline-repository.ts
  • agent/lib/manage-memory-conflict-tool.test.ts
  • agent/lib/memory-automatic-selection.test.ts
  • agent/lib/memory-automatic-selection.ts
  • agent/lib/memory-config.ts
  • agent/lib/memory-conflict-grant-cleanup-migration.integration.test.ts
  • agent/lib/memory-conflict-repository.integration.test.ts
  • agent/lib/memory-conflict-repository.ts
  • agent/lib/memory-date-question.test.ts
  • agent/lib/memory-date-question.ts
  • agent/lib/memory-embedding-client.test.ts
  • agent/lib/memory-embedding-client.ts
  • agent/lib/memory-live-read-authorization.integration.test.ts
  • agent/lib/memory-named-people.test.ts
  • agent/lib/memory-named-people.ts
  • agent/lib/memory-observability.ts
  • agent/lib/memory-persona-query.test.ts
  • agent/lib/memory-persona-query.ts
  • agent/lib/memory-query-aliases.test.ts
  • agent/lib/memory-query-aliases.ts
  • agent/lib/memory-retrieval-diagnostics.test.ts
  • agent/lib/memory-retrieval-eval-group/index.ts
  • agent/lib/memory-retrieval-eval-group/memory-retrieval-eval-group.integration.test.ts
  • agent/lib/memory-retrieval-eval-group/queries.ts
  • agent/lib/memory-retrieval-eval-group/types.ts
  • agent/lib/memory-retrieval-eval-support.ts
  • agent/lib/memory-retrieval-eval-v3/index.ts
  • agent/lib/memory-retrieval-eval-v3/memory-retrieval-eval-v3.integration.test.ts
  • agent/lib/memory-retrieval-eval-v3/queries-golden-shapes.ts
  • agent/lib/memory-retrieval-eval.integration.test.ts
  • agent/lib/memory-retrieval-ranking.test.ts
  • agent/lib/memory-retrieval-ranking.ts
  • agent/lib/memory-retrieval-repository.integration.test.ts
  • agent/lib/memory-retrieval-repository.ts
  • agent/lib/memory-retrieval-stages.test.ts
  • agent/lib/memory-retrieval-turn-context.test.ts
  • agent/lib/memory-retrieval.test.ts
  • agent/lib/memory-retrieval.ts
  • agent/lib/memory-show-journal.integration.test.ts
  • agent/lib/memory-show-journal.ts
  • agent/lib/memory-small-talk.test.ts
  • agent/lib/memory-small-talk.ts
  • agent/lib/memory-thread-brief-generator.ts
  • agent/lib/memory-thread-brief.test.ts
  • agent/lib/memory-thread-context.ts
  • agent/lib/memory-thread-source-repository.ts
  • agent/lib/memory-tool-results.test.ts
  • agent/lib/memory-tool-shows.ts
  • agent/lib/memory-upgrade-ledger.integration.test.ts
  • agent/lib/memory-usage-report.test.ts
  • agent/lib/memory-usage-report.ts
  • agent/lib/memory-usage-repository.integration.test.ts
  • agent/lib/memory-usage-repository.ts
  • agent/lib/model-facing-error.ts
  • agent/lib/profile-view-repository.ts
  • agent/lib/prompt/common-fragments.ts
  • agent/lib/prompt/turn-blocks.test.ts
  • agent/lib/prompt/turn-blocks.ts
  • agent/lib/prompt/turn-memory-budget.test.ts
  • agent/lib/prompt/turn-memory-budget.ts
  • agent/lib/prompt/turn-memory-context.ts
  • agent/lib/r3-external-projection-retrieval.integration.test.ts
  • agent/lib/r3-profile-projection.integration.test.ts
  • agent/lib/telegram-agent-timeline-repository.ts
  • agent/lib/tool-policy/group-tool-catalog.test.ts
  • agent/lib/tool-policy/group-tool-catalog.ts
  • agent/lib/tool-policy/mode-tool-surface.ts
  • agent/lib/tool-policy/trusted-mode-tool-catalog.ts
  • agent/lib/tool-surface.test.ts
  • agent/lib/tools/list_memories.ts
  • agent/lib/tools/manage_memory_conflict.ts
  • agent/lib/tools/search_memories.ts
  • agent/runtime/history/history-repository.integration.test.ts
  • agent/runtime/history/history-repository.ts
  • agent/runtime/prompt/system-prompt.ts
  • agent/runtime/turn/compaction-prompt.ts
  • agent/runtime/turn/compaction.test.ts
  • agent/runtime/turn/compaction.ts
  • agent/runtime/turn/model-errors.test.ts
  • agent/runtime/turn/model-errors.ts
  • agent/runtime/turn/run-turn.integration.test.ts
  • agent/runtime/turn/run-turn.ts
  • compose-runtime.test.ts
  • compose.production.yaml
  • infra/monitoring/rules/logs/osinara.yaml
  • infra/monitoring/rules/metrics/osinara.yaml
  • migrations/130_compaction_summary_refusals.sql
  • migrations/131_memory_show_sources.sql
  • migrations/132_remove_memory_conflict_grants.sql
  • monitoring-alert-rules.test.ts
  • package.json
  • scripts/memory-quality/answers/answer-turn.ts
  • scripts/memory-quality/answers/memory-conditions.ts
  • scripts/memory-quality/answers/run.ts
  • scripts/memory-quality/answers/turn-prompt.test.ts
  • scripts/memory-quality/answers/turn-prompt.ts
  • scripts/memory-quality/golden/candidate-pool.integration.test.ts
  • scripts/memory-quality/golden/candidate-pool.ts
  • scripts/memory-quality/golden/run.ts
  • scripts/memory-quality/golden/show-journal.integration.test.ts
  • scripts/memory-quality/usage-lines.test-fixtures.ts
  • scripts/memory-quality/usage-summary.test.ts
  • scripts/memory-quality/usage-summary.ts
  • scripts/telegram-ingress-drain-failure.test.ts
  • scripts/telegram-ingress-drain-failure.ts
  • scripts/telegram-ingress-worker.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@nyxandro
nyxandro merged commit bc31b9d into main Oct 8, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant