opencode-thinking-fix 3.3.0 → 3.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +9 -5
  2. package/package.json +3 -2
package/README.md CHANGED
@@ -113,9 +113,7 @@ causing cross-provider poisoning. v3.1 fixes that:
113
113
  (MiniMax split mode), `reasoning` (OpenCode Go / fixed-upstream). Previously the proxy
114
114
  filled all three fields, so a GLM turn stored under `reasoning` could poison a later
115
115
  DeepSeek replay that expects `reasoning_content`.
116
- - **R1 vs V4 split.** `deepseek-reasoner` (R1) must **not** receive reasoning echoed back
117
- (400 if you do) while V4 must. R1 uses the v3.2 `reasoningKey: 'strip'` sentinel,
118
- which actively removes reasoning fields before forwarding.
116
+ - **Legacy DeepSeek aliases vs V4.** DeepSeek retired the `deepseek-chat` / `deepseek-reasoner` aliases on 2026-07-24; the current catalog is `deepseek-v4-flash`, `deepseek-v4-pro`, and the experimental `deepseek-v4-flash-vision-exp`. While the R1 alias was live it had the inverted contract (echoed reasoning → 400), which is why the proxy carries a `strip` route: it actively removes reasoning fields before forwarding, kept today only as a compatibility guard for clients that still send the old name. V4 thinking mode uses the normal passback contract instead.
119
117
  - **Never fabricate reasoning.** Unknown models and providers that reject echo
120
118
  (Qwen, GPT, Claude, Gemini, Llama, Mistral, Cerebras-hosted GLM) default to
121
119
  `reasoningKey: null` — the body is forwarded untouched.
@@ -148,6 +146,10 @@ As of 3.2.0, the plugin is optional. The shipped npm plugin still contains the t
148
146
  | **CLI** | `opencode plugin opencode-thinking-fix` | Scripting |
149
147
  | **Manual** | Add `"plugin": ["opencode-thinking-fix"]` to `opencode.json` | Version pinning |
150
148
 
149
+ ### Already installed? Update
150
+
151
+ Versions before 3.3 do not cover OpenRouter or the OpenCode Zen free-tier lane. Update inside OpenCode (`Ctrl+P` → install plugin → `opencode-thinking-fix`) or with `opencode plugin opencode-thinking-fix`, then restart. The plugin self-detects reasoning models, so updating is safe on non-reasoning setups too.
152
+
151
153
  ### Method 1: TUI (press `Ctrl+P` while OpenCode is running)
152
154
 
153
155
  1. Press `Ctrl+P` to open the command palette.
@@ -389,6 +391,7 @@ The plugin is the safety net. If the proxy goes down, the plugin still injects e
389
391
  | Model | Plugin helps | Proxy helps | What it needs |
390
392
  |---|---|---|---|
391
393
  | DeepSeek V4 Pro / Flash | Yes | Nice to have | Accepts `""` (tool-call turns need real text) |
394
+ | DeepSeek V4 Flash Vision (exp) | Yes | Nice to have | Text + image input on a separate model id; same passback contract |
392
395
  | Kimi K2.5 / K2.6 | Yes | Nice to have | Accepts `""` |
393
396
  | **Kimi K2.7 Code** | **Not enough alone** | **Required** | Field must be *present*; real text keeps it coherent |
394
397
  | GLM-5.x / Zhipu | Yes | Nice to have | Accepts `""` |
@@ -406,8 +409,9 @@ The proxy auto-routes by model name prefix. All routes:
406
409
 
407
410
  | Prefix | Upstream | Reasoning |
408
411
  |---|---|---|
409
- | `deepseek-v4-pro`, `deepseek-v4-flash`, `deepseek-chat` | `https://api.deepseek.com` | Yes (`reasoning_content`) |
410
- | `deepseek-reasoner` | `https://api.deepseek.com` | **No — actively stripped** (R1 contract: reasoning must NOT be echoed) |
412
+ | `deepseek-v4-flash`, `deepseek-v4-pro`, `deepseek-v4-flash-vision-exp` | `https://api.deepseek.com` | Yes (`reasoning_content`) |
413
+ | `deepseek-chat` | `https://api.deepseek.com` | Non-thinking alias (no reasoning emitted; passback is a harmless no-op) |
414
+ | `deepseek-r1`, `deepseek-reasoner` | `https://api.deepseek.com` | Legacy — retired by DeepSeek 2026-07-24; kept as a compatibility guard with active stripping |
411
415
  | `kimi`, `moonshot` | `https://api.moonshot.ai/v1` | Yes (`reasoning_content`) |
412
416
  | `glm`, `zhipu` | `https://open.bigmodel.cn/api/paas/v4` | Yes (`reasoning_content`) |
413
417
  | `minimax` | `https://api.minimax.io/v1` | Yes (`reasoning_details`, `reasoning_split:true`) |
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "opencode-thinking-fix",
3
- "version": "3.3.0",
4
- "description": "Restores reasoning content dropped from multi-turn OpenCode conversations (DeepSeek, Kimi, GLM, MiMo, MiniMax, OpenCode Go). Plugin + proxy + watchdog.",
3
+ "version": "3.3.2",
4
+ "description": "Restores reasoning content dropped from multi-turn OpenCode conversations (DeepSeek, Kimi, GLM, MiMo, MiniMax, OpenCode Go, OpenRouter). Plugin + proxy + watchdog.",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "oc-plugin": [
@@ -20,6 +20,7 @@
20
20
  "zhipu",
21
21
  "mimo",
22
22
  "minimax",
23
+ "openrouter",
23
24
  "xiaomi-mimo",
24
25
  "reasoning-content",
25
26
  "reasoning_content",