Skip to content

Deferred review findings from PR #11289: fix(web-shell): keep mid-turn messages the daemon rejects at idle #11507

Closed

Description

@qwen-code-dev-bot

Current PR-head follow-up — 2026-10-07

Open formal PR #13594, head 2774aa0a0b180380d0302e428f0ab27faab27e30, now has a current-head local/browser/tmux report. All 309 session-actions cases executed and passed. One real current-source App/Chromium case with controlled anonymous mock-daemon transport verified two held text-only ordinary admissions: deleted A's late acknowledgement produced exactly one A compensation DELETE; B DELETE/cancel were zero, B remained queued after its acknowledgement and A stayed absent.

The report preserves and explains the first fixture expectation failure and its single corrected rerun, discloses the two unrelated mock catalog 401s, and distinguishes abort-after-dispatch native coverage from the already-aborted-before-admission unit coverage. It does not relabel controlled UI transport as production daemon/model acceptance. PR remains unmerged/unreleased; this issue stays open. Earlier mid-turn cancellation fixes and this additional Submitting/Delete edge remain separately scoped.

中文说明

当前 #13594 head 的 309 个 session-actions 用例通过,新增真实当前源码 App/Chromium 与 tmux 报告。受控匿名 mock-daemon 下两条纯文本 ordinary admission 被暂缓;删除 A 后迟到回包只删除 exact A 一次,B 无 DELETE/会话取消,自己的回包后仍 Queued,A 未复活。报告保留首次 fixture 期望错误及一次修正重跑,披露无关 catalog 401,区分实际覆盖的 dispatch 后取消与单测覆盖的提前 aborted guard,不声称生产 daemon/模型验收。PR 未合入/发布,本 issue 保持开放;既有 mid-turn 修复与本次 Submitting/Delete 追加边界分开记录。


Current main verification — 2026-10-07

Verified against 1aba19c87889.

Not eligible for closure. Current source still disables Delete/Edit while a queued row is Submitting…, and the client/daemon image-only placeholder values remain separately defined (both currently [image]). A bounded latest-source renderer/hooks attempt reached an actual mid-turn-message POST, but did not establish the required held-confirmation queued-row state; it therefore provides no Delete/image-only runtime acceptance. No present placeholder mismatch is claimed. The earlier successful confirmed-row Delete check does not resolve submitting-stage cancellation or the shared-constant follow-up. Keep both original follow-ups open; the test setup failure was not treated as a product reproduction.

中文说明

提交阶段仍不支持删除/编辑,图片占位值仍分别定义。本次 UI 测试未建立目标队列状态,不能作为关闭依据,也未证明占位值当前有失配;原始两个后续项继续开放。


Original report

Verified review findings from PR #11289 by wenshao whose fixes lie outside that PR's footprint, deferred by the autofix loop for follow-up. cc @wenshao. Each rc: item links back to its original review comment. A maintainer or the PR author can turn any item into its own issue/PR and apply the ready-for-agent flow to that issue — nothing here is scheduled automatically.

  • ic:5604740838 packages/web-shell/client/hooks/useQueuedPrompts.ts: Verified observation from the maintainer's product-level run: IMAGE_ONLY_PROMPT_TEXT hardcodes '[image]' in the client while the daemon owns the placeholder (bridge.ts), so a daemon-side change silently breaks the identity match. A shared exported constant is real follow-up work but orthogonal to this PR's race fix.
  • ic:5604740838 packages/web-shell/client/hooks/useQueuedPrompts.ts: Verified observation from the maintainer's product-level run: removing a row that still reads 'Submitting…' is a silent no-op for the length of the confirmation (no DELETE issued; the row later binds and runs). It fails in the safe direction and its pre-existing status is unestablished, so it is follow-up work rather than part of this race fix.

