TURN 1
- • 回车 →
handleSubmit(!pending)→ beginRun
- •
runAgent 在 tea.Cmd 协程后台发起 agent.Run(prompt#1)
- • 回调经
program.Send 持续刷新 UI
- • 输入框全程保持可编辑
QUEUE
- • 运行中回车 →
handleSubmit(pending)→ queueMessage
- • 存入
queuedMessage(单槽 string)+ 清输入框
- • 再排一条会覆盖前一条,不累积
- • 输入框上方显示
[queued] 预览
DRAIN
- •
agentResponseMsg 先置 pending=false
- •
launchQueuedMessageIfReady 取出并清空
- • 无论上轮成功/出错都 drain
- • 前置:无权限/askUser/specReview 模态且未退出
EDGE
- • 编排发生在两次
agent.Run 之间,循环本身无感
- • Esc(运行中):先清队列,再按才取消运行
- • 退出中(Ctrl+C 延迟退出)不入队
- • 测试:
internal/tui/queued_message_test.go