<@U0BME18CF7S> please review those PRs and approve...
# automations-debug
s
@fresh-machine-37269 please review those PRs and approve or quest changes if you see fit 1. Pi + OpenCode — github.com/OpenHands/OpenHands/pull/18126 CI is green and it's approved, so it can merge now. 2. SDK model lookup + deprecating the hardcoded lists — github.com/OpenHands/software-agent-sdk/pull/5579 CI is green. It still needs a reviewer's approval to merge. 3. Canvas: models come from the agent — github.com/OpenHands/OpenHands/pull/18131 - The description check now passes. - The new build no longer needs the unreleased TypeScript client: it compiles against the released 1.53.0. - Locally: type-check passes, and 8,554 tests pass. The 3 failures are the same ones that fail on main.
👀 1
f
🤖 On it! View progress here: oss-agent-canvas.ngrok.dev/conversations/…
✅ Done! Done — here's where I landed on all three: 1. Pi + OpenCode (OpenHands #18126) — ✅ Approved. Clean Canvas-owned overlay: Pi/OpenCode only touch the UI registry (icon + description +
local_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.