Skip to content

Model selection is global, not per-session — causes confusing cross-session model changes #1531

@shaggiizzle

Description

@shaggiizzle

Describe the bug

When using /model to change the model in one session, it updates the global ~/.copilot/config.json, which causes
all other active sessions to silently switch models. This is unexpected and confusing.

Affected version

Version 0.0.411

Steps to reproduce the behavior

  1. Open Session A (e.g., ee685757...) — model shows claude-sonnet-4.5
  2. Open Session B (e.g., 738952fd...) — run /model and select gpt-5-mini
  3. Return to Session A — UI now shows gpt-5-mini (high) even though no model change was made in that session
  4. No session.model_change event is logged in Session A's events.jsonl, confirming the change originated
    externally

Evidence from session logs:

  • Session B (738952fd) has a session.model_change event for gpt-5-mini at 2026-02-18T18:10:20Z
  • Session A (ee685757) has no such event — the model changed in the UI without any user action in that session

Expected behavior

Model selection should be per-session. Changing the model in one session should not affect
other active sessions. A global default is fine for new sessions, but running sessions should maintain their own
model selection.

  • Store model selection per-session (e.g., in workspace.yaml) and fall back to config.json only when no
    session-level override exists
  • Alternatively, at minimum, log a session.model_change event and display a notification when the model changes
    due to an external config update, so the user understands what happened

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions