Skip to content

[Bug]: Pi native chat model picker shows only the launch-default model in new chats #36835

Closed

Description

@eric-akkio

Operating system

macOS

Orca version

1.4.245

Details

Summary

Since updating to 1.4.245, a new (not-yet-started) Pi native chat lists only one model in its model picker: the saved launch default for Pi native chats (novita/moonshotai/kimi-k3.1-pro, a model from a custom provider in Pi's models.json). A new chat can't pick anything else. Existing, started Pi native chats show the full list. After choosing claude-bridge/claude-opus-5-5 in an existing chat — which updates the launch default — new chats list Opus 5.5 and the full catalog again.

What I observed

  • Pi model discovery is healthy. agentModelCatalog.discovery spans in logs/main.trace.ndjson report lister: probe with 107 models, all succeeding, including right after the bug reproduced.
  • In agent-model-catalog.json, the Pi entry's discovered.models (origin probe, 107 models) contains novita/moonshotai/kimi-k3.1-pro, but live.models (origin live-session) does not. claude-bridge/claude-opus-5-5 appears in both.
  • The affected new chats are drafts: their agent_session_records have an empty providerHandleChain and no turns, with options.model set to the kimi model. The older chats that work are live sessions with a jsonl-rpc provider handle.
  • The launch default is stored in profile state as nativeChatSessionOptions.pi.model.
  • Re-adding the kimi model to Pi's settings.json enabledModels (it had been removed a day earlier) changed nothing.

Likely trigger (not confirmed in source)

The draft picker seems to fall back to only the current/default model when that model is in the probe-discovered list but missing from the live-session list. Possibly related: the cached Claude catalog entry carries complete: true, while the Pi entry has no complete field.

Repro (as observed)

  1. Set a Pi native-chat launch default whose model is in Pi's discovered catalog but not in the live-session model listing (here, a custom-provider model).
  2. Open a new Pi native chat without sending a message.
  3. Open the model picker: only the default model is listed.
  4. In an existing started Pi chat, pick a model present in both lists (here, claude-bridge/claude-opus-5-5), then open a new chat: the full list is back.

Expected

A new Pi native chat lists the full discovered model catalog regardless of which model is the launch default.

Workaround

Pick a different model in an existing, started Pi native chat to change the launch default.

Activity

  1. nwparker commented on Nov 1, 2026

    @nwparker
    Contributor

    Thanks for the detailed trace. This is fixed on main by #36113 and #36194, which landed just after 1.4.245 was cut and ship in 1.4.246.

    A never-sent Pi draft whose model list can't be read yet will now keep the full discovered catalog instead of collapsing to the launch-default model, and Pi no longer saves the narrower live-session model list.

    Please update to 1.4.246 when it's out, and reopen if a new chat still shows only one model.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    os:macosIssues affecting macOS

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions