Skip to content

fix(buddy): 点击停止后立即结束运行展示 - #241

Merged
shanyuhai123 merged 2 commits into
useLexora:masterfrom
QAyong:codex/fix-instant-chat-stop
Oct 8, 2026
Merged

shanyuhai123 merged 2 commits into
useLexora:masterfrom
QAyong:codex/fix-instant-chat-stop

Conversation

@QAyong

@QAyong QAyong commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

背景与关联 / Context and related issue

  • 问题或目标 / Problem or goal: AI 正在调用工具或执行命令时,停止流程要等后台中断与清理完成,输入框才恢复发送按钮。用户会以为点击没生效,连续点击几次。
  • 关联 Issue / Related issue: N/A

主要改动 / Changes

  • 变更 / Change:
    • 点击停止时同步把当前轮次的展示标记为已取消,输入框立即恢复发送按钮,并保留点击时已生成的部分回答。
    • 后台收尾期间冻结该轮次的消息与事件展示,迟到的输出不会让界面重新进入运行状态。
    • 仍立即调用原有后台取消接口;后台真实执行状态继续保留,直到中断与清理结束。
    • 收尾期间提交的新消息通过既有队列衔接,避免与旧执行重叠;停止前已排队的消息维持暂停。
    • 取消请求失败时恢复真实运行展示并提示错误;后台终态到达后以后台记录替换临时展示,切换会话不会把旧会话的临时内容带入新会话。

验证 / Verification

  • 自动检查 / Automated checks: pnpm --filter @uselexora/lexora-buddy test:unit 相关 2 个 spec 通过(useChatRunSync、useChatTurnExecution);type-check 通过;改动文件 eslint 通过。
  • 手动验证 / Manual verification: 工具调用过程中点击停止,输入框立即可用并可提交下一条消息;后台收尾完成后展示与后台记录一致。
  • 未执行 / Not run: 未执行完整仓库 pnpm lint。

兼容与风险 / Compatibility and risks

只改变前端运行展示的时序,后台取消接口与运行记录不变,不涉及数据格式。点击瞬间操作系统中的命令进程是否立即退出仍由后台收尾负责(本改动不承诺这一点)。

界面变更 / UI changes

点击停止后立即结束运行展示并恢复发送按钮。

@shanyuhai123

shanyuhai123 commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

这个我分析了,正好可以考虑 引入 pi-durable(改动太大,下次一定) 这个框架做后台机制了。
后续会在这个 PR 上进行追加。

@shanyuhai123
shanyuhai123 merged commit 8c0bb95 into useLexora:master Oct 8, 2026
8 checks passed
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