Skip to content

fix(autocomplete): switch default FIM model to qwen3.6-plus (qwen3.5-plus removed from Go) — release 0.7.10 - #267

Merged
ltmoerdani merged 2 commits into
mainfrom
fix/fim-default-model-dead
Oct 20, 2026
Merged

ltmoerdani merged 2 commits into
mainfrom
fix/fim-default-model-dead

Conversation

@ltmoerdani

Copy link
Copy Markdown
Owner

Problem

Inline suggestions went completely silent — reported via LinkedIn by Yannick Huebner: "not working or suggesting anything" with opencodego.inlineSuggestions: true, even with a valid Go budget. First hypothesis (budget exhausted, no fallback path) was wrong.

Root cause

DEFAULT_INLINE_MODEL was qwen3.5-plus. OpenCode removed that model from the Go gateway, so every FIM request returned HTTP 400 Model is unavailable — which the completion engine logs to the OpenCode Completions output channel and renders as nothing. The registry's deprecation filter never applied here: FIM sends the raw setting value straight to /chat/completions, bypassing the picker. This was the landmine doc 100 flagged on 2026-09-08 ("flagged, unchanged") — upstream finally dropped the model.

Evidence (live, 2026-10-20)

Gateway validates in the order session → model → credential, so a dummy-key probe distinguishes the failure classes without a paid key:

Probe Result
GET zen/go/v1/models qwen3.5-plus absent (Qwen on Go: qwen3.6-plus, qwen3.7-plus, qwen3.7-max, qwen3.8-flash, qwen3.8-max)
GET zen/v1/models (Zen) qwen3.5-plus still listed — removal is Go-only (suggestions are Go-only too)
POST qwen3.5-plus, dummy key HTTP 400 Model is unavailable — before auth
POST qwen3.6-plus, dummy key HTTP 401 Invalid credential — passes model validation
POST qwen3.6-plus, real key HTTP 200, TTFB 1459ms, reasoningChars=0 — on par with the old default's 1518ms

Changes

  • src/config.ts: DEFAULT_INLINE_MODEL → qwen3.6-plus (+ comment naming why)
  • package.json: settings default/enum updated — also drops the equally-removed deepseek-v4-flash for deepseek-v4.1-flash
  • src/test/config.test.ts: default assertion updated
  • README.md: inline-suggestions section + manual-switch caveat
  • scripts/probe-completion-latency.ts: candidates refreshed + required x-opencode-session header
  • Docs: new docs/issues/113, feature doc 15 updated (old probe table kept as history), doc 100 caveat annotated resolved, devlog entry, CHANGELOG
  • Release: version → 0.7.10, [Unreleased] merged into the 0.7.10 changelog section

No settings auto-migration (same call as doc 112) — users on the old default switch manually once: "opencodego.inlineSuggestionsModel": "qwen3.6-plus".

Verification

  • npm run compile — pass; unit tests 0 fail
  • vsce package → 0.7.10 VSIX built and installed locally (ltmoerdani.opencode-copilot-chat@0.7.10)
  • Pre-commit staged-lint gate green (one MD024 duplicate-heading fixed, not bypassed)

…plus removed from Go)

The inline-suggestions default qwen3.5-plus was removed from the Go
gateway, so every FIM request returned HTTP 400 'Model is unavailable'
which the engine logs silently — ghost text never appeared and the
budget looked like the culprit.

Verified live (dummy-key probe, gateway validates session -> model ->
credential): qwen3.5-plus rejected before auth, qwen3.6-plus passes
model validation. Default + package.json enum + README updated; enum
also drops deepseek-v4-flash (removed too) for deepseek-v4.1-flash.
Probe script refreshed and now sends the required x-opencode-session.

Existing installs must switch manually once:
"opencodego.inlineSuggestionsModel": "qwen3.6-plus"
… synced

Real-key probe confirms qwen3.6-plus: HTTP 200, 1459ms TTFB,
reasoningChars=0 (on par with the removed default's 1518ms) and the
suffix field tolerated — measurements added to doc 15, doc 113,
devlog, and the CHANGELOG entry.

Doc sync per documentation protocol: feature doc 15 (canonical
inline-suggestions reference) updated to the new default with the old
probe table preserved as history; doc 100's open caveat annotated as
resolved; devlog session entry + refreshed header. Version bumped to
0.7.10 and [Unreleased] merged into the 0.7.10 changelog section.
@ltmoerdani
ltmoerdani merged commit 1bdda52 into main Oct 20, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant