Repository navigation
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What and why
DeepSeek automatic compaction can succeed, but the immediate continuation may fail with:
The reasoning_text in the thinking mode must be passed back to the API.The issue occurs because DSCodex restores its synthetic DeepSeek compaction summary as an
assistantmessage.Automatic compaction resumes the same Codex turn without inserting another user message. If the restored compact summary is therefore the final
assistantitem while tools are enabled, DeepSeek interprets it as its own previous thinking turn and expects the correspondingreasoning_text.A minimal live A/B reproduction confirmed the behavior:
assistant+ tools + no following user message → HTTP 400user→ HTTP 200This change restores DSCodex-generated DeepSeek compaction summaries as
userhandoff context instead.The GPT compaction replay path is unchanged.
The existing compaction regression test was also changed to match the real automatic-compaction flow: tools remain enabled and there is no artificial
Continueuser message after the compaction item.After the patch, a real DSCodex synthetic compaction followed immediately by a tool-enabled DeepSeek continuation returned HTTP 200.
Checks
npm testpasses locallygit diff --checkis cleanAGENTS.md,README.md,README.en.md,llms.txtandllms-full.txtupdated to match