Add deepseek-reasoning-fixer plugin - #90
Open
ahoo wants to merge 2 commits into
Open
Conversation
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Contributor
Author
|
Updated to v0.1.1: the normalizer now also handles DeepSeek requests arriving without |
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.
Plugin
deepseek-reasoning-fixerrequest_normalizerWhat it does
DeepSeek's Console upstream enforces thinking mode strictly: when
reasoning_effortis set (notnone), every assistant message must carry a non-emptyreasoning_contentback to the API. Codex CLI and other agentic clients sometimes drop the field on individual assistant messages (missing key, JSONnull, empty string, or empty array), which makes the upstream reject the whole request with:The plugin fills missing/empty
reasoning_contenton assistant messages for DeepSeek models in thinking mode, so long agentic sessions survive. Non-empty reasoning values and unknown shapes (objects/numbers) are passed through verbatim; non-DeepSeek models are untouched.Release evidence
Latest release
v0.1.0on the plugin repository contains both required assets:deepseek-reasoning-fixer_0.1.0_linux_amd64.zip— zip root containsdeepseek-reasoning-fixer.so(verified:unzip -lshows single entry at root)checksums.txt— sha256 of the zipTesting
go vet . && go test ./...— 12 test cases pass (missing/null/empty-string/empty-array variants, existing-value kept, unknown-shape kept, non-DeepSeek untouched)