四协议 AI 短信分类与“零截断”验证码铁律
收件箱里的历史短信全量同步上来之后,几千条快递通知、商场促销、个人聊天和验证码混在一起,翻找起来依然费眼。2026 年 10 月 16 日至 18 日(v0.2.0-alpha.1 ~ alpha.8),我把鸿枢推进到了 v0.2 阶段,在中枢后台接入了支持 OpenAI Responses、Chat Completions、Anthropic Messages 和 Gemini 四种协议的 AI 智能分类管线。
每条新短信入库后,后台会自动将它归入“个人”、“通知”、“推广”、“垃圾”以及专门的 otp(验证码)五个分组。
在调试 AI 提取验证码时,我发现小参数模型偶尔会犯蠢:比如看到订单尾号或者长串物流单号,硬生生从中间截出 6 位数字当成验证码。为此我给提取器加了一条后置校验铁律:模型给出的验证码字符串,必须逐字完整出现在短信原文里,而且前后绝不能紧挨着其他数字(严禁从更长的数字串里截断),同时专门兼容了 Google 的 G-397783 前缀码与 Stripe 的 719-839 分段码。
只有异地副卡才弹的 Android 16 验证码胶囊
验证码提准了,怎么在主力机上用得最顺手?在 v0.2.0-alpha.5(PR #62,Commit 7227213)里,我用上了 Android 16 的 Live Updates(状态栏常驻胶囊 / 灵动岛通知)特性。
这里我特意做了一个很讲究的区分:只有当“家里那台备用机收到验证码、通过中枢同步到我手上的主力机”时,主力机才会弹出状态栏验证码胶囊;如果是主力机自己插的卡收到了短信,鸿枢绝不弹窗,免得跟手机系统自带的验证码填充气泡打架。
异地验证码一到,状态栏直接浮出验证码数字,手指点一下就能复制进剪贴板并自动收起胶囊;就算放着不管,10 分钟后也会自动销毁,绝不留在通知栏过夜。
跨设备已读水位(009_read_watermarks)
紧接着在 alpha.6,我补上了 009_read_watermarks 跨设备已读水位表。不管是在电脑网页端还是在主力机上点开看完了某条会话,中枢立刻广播更新水位线,家里备用机和所有在线设备上的未读角标与通知瞬间一起清零,再也不用挨个设备划通知了。