Updating some model profiles#103
Conversation
…els and added others. There are more capable Qwen models at same or lower VRAM usage.
📝 WalkthroughWalkthroughUpdated 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
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
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
📒 Files selected for processing (3)
.opencode/profiles/local.yaml.opencode/profiles/zen-paid.yaml.opencode/profiles/zen.yaml
There was a problem hiding this comment.
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
📒 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
| "dependencies": { | ||
| "@google/genai": "^1.38.0", | ||
| "@opencode-ai/plugin": "1.1.39", | ||
| "@opencode-ai/plugin": "1.2.15-feature/model-tiers-07c681eab", |
There was a problem hiding this comment.
🧩 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 -20Repository: 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 -5Repository: 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.
…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
|
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 ( Where this is goingI'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 Because PR #107 strips the What I kept from your PR
What I adjustedThe pricing page I cross-checked against (April 2026) no longer lists some of the free models your PR introduced ( I also added the CreditYou're credited in-line in every file you touched ( 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. 🚀 |
Summary by CodeRabbit
Chores
Documentation