0.1.89 我们做了「录音先落盘」,觉得话不会丢了。0.1.93 是发现还有个缝。
缝在哪
原来的顺序是:识别完成 → 把文字打进光标 → 写进历史记录。
看起来没问题,直到你问一句:打字和写历史之间,如果程序崩了呢?
那段话就只剩录音,没有文字记录。用户以为插进去了(可能确实插了一半),但历史里查不到,等于要重新转写一次。窗口很窄——零点几秒——但这类事故的特点就是,你不堵它,它总有一天会发生。
把顺序调过来
现在是:识别完成 → 录音归档 + 历史记录写盘、确认写成 → 才往光标里插字。
这带来一个必须接受的取舍:如果本机存不下(磁盘满了),我们就不插字,明确告诉你「本机存档失败,未输入」。
宁可不出字,也不能出了字却没有痕迹——因为出了字而没记录,你根本不知道发生过什么;没出字,你至少知道要重来。
顺带修掉的一个隐私漏洞
录音过程中有一个临时文件,每分钟覆盖写一次,用来在崩溃后恢复。
检查时发现:这个文件只在密码框场景被清理。正常讲完、主动取消、点「清空录音」——都没清。我们在自己机器上找到一个 9.7MB 的残留,是某次录音的完整内容。
这不是崩溃恢复该有的样子。现在它的生命周期写死成契约:讲完、取消、失败、密码框、清空录音,都必须清掉;只有真正没走完的那次才留着等恢复。取消之后,下次启动不得冒出一条恢复记录——你取消了就是取消了。
还有一个用起来才知道的问题
历史记录一多,翻旧内容变成了滚动比赛。
加了日期筛选:今天 / 近 7 天 / 近 30 天 / 指定日期,按天分组。缺省只看当天,「全部」分页加载——记录几百条也不卡。
小功能,但它是我们自己每天用着烦,才去做的。