那阵子给助手调对话区,碰到个特别阴的 bug:我打出去的字,回车之后变成了一条半截系统提示。

现象很怪。我在对话框里敲一句「搭到哪一步了」,回车,它答得驴唇不对马嘴,像压根没看见我这句话。翻日志,我那条消息变成了「(指纹 + 机器档案 + 通用经验 + 你的偏好 + 搭到哪一步了)」——前面全是它的系统提示,我真正想说的那句被裹在最后头。

盯了一晚上才揪出来:后台有条「🧠 记忆已更新」,是异步往对话框里追加的系统行。它不挑时候,正好在我打字的中途插进来,就把「用户正在输入」那块和它自己的提示混成了一团,输入边界冲乱,回车时自然被截胡。

改法有点绕:往对话框追加系统行之前,先把用户已经打进去的内容(连「🧑 你:」那个前缀一起)挪到个安全地方暂存,等这行插完,再原样摆回最末尾。用户的字不再被冲,系统行也照常显示。

回头看,这类异步消息的坑最不显眼——它平时安安静静,只在「你正好在打字」的那半秒出手,复现都得靠运气。当时为了逮它,来回试了十几次。我后来给自己定了个规矩:任何异步往界面上写东西,先想清楚它会不会踩到用户正在做的事。

这毛病跟前面那个对话框黑成一片、滚一下才回来是同一段日子里冒出来的,都出在 RichTextBox 这块。

顺带一提,这些功能都长在七亿批量远程管理工具里,七亿批量远程管理工具的教程页写了怎么用。有想法欢迎在评论区聊。