Skip to content

Updating some model profiles#103

Closed
ktneely wants to merge 2 commits intoSteffen025:mainfrom
ktneely:main
Closed

Updating some model profiles#103
ktneely wants to merge 2 commits intoSteffen025:mainfrom
ktneely:main

Conversation

@ktneely
Copy link
Copy Markdown

@ktneely ktneely commented Apr 2, 2026

  • OpenCode has deprecated a number of models and added others. (e.g. minimax-2.1 is no longer available)
  • Opencode free has swapped out nearly everything but Big Pickle
  • There are more capable Qwen models at same or lower VRAM usage with the new 3.5 versions.

Summary by CodeRabbit

  • Chores

    • Updated default models and tier mappings across local, free (ZEN), and paid profiles so agents use newer model variants for improved baseline and tiered behavior.
    • Updated plugin reference to a newer build/version.
  • Documentation

    • Revised the listed available free models and recommended alternatives shown to users.

…els and added others. There are more capable Qwen models at same or lower VRAM usage.
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 2, 2026

📝 Walkthrough

Walkthrough

Updated three Ollama deployment profiles and related metadata: local profile migrated agents from qwen2.5-coder to qwen3.5 (Writer moved to mistral-small3.2), zen-paid bumped glm/minimax versions, zen free profile swapped defaults and tier mappings to newer model families; package metadata and a plugin comment block were also updated.

Changes

Cohort / File(s) Summary
Local Profile
.opencode/profiles/local.yaml
Switched default and per-agent models from ollama/qwen2.5-coder variants to ollama/qwen3.5 variants; updated tier mappings accordingly; Writer moved to ollama/mistral-small3.2:24b.
Zen-Paid Profile
.opencode/profiles/zen-paid.yaml
Replaced opencode/glm-4.7opencode/glm-5 and opencode/minimax-m2.1opencode/minimax-m2.5 across affected agents and tiers; comment list updated.
Zen (free) Profile
.opencode/profiles/zen.yaml
Changed default_model to opencode/qwen3.6-plus-free and replaced many agent models/tiers with nemotron-3-super-free, qwen3.6-plus-free, mimo-v2-pro-free, minimax-m2.5-free, big-pickle, etc.
Package metadata
.opencode/package.json
Bumped @opencode-ai/plugin dependency from 1.1.391.2.15-feature/model-tiers-07c681eab; removed trailing newline.
Plugin comment list
.opencode/plugins/lib/model-config.ts
Updated documentation/commented list of available ZEN free models (removed some entries, added nemotron-3-super-free, qwen3.6-plus-free, mimo-v2-pro-free, mimo-v2-omni-free); no runtime code changes.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 I hopped through YAML, swift and spry,

Swapped models, tiers, a bright new sky.
Qwen, Mistral, Nemotron in tune,
Agents ready — code hums like a loon! ✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'Updating some model profiles' is overly vague and generic. While it relates to the changeset, it lacks specificity about which profiles or what kind of updates were made. Use a more specific title that indicates the scope of changes, such as 'Update model configurations across local, zen, and zen-paid profiles' or similar.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.opencode/profiles/local.yaml:
- Line 30: Remove the trailing spaces after model names in
.opencode/profiles/local.yaml (e.g., fix entries like "ollama/qwen3.5:27b " to
"ollama/qwen3.5:27b") for all affected lines (30, 36, 42, 48, 68, 74, 80, 86,
92, 100, 106, 112); edit each model value string to trim trailing whitespace so
the raw model identifiers are exact and run a quick YAML/linter check to ensure
no other values contain trailing spaces.

In @.opencode/profiles/zen.yaml:
- Around line 10-96: Update the outdated comment block in
.opencode/plugins/lib/model-config.ts (the comment at the top that enumerates
ZEN free models "as of Jan 2026") so it matches the current
.opencode/profiles/zen.yaml or explicitly states that zen.yaml is the source of
truth used for programmatic fallback; specifically replace the stale model list
(opencode/big-pickle, opencode/grok-code, opencode/glm-4.7-free,
opencode/minimax-m2-1-free, opencode/gpt-5-nano) with the current models seen in
zen.yaml (opencode/qwen3.6-plus-free, opencode/nemotron-3-super-free,
opencode/mimo-v2-pro-free, opencode/minimax-m2.5-free) or add a one-line
clarification referencing zen.yaml as authoritative so readers and maintainers
(and any mention of ZEN free models in the model-config.ts comment) are not
misled.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: cb6182a6-1e50-4a0a-8b50-f91d3e3d1c15

