Moonshot/Kimi returns a non-standard finish_reason of "repeat" when its server-side repetition detector trips. pi-ai surfaces this as a fatal session state error, killing the agent heartbeat. Filter that case in promptSessionAndCheck so the truncated turn is logged and the heartbeat continues on the next tick. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>