0.1.97 的故事:一个不认人的软件,怎么开始认人

Xtype 从第一天起就不认人。没有登录、没有账号、什么都不上传,装上就能说话。这不是偷懒,是刻意的——一个天天听你说话的软件,最容易让人不放心的就是「它把我说的话拿去哪了」。答案是:哪也没去,全在你这台电脑上。

代价今天找上门了:我换到另一台 Mac,Xtype 什么都不认得我。词库空的、纠正记录空的、我调教了两周的那些专有名词全没了。软件在两台电脑上,是两个陌生人。

「导出再导入」是个假答案

最省事的做法是加一个导出/导入:把词库存成文件,你自己拷过去。

这条路我一开始也想过,但它是错的。理由很简单:AI 时代、云服务时代,零操作才是标准。要求用户记得导出、记得拷贝、记得导入,等于把我们该干的活派给用户。派出去的活,用户不会干,最后功能等于没有。

要做到零操作,就绕不开一件事:得先有个东西能代表「你」,而不是代表「这台电脑」。

账号,但不是门槛

于是这一版有了账号。有三条线我一开始就画死了:

一、不登录必须照样能用。 账号是为了以后的多机共享和权益存在的,不是使用前提。装上就说话这条路,一步都不能加。免费额度每天 50 次,登不登录都一样。

二、没有密码。 填邮箱、收一个 8 位码、粘回 App。你不用记密码,我也不用替你保管密码——保管不了的东西就别保管,这是最省事的安全。

三、登录了也不代表开始上传。 这一版没有同步任何东西。词库、历史、录音仍然只在你这台电脑上。多机共享词库是下一步的事,而且上线后永远默认关闭,要你主动买、主动勾选才开。

然后我撞见了两个「假装成功」

服务端写完,我拿真邮箱连生产走了一遍。第一次没收到信。

查下来是两处一模一样的毛病:

一处是邮件服务拒收的时候,服务端照样回客户端一句 ok。用户看到「登录码已发出」,然后盯着空邮箱等一个永远不会到的码。

另一处是限流:同一个邮箱 15 分钟内最多要 3 封,第 4 封根本不发——但还是回一句 ok。

这两个都不是崩溃,日志里也没有红色。它们比崩溃更难缠:用户永远不知道是哪一步坏了,只会得出一个结论「这软件的登录不好使」,然后走人。他不会来告诉你,因为他也说不清要告诉你什么。

现在两条都如实说了。发不出去就说「邮件没发出去,不是你的问题」;被限流就说「刚才已经发过一封,去邮箱找那个码」。

顺带说一句为什么这两条能说出口。登录接口有一条硬规矩:不能泄露某个邮箱是不是 Xtype 用户,否则它就成了一个查人的接口。但这两条都不违反——不管你有没有账号,走到那一步我们都已经发过信了。说「发不出去」,说的是我们自己的邮件服务,不是你。

这一版真正的成果

功能上就一页设置。但底下多了一件以前没有的东西:Xtype 第一次知道「你」是谁,而不只是「这台电脑」是什么。

多机共享词库、历史、录音,都要站在这上面才做得成。而且顺序不会变——身份先立住,同步才谈得上;同步永远默认关,永远要你点头。