01
输入链
用户文本先变成安全终端输入,再变成 CLI 行为
多行文本、控制字符和终端 paste mode 会改变输入解释。实现采用 bracketed paste,把一段 prompt 当作粘贴内容,最后再提交。
文本框交给的是一段意图;终端收到的却是一串控制序列和字节。中间必须有明确编码。
02
背压
Busy 状态把“立即发送”变成“排队等待安全窗口”
当 CLI 正在工作或终端不在安全输入点,直接写入可能污染当前交互。消息队列将意图持久化,并在状态允许时按目标 drain。
- 01enqueue:保存消息、目标、顺序和可选上下文。
- 02eligibility:用结构化状态判断是否可投递。
- 03drain:一次提交一条,等待状态推进。
- 04recovery:重载页面后队列仍可见,避免用户意图消失。
03
三种投递
直接 PTY、UI 队列与 Hive mailbox 解决不同问题
直接写 PTY 是本地用户到单会话;UI 队列处理 busy 背压;Hive mailbox 是 agent 间的持久协议事实。把三者混为一谈会造成重复、乱序或丢失。
ARCHITECTURE NOTE
判断投递机制时先问:发送者是谁、目标是否在线、是否需要持久化、允许重复吗、谁负责确认?