Repository navigation
Description
What happened
A Pi pane shows no model in the chat input box until its first reply. For Claude Code and Codex the
pill names the model as soon as the pane opens; for Pi it stays at "No model".
What you expected
The pill names the model Pi is on from the moment the chat is opened, and changes when the model is
changed in the pane.
How to reproduce
- New session → Pi. Do not send anything yet.
- Open Chat for that pane.
Also reproduced with no UI at all, against Ovis main @ 64ae5e7 with Pi 1.4.0: create the pane
through the bridge (POST /api/workspace/create {"agent":{"kind":"pi"},"cwd":"/tmp/ovis-repro"}) and
poll GET /api/pane/conversation?pane_id=<pane>.
What you see
Chat shows "No model", and the read behind it returns nothing about the model:
{"workspace_id":"w4:p4","agent":"pi"}no model, no thinkingLevel, for as long as the pane has had no turn. The ~/.pi/agent/sessions/
directory for that pane's folder stays empty. The pill starts working by itself after the first reply.
Environment
- Ovis version / build:
main@64ae5e7, and the installed plugin build3081164-0 - How you run it: herdr plugin (
server/supervisor.ts+server/managed.ts), headless, on a desktop
Arch box (Pi's own TUI is not involved) - Browser: Chromium
- Agent: pi 1.4.0,
~/.pi
What I think is going on
Pi keeps its model outside the transcript, so there is nothing for the transcript path to read:
- a fresh
pi --mode rpcprocess answersget_statewithmodel: null; - a begun session's JSONL header has no model line either — the first
model_changerecord only
appears once a turn has run (and Pi draws the model as a name from its catalog, not as
provider/id); - what Pi does show is its footer row, one line, at any pane width:
~/code/zosmaai/ovis 0.0%/262k (auto) zorro-davidau-3.8-flash-next • xhigh,
and the same choice in~/.pi/agent/settings.json(provider+model).
Ovis already reads a start screen for Claude (claude-transcript), Codex (codex-transcript) and
gjc (gjc-transcript) in server/start-screen.ts, but no screen is registered for pi-transcript,
so a Pi pane that has not had a turn reports no model and no thinking level.
A PR is on the way that reads that footer row the same way the other start screens are read, keeps it
fresh for panes that have not had a turn yet (Pi rewrites its footer when the model is changed with
Ctrl+P), and, since Pi's launch flags were never declared, passes a model and thinking level chosen
at New Session as --model and --thinking, with a first message handed over behind -- as
Codex's already is.
Activity
fix(chat): name a Pi pane's model from its footer before its first tu…