Repository navigation
Highlights
- Fix: thinking-mode requests with tools to Zen's DeepSeek models were rejected because assistant messages without reasoning were sent without
reasoning_content. Models whose models.dev record declaresinterleaved.field = "reasoning_content"now set pi-ai'srequiresReasoningContentOnAssistantMessagesflag (29 of 46 derived free models at release time, includingdeepseek-v4.1-flash-free). thinkingFormatis unchanged, so no extrathinkingorreasoning_effortparameters are sent.
Contributors
Thanks to Evgeny Khudoba (@xilec) for diagnosing the missing reasoning_content passback and contributing the fix and its tests in #39.
Compatibility and limitations
Supports DeepSeek Harness 0.2.1-rc.2 (exact). Node.js ^22.19.0 or >=24.0.0.
- A live compat run covered only
deepseek-v4.1-flash-free. The other models Zen serves were not re-run for this release. - For non-DeepSeek models that receive the flag, the extra empty
reasoning_contentfield on assistant messages is unverified on their backends.
Validation
pnpm run checkon macOS: typecheck, docs links, 305/305 tests, pack.pnpm compat --dsh 0.2.1-rc.2 --tools --model deepseek-v4.1-flash-free: ok (L0 probe, L2 read and bash).- GitHub CI passed for the release commit (
pnpm run checkandpnpm pack --dry-run). - Request bodies captured against a local mock server: flagged models send
reasoning_content: "", unflagged models do not.
Install
dsh plugin --profile web add dsh-opencode-free@0.3.7