Skip to content

fix(runtime): авария провайдера при пересказе истории не считается отказом (v0.42.1) - #361

Merged
nyxandro merged 1 commit into
developfrom
fix/compaction-refusal-outage
Oct 8, 2026
Merged

nyxandro merged 1 commit into
developfrom
fix/compaction-refusal-outage

Conversation

@nyxandro

@nyxandro nyxandro commented Oct 8, 2026

Copy link
Copy Markdown
Owner

Что исправляет

Второе независимое ревью нашло ошибку в v0.42.0 (#331). Пересказ длинной истории вызывает модель через generateText со встроенными повторами AI SDK. Авария провайдера доходила до счётчика отказов как RetryError без статуса и засчитывалась как отказ. Четыре сообщения в длинном чате во время аварии стёрли бы старую часть разговора без пересказа. На проде таких случаев не было: сессий с засчитанными отказами — 0.

Что сделано

  • Нормализация ошибки пересказа. Она нормализуется так же, как у основного вызова модели (normalizeModelCallError). Авария становится AGENT_MODEL_TEMPORARILY_UNAVAILABLE и не засчитывается.
  • Что считается отказом. Только AGENT_MODEL_CONTEXT_OVERFLOW, AGENT_MODEL_OUTPUT_FILTERED, AGENT_MODEL_OUTPUT_TRUNCATED и AGENT_MODEL_CALL_FAILED без статусов доступа. Статус ищется и в RetryError.lastError, поэтому последовательность 503 → 401 отказом не считается.
  • Обрыв потока провайдера. AGENT_MODEL_OUTPUT_INCOMPLETE — сбой связи, а не отказ. Фоновая проверка памяти в этом случае снова ждёт модель.
  • Текст пометки. Пометка о выброшенной части стоит после сохранённой сводки и говорит, что пропала только часть между сводкой и последними сообщениями.
  • Выход из тупика. Если прежняя сводка не оставляет места последним сообщениям, уходит и она. Раньше в этом случае чат отвечал AGENT_COMPACTION_OUTPUT_TOO_LARGE на каждое сообщение.
  • Выпуск v0.42.1: версия поднята, добавлен docs/releases/v0.42.1.md.

Проверка

  • На старом коде 7 новых тестов падают, среди них интеграционный тест с настоящей формой ошибки AI SDK после исчерпания повторов.
  • С исправлением все тесты ядра проходят (29 файлов, 263 теста), typecheck чистый.

🤖 Generated with Claude Code

…казом

По второму ревью #331. Пересказ вызывает модель через generateText со
своими повторами AI SDK, и авария провайдера доходила до счётчика
отказов как RetryError без статуса: четыре сообщения во время аварии
стёрли бы старую часть длинного чата. Ошибка пересказа теперь
нормализуется так же, как основной вызов модели, а статус ищется и в
последней попытке внутри RetryError.

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

Пометка о выброшенной части не противоречит сохранённой сводке. Если
прежняя сводка не оставляет места последним сообщениям, уходит и она:
выход из тупика не должен сам кончаться ошибкой «слишком длинно».

Выпуск v0.42.1.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 8, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 6 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: e0597838-cdc9-449f-b42b-1cead13ffe7d
📥 Commits

Reviewing files that changed from the base of the PR and between 56b53cc and 5cea6f5.

⛔ Files ignored due to path filters (2)
  • docs/releases/v0.42.1.md is excluded by !docs/**
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (7)
  • 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
  • package.json
  • 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 50da912 into develop Oct 8, 2026
4 checks passed
@nyxandro
nyxandro deleted the fix/compaction-refusal-outage branch October 8, 2026 19:34
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