You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Desktop: show the model in use for all hosted harnesses as chips in the agent list #899
In the desktop app's hosted-agent list, only Pi shows the model in use. All supported harnesses should show their model, rendered as a chip like the web UI.
Findings
The rail already renders row.Model for every vendor when non-empty (RailSessionViewModel.Sub). Pi is the only vendor that populates a model on a default launch, because its RPC handshake reports the running model (src/Capacitor.Cli.Daemon/Harness/Pi/PiRpcHostedAgentRuntime.cs), captured as ResolvedModel at registration (AgentOrchestrator.cs:2401).
Claude/Codex (PTY) and the ACP vendors leave AgentInstance.Model blank on a default launch. Codex resolves its real model but reports it to the server registry only (AgentOrchestrator.cs:2644), not the local status frame.
Web UI renders the model as a single uniform info-tint chip (not per-model colour): kcap-server CompactStatsRow.razor (hk-chip-model).
Proposed change
UI: render the model as an info-tint chip beside the vendor chip in the rail, shown when non-empty.
Daemon (best-effort resolution): also update the local AgentInstance.Model for Codex when it resolves; capture the ACP vendors' current/default model from their handshake. Selected models already flow for all vendors once launcher model selection lands (see model-selection issue). Claude PTY default launches (no model requested) may remain blank — accepted as the best-effort gap.
Acceptance
On a launch where a model is selected, the model chip appears for every vendor.
On default launches, the model chip appears for Pi (unchanged), Codex, and ACP vendors where the handshake exposes it.
Activity
linear-code commentedon Sep 11, 2026
AI-2717
Don't overwrite an authoritative resolved model (#899)
Limit the ACP default-model fallback to the initial handshake (#899)
Describe both null cases in the ResolvedModel contract (#899)