Skip to content

[Pi] Approved plan switches model, but execution continues on planning model until next turn #674

@snowmead

Description

@snowmead

Bug

When using Plannotator’s Pi phase config to switch models between planning and execution, approving a plan updates the session model but the current in-flight agent loop continues using the planning model.

Example setup:

  • Planning model: openai-codex/gpt-5.5
  • Executing model: fireworks/accounts/fireworks/models/deepseek-v4-pro

~/.pi/agent/plannotator.json:

{
  "phases": {
    "executing": {
      "model": {
        "provider": "fireworks",
        "id": "accounts/fireworks/models/deepseek-v4-pro"
      }
    }
  }
}

After approving the plan, Pi records the model switch:

model_change openai-codex gpt-5.5
model_change fireworks accounts/fireworks/models/deepseek-v4-pro
custom plannotator-execute ...
custom plannotator { phase: "executing", ... }

But subsequent assistant messages in that same run still come from the planning model:

assistant openai-codex gpt-5.5 toolUse
assistant openai-codex gpt-5.5 toolUse
...

This means execution is still bounded by the planning model’s context window until a fresh user turn starts. In my case, execution eventually hit a Codex/GPT context-window error even though the visible/session model was DeepSeek V4 Pro.

Expected

After plan approval applies the executing phase config, implementation should run on the executing model.

If Pi snapshots the model at the start of an agent loop, then plan approval probably needs to become a turn boundary: approve the plan, stop the current run, then start execution in a fresh turn so Pi captures the executing model.

Workaround

After approving the plan, manually abort the current turn and send a fresh message like:

Continue executing the approved Plannotator plan.

That fresh turn correctly uses the configured executing model.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions