strong-ice-84145
10/09/2026, 2:57 PMfresh-machine-37269
10/09/2026, 2:58 PMfresh-machine-37269
10/09/2026, 3:01 PMlocal_only), commands still come from the SDK registry, and the local-only gating is tested on both onboarding and Settings. The Pi login probe correctly treats its seeded empty auth.json as signed-out, and the test actually shells out against a temp dir. CI green, so with the existing approval this can merge.
2. SDK model lookup + deprecating hardcoded lists (software-agent-sdk #5579) — ✅ Approved (that was the missing reviewer's approval). I verified the subtle part: installed agent-client-protocol==0.12.1 and confirmed set_session_model is gone and NewSessionResponse dropped the models block, so the override is what restores Gemini model handling — and the 0.10.1 signature matches the existing call site. The /api/acp/models endpoint reuses the conversation secrets shape and errors come back in the body; the deprecation warning only fires on the registry fields, not internal reads. It should be mergeable now.
3. Canvas models come from the agent (OpenHands #18131) — 🔴 Requested changes. Direction is right and the tests are solid, but there's a real defect: on the home screen the picker persists any selected row as a concrete acp_model, and the remembered list rows are concrete ids — so picking the default re-pins a model, which is exactly what this PR set out to stop. The agent's reported default is never offered/persisted as "agent default." Two more things: the conversation chip falls back to raw model ids on a fresh browser (it should prefer the conversation's own acp_available_models), and AgentSettingsScreen calls a hook before its isLoading early return (rules-of-hooks hazard). Minor notes on memoizing the per-card localStorage read.
Happy to re-review #18131 once the default-model handling is sorted.