Compaction is refused by Anthropic Claude Fable because of transcribed thinking blocks
What happened?
/compact fails on claude-fable-5 because serializeConversation transcribes thinking blocks into the summarization prompt. Anthropic's reasoning_extraction classifier refuses it:
Compaction failed: Turn prefix summarization failed: This request was blocked as it seems to
violate Anthropic's Terms of Service restrictions on reverse engineering or duplicating model
outputs.
This is the same line cited by #9602 — utils.ts:133, but this is a different failure. #9602 is about the summary request overflowing the context budget. This issue is about Anthropic refusing it outright.
The fix proposed for #9602 will not fix this issue. #9602's option 1 omits thinking only from messages the request converter already skips (no text, no tool calls). The trigger here is transcribing thinking from ordinary assistant messages that do have text and tool calls. Those paragraphs survive the proposed fix in #9602, and the block still happens.
Anthropic's Fable 5 guidance says the following:
Prompts, skills, or harness instructions that tell the model to echo, transcribe, or explain its internal reasoning as response text can trigger the
reasoning_extractionrefusal category on Claude Fable 5.
Steps to reproduce
- Use
claude-fable-5with thinking enabled. - Run a session long enough to accumulate several large thinking turns.
- Run
/compact.
It is volume-dependent — a handful of thinking paragraphs passes, a few dozen does not.
Expected behavior
Compaction succeeds. serializeConversation omits thinking blocks entirely, or replaces them with a content-free marker.
Omitting them unconditionally would also address #9602's option 1 and shrink every summarization request, so one change closes both issues.
Version
0.85.1
Source: earendil-works/pi