Files
OmniRoute/tests/unit
Diego Rodrigues de Sa e Souza 57e436b1fa fix(opencode): preserve DeepSeek reasoning content in streamed responses
Thinking-mode upstreams routed through OpenCode (DeepSeek V4 Flash, Kimi,
MiniMax, ...) require `reasoning_content` echoed back on every prior
assistant message. Standard OpenAI clients drop that field across turns,
so multi-turn `oc/deepseek-v4-flash-free` requests failed with
`400 reasoning_content must be passed back`.

OpencodeExecutor.transformRequest now invokes a small, pure helper
(`open-sse/utils/reasoningContentInjector.ts`) that injects a non-empty
placeholder on assistant messages lacking one. Scope is gated by a model
id regex (`deepseek`/`kimi`/`k2`/`minimax`), so non-thinking opencode
models are untouched and an existing non-empty `reasoning_content` is
preserved verbatim.

TDD: tests/unit/opencode-deepseek-reasoning-injected.test.ts (4 cases —
deepseek inject, preserve existing, kimi inject, negative for gpt-5).

Co-authored-by: Neonity2020 <Neonity2020@users.noreply.github.com>
Inspired-by: https://github.com/decolua/9router/pull/1099
2026-06-23 22:00:24 -03:00
..
2026-05-23 01:46:59 -03:00
2026-06-23 03:08:29 -03:00
2026-06-17 19:26:32 -03:00
2026-06-20 14:55:24 -03:00
2026-06-23 17:06:18 -03:00
2026-06-20 07:09:43 -03:00
2026-06-11 18:52:29 -03:00
2026-06-23 03:08:29 -03:00
2026-06-23 17:06:18 -03:00
2026-06-20 07:09:43 -03:00
2026-06-23 17:06:18 -03:00
2026-05-21 01:29:12 -03:00
2026-06-09 22:57:12 -03:00
2026-06-11 04:01:24 -03:00
2026-06-17 02:43:21 -03:00
2026-06-17 19:26:32 -03:00
2026-06-15 03:32:11 -03:00
2026-06-20 14:55:24 -03:00
2026-06-23 03:08:29 -03:00
2026-05-23 01:46:59 -03:00
2026-06-21 08:56:51 -03:00
2026-06-23 17:06:18 -03:00
2026-04-19 19:50:30 -03:00
2026-05-29 12:44:29 -03:00
2026-06-12 23:49:22 -03:00
2026-06-11 04:01:24 -03:00
2026-06-06 19:13:11 -03:00
2026-06-23 17:06:18 -03:00
2026-06-13 17:27:40 -03:00
2026-06-19 06:49:01 -03:00
2026-05-26 23:51:47 -03:00
2026-05-29 12:44:29 -03:00
2026-05-26 23:51:47 -03:00
2026-05-26 23:51:47 -03:00
2026-05-29 12:44:29 -03:00
2026-05-21 01:29:12 -03:00
2026-05-24 18:05:58 -03:00
2026-06-17 19:26:32 -03:00
2026-05-26 23:51:47 -03:00
2026-06-12 23:49:22 -03:00
2026-06-22 03:17:02 -03:00
2026-06-17 19:26:32 -03:00
2026-06-13 17:27:40 -03:00
2026-06-16 01:00:40 -03:00
2026-06-21 08:56:51 -03:00
2026-05-26 23:51:47 -03:00
2026-06-21 08:56:51 -03:00
2026-06-23 03:08:29 -03:00
2026-05-29 12:44:29 -03:00
2026-06-12 23:49:22 -03:00
2026-05-26 23:51:47 -03:00
2026-05-24 18:05:58 -03:00
2026-05-26 23:51:47 -03:00
2026-05-29 12:44:29 -03:00
2026-05-26 23:51:47 -03:00
2026-05-10 00:55:06 -03:00
2026-06-23 17:06:18 -03:00
2026-05-26 23:51:47 -03:00
2026-06-13 17:27:40 -03:00
2026-05-29 12:44:29 -03:00
2026-06-12 23:49:22 -03:00
2026-06-22 03:17:02 -03:00
2026-05-21 01:29:12 -03:00
2026-04-30 01:27:03 -03:00
2026-04-30 01:27:03 -03:00
2026-05-26 23:51:47 -03:00
2026-06-23 17:06:18 -03:00
2026-05-10 00:55:06 -03:00
2026-05-26 23:51:47 -03:00
2026-04-30 14:08:50 -03:00
2026-06-11 04:01:24 -03:00
2026-06-20 14:55:24 -03:00
2026-06-20 07:09:43 -03:00
2026-06-17 02:43:21 -03:00
2026-06-12 23:49:22 -03:00
2026-05-26 23:51:47 -03:00
2026-06-15 03:32:11 -03:00
2026-06-19 06:49:01 -03:00
2026-05-26 23:51:47 -03:00
2026-05-26 23:51:47 -03:00
2026-06-10 13:49:08 -03:00
2026-06-19 06:49:01 -03:00
2026-06-20 14:55:24 -03:00
2026-06-22 03:17:02 -03:00
2026-05-23 01:46:59 -03:00
2026-06-19 06:49:01 -03:00
2026-06-20 07:09:43 -03:00
2026-04-30 01:27:03 -03:00
2026-06-22 03:17:02 -03:00
2026-06-19 06:49:01 -03:00
2026-06-12 23:49:22 -03:00
2026-06-12 23:49:22 -03:00
2026-06-11 18:52:29 -03:00
2026-04-30 01:27:03 -03:00
2026-05-26 23:51:47 -03:00
2026-06-17 02:43:21 -03:00
2026-05-23 01:46:59 -03:00
2026-05-23 01:46:59 -03:00
2026-06-09 15:56:24 -03:00
2026-06-10 13:49:08 -03:00
2026-05-29 19:54:00 -03:00
2026-06-19 06:49:01 -03:00
2026-06-17 19:26:32 -03:00
2026-06-13 17:27:40 -03:00
2026-06-17 02:43:21 -03:00
2026-05-24 18:05:58 -03:00
2026-05-24 18:05:58 -03:00
2026-06-07 07:20:02 -03:00
2026-04-28 20:46:25 -03:00
2026-05-29 12:44:29 -03:00
2026-05-29 12:44:29 -03:00
2026-06-19 06:49:01 -03:00
2026-06-12 23:49:22 -03:00
2026-06-23 03:08:29 -03:00
2026-05-26 23:51:47 -03:00
2026-06-12 23:49:22 -03:00
2026-06-20 07:09:43 -03:00
2026-06-13 17:27:40 -03:00
2026-06-21 08:56:51 -03:00
2026-06-16 01:00:40 -03:00
2026-05-26 23:51:47 -03:00
2026-06-16 01:00:40 -03:00
2026-05-26 23:51:47 -03:00
2026-06-04 20:05:38 -03:00
2026-06-12 23:49:22 -03:00
2026-05-29 12:44:29 -03:00
2026-06-20 07:09:43 -03:00
2026-06-19 06:49:01 -03:00
2026-06-07 07:20:02 -03:00
2026-06-11 04:01:24 -03:00
2026-06-22 03:17:02 -03:00
2026-05-24 18:05:58 -03:00
2026-05-26 23:51:47 -03:00
2026-06-12 23:49:22 -03:00
2026-06-16 01:00:40 -03:00
2026-06-12 23:49:22 -03:00
2026-06-12 23:49:22 -03:00
2026-06-16 01:00:40 -03:00