Activity

  1. yiliang114 commented on Oct 4, 2026

    @yiliang114
    Collaborator

    Checked against main 3a177d623500fc2cdff822be68081db7206a30eb using the repository Web Shell visual runner in Chromium.

    During Submitting, Delete and Edit are explicitly disabled and show “Submitting queued message...”. The click sends no DELETE request. Once the same row is Queued on server, Delete is enabled; it sends a DELETE for that exact pending prompt, and the row disappears after acknowledgement. I could not reproduce an enabled Delete action silently failing in that confirmed-row path.

    The submitting-stage cancellation limitation remains. The two image-only placeholder values are also still separately defined, although both currently equal [image]; no present user-visible mismatch was demonstrated. This is a partial status update, not evidence that both follow-ups are complete. The browser test exercised the actual renderer/hooks with the repository fixture controlling daemon transport, rather than a live production daemon.

  2. yiliang114 commented on Oct 7, 2026

    @yiliang114
    Collaborator

    Implemented in non-draft PR #13594 at c04a1481fc73. Ordinary Submitting rows now support single-row Delete; late acknowledgement is compensated by removing that exact prompt ID, and sibling submissions retain their images and bind independently. The client and both daemon prompt producers share the image-only placeholder. Editing during admission and unconfirmed mid-turn cancellation remain separate behaviors.

    Local validation passed: 681 focused Web Shell tests, 8 bridge prompt-ledger tests, 3 selected ACP image controls, relevant builds/type checks, and Chromium actual-App acceptance (1/1) with real tmux runner capture. The browser transport is an anonymous controlled fixture; live production daemon/model verification is not claimed. Sanitized report with tmux capture and screenshots.

    Keeping this issue open until the PR merges; an open PR does not establish a released fix.

    中文说明

    非草稿 PR #13594 已完成普通提交行的单条取消及共享图片占位常量。迟到确认按准确 ID 清理,另一条消息保留图片并正常绑定。本地针对性测试、构建/类型检查及真实 App 的受控浏览器验收已通过,测试评论附实际 tmux capture 与脱敏截图。尚未合并或发布,issue 保持开放;没有宣称生产 daemon/model 验收。

  3. yiliang114 commented on Oct 7, 2026

    @yiliang114
    Collaborator

    Current PR-head follow-up — 2026-10-07

    Open formal PR #13594, head 2774aa0a0b180380d0302e428f0ab27faab27e30, now has a current-head local/browser/tmux report. All 309 session-actions cases executed and passed. One real current-source App/Chromium case with controlled anonymous mock-daemon transport verified two held text-only ordinary admissions: deleted A's late acknowledgement produced exactly one A compensation DELETE; B DELETE/cancel were zero, B remained queued after its acknowledgement and A stayed absent.

    The report preserves and explains the first fixture expectation failure and its single corrected rerun, discloses the two unrelated mock catalog 401s, and distinguishes abort-after-dispatch native coverage from the already-aborted-before-admission unit coverage. It does not relabel controlled UI transport as production daemon/model acceptance. PR remains unmerged/unreleased; this issue stays open. Earlier mid-turn cancellation fixes and this additional Submitting/Delete edge remain separately scoped.

    中文说明

    当前 #13594 head 的 309 个 session-actions 用例通过,新增真实当前源码 App/Chromium 与 tmux 报告。受控匿名 mock-daemon 下两条纯文本 ordinary admission 被暂缓;删除 A 后迟到回包只删除 exact A 一次,B 无 DELETE/会话取消,自己的回包后仍 Queued,A 未复活。报告保留首次 fixture 期望错误及一次修正重跑,披露无关 catalog 401,区分实际覆盖的 dispatch 后取消与单测覆盖的提前 aborted guard,不声称生产 daemon/模型验收。PR 未合入/发布,本 issue 保持开放;既有 mid-turn 修复与本次 Submitting/Delete 追加边界分开记录。

  4. yiliang114 commented on Oct 7, 2026

    @yiliang114
    Collaborator

    PR #13594 merged on 2026-10-07 at 16:40:44 UTC as c468f2ab66e331da9bd81b8c9332f2246d6bff5a; this issue was automatically closed by the merge.

    Verified latest main 57e347fae44dc8bde90adc8e4ad228c027534aee contains that merge. Five changed production files are byte-identical to the locally/browser-verified PR head 2774aa0a0b180380d0302e428f0ab27faab27e30. The sixth changed production file has unrelated later recording/quarantine changes, while the image-only prompt extraction helper and shared placeholder remain identical. Existing current-PR-head browser/tmux and 309-case report is reused and explicitly attributed to 2774aa0a0b180380d0302e428f0ab27faab27e30; no fresh full-main browser run or published-version claim is made.

    The ordinary Submitting single-row Delete fix and exact late-ack compensation are now on main. Pending-admission Edit and unconfirmed mid-turn cancellation remain the separate behaviors already described by this PR.

    中文:#13594 已于 2026-10-07 16:40:44 UTC 合并,本 issue 随合并关闭。已确认最新 main 包含合并提交,五个变更 production 文件与既有本地/浏览器验收提交完全一致;第六个文件仅有其他记录/quarantine 变更,image-only 文本提取 helper 与共享占位符保持一致。Submitting 单行 Delete 和精确 late-ack 补偿现已进入 main,复用原 309 用例及 browser/tmux 报告,不冒充重新运行 main 全量验收,也未确认发布版本。待 admission 时的 Edit 和未确认的 mid-turn 取消仍是既有独立范围。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions