Skip to content

fix: preserve mode-specific model selections across mode switches#225

Merged
sudo-tee merged 2 commits intomainfrom
fix/mode-model-switching
Feb 2, 2026
Merged

fix: preserve mode-specific model selections across mode switches#225
sudo-tee merged 2 commits intomainfrom
fix/mode-model-switching

Conversation

@sudo-tee
Copy link
Owner

@sudo-tee sudo-tee commented Feb 2, 2026

This should fix #112

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR fixes issue #112 where mode switching via Alt+M does not respect model configuration from opencode.json. The fix introduces a user preference tracking system and improves the model selection priority logic.

Changes:

  • Added user_mode_model_map state field to track user's model selections per mode
  • Modified switch_to_mode to use a priority system: user selection > mode config > global config
  • Removed state resets in M.open to preserve mode/model selections across new sessions
  • Updated and added tests to validate the new priority-based model selection behavior

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
lua/opencode/state.lua Adds user_mode_model_map field to track user's per-mode model selections
lua/opencode/core.lua Updates model selection logic in switch_to_mode with priority system, stores user selections in configure_provider, removes state resets in M.open
tests/unit/core_spec.lua Updates tests to initialize new state field, replaces old test with new tests validating priority-based model selection

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@sudo-tee sudo-tee merged commit 4b950e0 into main Feb 2, 2026
10 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.

Mode switching with Alt+M does not respect model configuration in opencode.json

2 participants