📥 Commits

Reviewing files that changed from the base of the PR and between 372a751 and 0d1bdae.

📒 Files selected for processing (3)
  • .opencode/profiles/local.yaml
  • .opencode/profiles/zen-paid.yaml
  • .opencode/profiles/zen.yaml

Comment thread .opencode/profiles/local.yaml Outdated
Comment thread .opencode/profiles/zen.yaml
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
.opencode/package.json (1)

17-17: Missing trailing newline at end of file.

POSIX convention recommends files end with a newline character. This is a minor formatting nit with no functional impact.

✨ Suggested fix

Ensure the file ends with a newline after the closing brace:

   }
-}
+}
+
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.opencode/package.json at line 17, The package.json file ends with a closing
brace '}' but lacks the POSIX-required trailing newline; open the
.opencode/package.json (look for the final closing brace character '}' at EOF)
and add a single newline character after that brace so the file ends with a
newline.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.opencode/package.json:
- Line 7: The dependency version for `@opencode-ai/plugin` in package.json is
invalid; update the entry "@opencode-ai/plugin" to the correct published semver
(e.g., "1.2.15" if that is intended) and ensure it matches the version
referenced in bun.lock (which currently contains `@opencode-ai/plugin`@1.1.39);
after changing package.json run bun install to regenerate bun.lock and commit
the updated bun.lock alongside the package.json change so versions are
consistent.

---

Nitpick comments:
In @.opencode/package.json:
- Line 17: The package.json file ends with a closing brace '}' but lacks the
POSIX-required trailing newline; open the .opencode/package.json (look for the
final closing brace character '}' at EOF) and add a single newline character
after that brace so the file ends with a newline.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 6d4b2cc7-f387-47ff-a67e-5e47fae1347d

📥 Commits

Reviewing files that changed from the base of the PR and between 0d1bdae and eea9b2f.

📒 Files selected for processing (3)
  • .opencode/package.json
  • .opencode/plugins/lib/model-config.ts
  • .opencode/profiles/local.yaml
✅ Files skipped from review due to trivial changes (1)
  • .opencode/plugins/lib/model-config.ts
🚧 Files skipped from review as they are similar to previous changes (1)
  • .opencode/profiles/local.yaml

Comment thread .opencode/package.json
"dependencies": {
"@google/genai": "^1.38.0",
"@opencode-ai/plugin": "1.1.39",
"@opencode-ai/plugin": "1.2.15-feature/model-tiers-07c681eab",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Check if the specified version exists in the npm registry

echo "Checking if `@opencode-ai/plugin`@1.2.15-feature/model-tiers-07c681eab exists in npm registry..."
npm view `@opencode-ai/plugin`@1.2.15-feature/model-tiers-07c681eab version 2>&1

echo ""
echo "Listing available versions matching 1.2.x pattern:"
npm view `@opencode-ai/plugin` versions --json 2>&1 | grep -E '"1\.2\.' | head -20

Repository: Steffen025/pai-opencode

Length of output: 1044


🏁 Script executed:

# Check the actual version in package.json and look for the plugin reference in bun.lock
head -20 .opencode/package.json
echo "---"
grep -i "@opencode-ai/plugin" .opencode/bun.lock | head -5

Repository: Steffen025/pai-opencode

Length of output: 717


Invalid version specification; bun install will fail.

The version 1.2.15-feature/model-tiers-07c681eab specified in package.json (line 7) does not exist in the npm registry. Additionally, bun.lock (line 1) still references @opencode-ai/[email protected], creating a mismatch. Running bun install will fail because the specified version cannot be resolved.

Verify the intended version is 1.2.15 (which exists in the registry) or correct to the appropriate version. Then regenerate the lock file by running bun install and commit the updated bun.lock.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.opencode/package.json at line 7, The dependency version for
`@opencode-ai/plugin` in package.json is invalid; update the entry
"@opencode-ai/plugin" to the correct published semver (e.g., "1.2.15" if that is
intended) and ensure it matches the version referenced in bun.lock (which
currently contains `@opencode-ai/plugin`@1.1.39); after changing package.json run
bun install to regenerate bun.lock and commit the updated bun.lock alongside the
package.json change so versions are consistent.

Steffen025 added a commit that referenced this pull request Apr 11, 2026
…dit @ktneely)

This commit addresses CodeRabbit's second review pass on PR #107 AND
integrates the valuable model-roster corrections from @ktneely's PR #103
(#103). Kevin identified
that several of the OpenCode Zen models we referenced no longer exist,
and proposed replacements. We re-verified his roster against the
current (April 2026) OpenCode Zen pricing page and applied the updates.

### CodeRabbit round 2 (4 findings)

- PAI-Install/cli/quick-install.ts (line ~348) and install-wizard.ts
  (line ~541): remove the 3rd 'false' argument from stepApplyUpdate()
  calls — previous commit simplified the signature to
  (state, onProgress) but missed these two call sites
- .opencode/tools/switch-provider.ts: after writing the profile's
  agents into agentBlock, iterate existingAgentBlock and copy any
  user-defined agents that are NOT in the profile — previously a user
  who added a custom agent would lose it every time they ran
  switch-provider. Also extracted the legacy-model_tiers stripping into
  a stripLegacy() helper shared by both passes.
- PAI-Install/engine/steps-update.ts: remove the unused binaryUpdated
  boolean parameter from UPDATE_UI_TEXT.complete.message. Grep confirmed
  zero external callers. Signature simplified to (version: string).
- PAI-Install/engine/update.ts: add updatesAttempted flag to the
  version-advancement gate in updateV3. updateSkills() and
  updateCoreFiles() are placeholder functions that always return false
  (pre-existing tech debt, unrelated to the v3.0 vanilla migration),
  and updateBinaryIfNeeded() also returns false now that the vanilla
  installer owns the binary. Without this flag, the version marker
  would NEVER advance when a user runs 'pai update', which CodeRabbit
  correctly flagged. The new gate:
    skillsUpdated || coreUpdated || binaryUpdated || updatesAttempted
  where updatesAttempted = changes.length > 0 from detectChanges().
  When the placeholder functions are replaced with real impls later,
  their return values still drive the decision — this is a superset.

### Integrated from PR #103 (@ktneely) — OpenCode Zen model updates

Kevin's PR was opened in January 2026 and identified that several of
the model IDs we were recommending had been retired from OpenCode Zen.
We re-verified Kevin's roster against the April 2026 Zen pricing page
(https://opencode.ai/docs/zen/) and found a few more refinements.

- .opencode/profiles/zen.yaml (FREE tier):
  REMOVED (no longer free on Zen): opencode/kimi-k2.5-free,
  opencode/glm-4.7-free, opencode/minimax-m2.1-free
  ADDED (current Apr 2026 free tier): opencode/qwen3.6-plus-free,
  opencode/nemotron-3-super-free, opencode/minimax-m2.5-free.
  Retained: opencode/big-pickle, opencode/gpt-5-nano (still free).
  Default model switched from kimi-k2.5-free → qwen3.6-plus-free.

- .opencode/profiles/zen-paid.yaml (PAID tier):
  REMOVED: opencode/glm-4.7 (superseded), opencode/minimax-m2.1
  (superseded), opencode/gemini-3-pro (replaced by gemini-3.1-pro).
  ADDED: opencode/glm-5, opencode/glm-5.1, opencode/minimax-m2.5,
  opencode/qwen3-coder-480b (new code-specialist), opencode/gemini-3.1-pro.
  CodexResearcher now uses opencode/qwen3-coder-480b (code-focused).

- .opencode/profiles/local.yaml (Ollama):
  Applied Kevin's Ollama model updates wholesale:
  qwen2.5-coder:{1.5b,7b,32b} → qwen3.5:{2b,9b,27b}, and Writer agent
  now uses mistral-small3.2:24b (writing-focused). Kevin identified
  that qwen2.5-coder has been retired from Ollama's library.

- .opencode/plugins/lib/model-config.ts:
  Updated the ZEN free-models comment block (was 'as of Jan 2026',
  listed models that are no longer free). Updated zen preset's default
  and agent mappings: grok-code → qwen3.6-plus-free / gpt-5-nano /
  big-pickle. Updated openai preset from gpt-4o (retired) to gpt-5.1
  family (gpt-5.1, gpt-5.1-codex, gpt-5.1-codex-mini). Updated
  anthropic reviewer preset from opus-4-5 → opus-4-6.

Verification:
- All 6 edited TypeScript files bundle cleanly via bun build --target=bun
- All 3 edited YAML profiles have zero 'tiers:' sub-keys
- No stale model references remain in profile YAML agent assignments
  (only in historical-note comments explaining the upgrade path)

Credit:
Big thanks to @ktneely (Kevin) for opening PR #103 and identifying
the stale model roster. Kevin's PR is being closed as superseded by
this commit, which integrates his changes plus the additional current
models from the Apr 2026 pricing page.

Refs: PR #107, PR #103 (superseded), CodeRabbit review round 2
@Steffen025
Copy link
Copy Markdown
Owner

Hey @ktneely — thank you so much for this contribution! 🙏

Your review of the OpenCode Zen model roster was genuinely valuable. You correctly identified that several of the free-tier models we were recommending (kimi-k2.5-free, glm-4.7-free, minimax-m2.1-free) had been retired, and the same story for glm-4.7 / minimax-m2.1 on the paid tier and qwen2.5-coder for Ollama.

Where this is going

I've integrated your model corrections into PR #107 (the larger "Vanilla OpenCode Migration" work), where they sit alongside a broader change: PAI-OpenCode is dropping the custom Steffen025/opencode fork entirely and moving to vanilla OpenCode from opencode.ai. The fork had drifted 980 commits behind upstream and its sole purpose (model_tiers) turned out to be an orphaned upstream PR that was never merged — details in the new ADR-019.

Because PR #107 strips the tiers: sub-blocks from every profile YAML (the structure you updated), your PR and mine touch the same files in incompatible ways. Rather than ask you to rebase against a moving target, I re-verified your model roster against the current April 2026 OpenCode Zen pricing page and applied your corrections as part of PR #107. Commit: 55adca0.

What I kept from your PR

  • zen-paid.yaml: glm-4.7glm-5, minimax-m2.1minimax-m2.5, gemini-3-progemini-3.1-pro
  • zen.yaml (free): removed kimi-k2.5-free, glm-4.7-free, minimax-m2.1-free
  • local.yaml: qwen2.5-coder:{1.5b,7b,32b}qwen3.5:{2b,9b,27b}, Writer agent now uses mistral-small3.2:24b
  • model-config.ts: dropped the now-stale grok-code default ✅

What I adjusted

The pricing page I cross-checked against (April 2026) no longer lists some of the free models your PR introduced (mimo-v2-pro-free, mimo-v2-omni-free) — looks like OpenCode rotated the free tier again between Jan and April 2026. I went with the current April 2026 free set instead: qwen3.6-plus-free, nemotron-3-super-free, minimax-m2.5-free, big-pickle, gpt-5-nano. Same spirit as your PR — just aligned to today's menu.

I also added the opencode/qwen3-coder-480b model to the paid tier for CodexResearcher (it was added to Zen after your PR was opened and is a nice fit for a code-specialist researcher).

Credit

You're credited in-line in every file you touched (zen.yaml, zen-paid.yaml, local.yaml) and in the commit message for #107. When #107 merges, PR #103 will be closed as "superseded by #107".

Summary: this PR (#103) becomes obsolete once PR #107 merges — all of your improvements are in #107.

Thanks again — community contributions like yours are exactly what we need. If you have a GitHub handle you'd like linked in the CHANGELOG release notes for v3.0, let me know and I'll add it there too. 🚀

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.

2 participants