mirror of
https://github.com/QwenLM/qwen-code.git
synced 2026-11-07 06:19:43 -10:00
* feat(acp): run re-entered, channel and Goal-proposal turns on the shared loop With experimental.unifiedAgentLoop on, channel prompts and Goal-proposal approval turns run as a UserQuery on the shared round, the shared tool batch and the client's stop point, and a retry, a continue and the restore of an unanswered ask_user_question run there with a Retry first round. ACP still strips and restores the re-entered attempt, still runs UserPromptSubmit on a retry through admitUserPrompt, and still answers a restored question with its own tool step. Core: userTurnRecordedByHost also covers a Retry's todo work chain, promptAdmission is accepted on a Retry, and the new input historyPromptId gives a Retry's request the identity of the attempt it replaces. The ACP parity suite gains a channel prompt and a retry after a model error. * fix(acp): treat a re-entered turn's pushed first request as sent on every exit On the shared round, whether the first request reached history is now read when the round ends, on every exit. A retry whose request was pushed and whose response then failed no longer puts the stripped attempt back beside it, and a restore's one-shot notices are taken once its answer is in history. A continue whose first request never goes out, cancelled at the loop top or failed, puts the interrupted run back as it was and keeps the worktree notice its dropped message took pending. A restore cancelled before its request went out keeps the full answer and takes its notices. The stripped-run restore and the Goal-proposal settlement block are shared helpers. The parity suite runs the channel scenario from a trusted parent so the channel mark survives, and adds a retry that fails again. Docs and comments are corrected. * fix(acp): keep a Goal proposal unsettled when its turn gives way or ends early In plan mode, the Todo Stop Guard on the shared round now still yields to a queued prompt or to input the round took, so a Goal proposal is not started from a turn that gave way. The client no longer drops a host-owned Goal proposal when a send ends abnormally. The host takes it when its turn ends, so a cancelled proposal turn still reports that the Goal did not start. A Retry whose admitted prompt is blocked puts back the attempt the client stripped from history.