Skip to content

fix(queue): 允许取消等待中的立即发送消息 - #965

Merged
vastsa merged 1 commit into
vastsa:mainfrom
zszz3:codex/queue-cancel-promoted
Sep 23, 2026
Merged

vastsa merged 1 commit into
vastsa:mainfrom
zszz3:codex/queue-cancel-promoted

Conversation

@zszz3

@zszz3 zszz3 commented Sep 23, 2026

Copy link
Copy Markdown
Contributor

问题与改动

关联 #877:执行 A 时,将排队消息 B 设为“立即发送”会锁住删除按钮;如果停止请求没有生效,B 会一直显示“即将发送”,无法取消。

  • B 等待时显示“等待当前任务结束”,保留删除操作;停止请求被拒绝或失败时给出提示。
  • 删除等待 Host 确认。开始交付与取消互斥,已开始交付的消息明确拒绝取消。
  • 交付只保留当前消息的占用标记,跨进程发送等待不占用整个会话的队列锁,其他消息仍可入队和取消。
  • 先记录接收成功,再清理持久化队列。清理失败保持记录并报告错误,后续调度重试清理,避免在当前 Host 中重复执行。
  • 同步八种语言文案与相关规范;未新增仓库测试,只更新了一条原有测试的锁定行为预期。

验证

候选提交:f88f3e7a3244904e9063cf09fa00d5118ce91d40

基线:fd03cf0a345bd4114ea3bca84c4dc6678ff5266b(vastsa/main)

通过:

  • pnpm build:js
  • pnpm --filter @pi-desktop/desktop typecheck
  • pnpm lint
  • Agent Host 现有测试:47 项
  • 队列、发送状态、停止及结束后调度相关 Desktop 现有测试:33 项
  • pnpm test:e2e:composer-paste:完整 Composer 提交、会话切换及附件回归通过
  • 临时脚本:停止接受/拒绝/失败、取消等待确认、交付期间其他消息入队与取消、持久化删除失败后拒绝取消及清理重试
  • pnpm check:pr-base --base upstream/main、git diff --check

环境:macOS arm64,独立 worktree、临时 E2E profile,复用主工作区 Electron 43.6.0,无真实模型调用。上游升级运行时至 0.87.1,本地旧版 0.86.1 不兼容,已按锁文件更新依赖后重新验证。origin 指向个人 fork,基线检查使用实际 PR 目标 upstream/main,没有混入 fork 的额外提交。

范围与限制

  • 本次修复排队消息的取消与状态反馈,不强制终止正在执行的工具,也不宣称修复原任务自身卡住的所有原因。
  • 交付标记保存在内存中;持久化持续失败后重启仍有旧记录恢复的风险,本次没有引入持久化交付凭证或更改数据库协议。
  • Composer E2E 是相邻交互回归;新增的队列异常路径由真实 Host/队列逻辑配合模拟运行时边界的临时脚本验证,尚无覆盖全部新增路径的完整 Electron E2E。

Keep promoted inputs removable while they wait for the active turn and
report rejected graceful stops. Reserve only the input being delivered
so runtime IO does not block unrelated queue actions.

Record acceptance before durable cleanup to avoid acknowledging a
cancellation after execution. Retain queue records on storage failure
and retry accepted-input cleanup without replay in the live host.

Refs vastsa#877
@zszz3
zszz3 marked this pull request as ready for review September 23, 2026 13:41
@vastsa
vastsa merged commit 1ac5029 into vastsa:main Sep 23, 2026
4 checks passed
vastsa added a commit that referenced this pull request Sep 23, 2026
- ADR 0255: mention devkit author-time check (#944)
- 08-component-spec: cross-reference SVG file-only classification (#969)
- e2e-test-plan: register E2E-ATTACHMENTS-svg-file-fallback scenario (#969)
- zh-CN 08-component-spec: mirror SVG exclusion rule (#969)
- zh-CN 09-interaction-patterns: add §3.4 queued send with promoted-row
  cancel semantics (#965)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants