mirror of
https://github.com/stablyai/orca.git
synced 2026-11-14 01:47:24 +00:00
* fix(acp): permission prompts from an agent's own work wait for you A permission or question that an ACP agent (OMP, Grok, OpenCode, others) asks during work it started itself, such as picking up a finished background job, was answered "cancelled" at once and never shown. It now shows as a card, raises the needs-input alert, and waits for the answer, unless Stop, a steer or teardown cuts it short. While OMP refuses a sent message as busy, a request from its own turn now appears at thread level instead of being cancelled, so it never lands in the held message's turn. Tracked in STA-13625. * fix(acp): keep later requests askable after a Stop, and honor the agent's withdrawal A Stop or a card's Cancel left the chat refusing every later permission request until the session ended; the stop now covers only the work it interrupted. A request the agent withdraws with $/cancel_request now withdraws its card. Cancel on a card from the agent's own work reaches the agent even when no message is running. * test(acp): narrow approval rows before reading their resolution * fix(acp): a live request's card outlives its turn instead of being cancelled with it Requests group with the active turn again, as before. A permission or question the agent is still waiting on now stays pending and answerable when its turn ends, is replaced, or is settled by the host; only the person's answer, the agent's withdrawal, Stop, a steer or the session ending settles it. Settled requests are pruned at turn end. Stop covers only Orca's running message, so later requests from the agent's own work can still ask. Cancel on a card with no running turn now reaches the host from desktop and phone for every agent, and a question the agent withdraws before its card opens no longer leaves a stuck card. * fix(acp): never strand a live request without a card, and scope Cancel to it A request the agent still waits on now always gets an answerable card, even when its turn settled before the card was written, and answering it releases the timeline's hold. Cancel on a card from an agent's own turn refuses further requests from that turn until it ends. Desktop never turns Cancel on a card into a whole-chat Stop on hosts that can't take a card cancel. * fix(acp): a new message is never covered by a Stop of the agent's earlier turn * fix(native-chat): a card's Cancel with no running turn passes the RPC schema The cancel params required a turn whenever a card was named, so Cancel on a card from an agent's own work (and Pi's turnless card Cancel) was rejected before it reached the host. A background-task cancel still names its turn. * test(rpc): a card with no running turn cancels by itself