0.134.82
Fixed
- Defer-порядок в timeout/turn_end: timeout-defer (LIFO) выполнялся после turn_end-defer, что вызывало дублирующий
_turn_end. Заменено на прямую проверкуturnCtx.Err()внутри turn_end-defer. - Circuit breaker застревал навсегда:
isOpen()не сбрасывалopenUntilпри истечении cooldown — breaker никогда не self-heal’ился. Добавлен auto-clear. - Миграция 078 ломала FK: RENAME→CREATE→DROP паттерн ломал FK в message_reactions, message_favorites, fact_sources. Добавлен
PRAGMA foreign_keys=OFF. isRequestLevelErrorчерез substring: заменён наerrors.Is/errors.Asпротивnet.Error,context.DeadlineExceeded,net.OpError.PublishOutboundCtxневидимый дроп: не логировал и возвращалctx.Err()вместоerrBusFull. Добавлен slog +fmt.Errorf("%w: %w", errBusFull, ctx.Err()).- Batch failure clamping: один transient blip на большом батче не должен перепрыгивать threshold.