这两天我其实一直在反复说一件事:网站有多少功能,不是最重要的,最重要的是它得稳定。以前我会很容易被一个新功能、一个新效果吸引,觉得今天又多做了一块东西,但这几天 LMN516 连续暴露出来的问题让我越来越确定,如果一个网站点进去不是慢就是崩,前台和后台之间跳转都不顺,甚至今天能用、明天又出同样的问题,那么再多功能也没有太大意义。我现在更在意的是,它能不能长期跑下去,能不能自己恢复,能不能在我不盯着它的时候也保持正常。
这也是为什么这两天我花了很多精力在一些看起来没有那么“显眼”的事情上。比如 Production 到底怎么落地,GitHub main 和真正线上运行的版本到底是什么关系,M4 Air 和 Mac mini 应该分别承担什么职责,数据库连接池为什么会耗尽,网站运行时为什么会混入后台任务,Gmail 自动同步为什么会持续失败重试,文章列表是不是取了太多不必要的数据,历史兼容逻辑是不是越来越重。以前遇到这些问题,很容易变成哪里坏了就修哪里,但现在我越来越不想接受这种方式,因为它会让一个系统表面上一直在被修,实际上底层越来越复杂。
我最近也反复强调一条标准:进 main 不叫落地,真正进入 Production,并且在 Production 里验收通过,才叫落地。这个标准其实把很多以前容易混过去的事情重新划清楚了。代码提交了、CI 绿了、Worker 说完成了,都不代表用户真正访问到的那个系统已经完成;只有线上真实环境跑起来,前台、后台、数据库、任务、跳转这些关键链路都通过了,才可以说闭环。这个标准会让工作看起来更慢一点,因为很多“小尾巴”不能再被忽略,但我宁愿这样,也不想一直积累那些看起来很小、最后却反复出问题的尾巴。
今天比较重要的一件事,是 M4 Air 和 Mac mini 的职责终于越来越清楚。Mac mini 更适合承担 Production Builder、完整门禁和构建工作,M4 Air 继续作为 Runtime Primary、Blue-Green 和真正的 Production Landing 节点,同时保留 Mac mini 不可用时的 fallback。这个变化对我来说不是简单地“多用了一台电脑”,而是终于开始把几台设备当成一个系统来分工。之前我一直不满意的一点,就是 M4 上堆了很多重任务,Mac mini 却经常没事干;现在我想要的是 M4、Mac mini、VPS,甚至以后其他设备,都有自己的位置,而不是所有事情习惯性地压到一台机器上。
《纪实 2026》也是一样。我之前说“抓鱼”,不是说每次我催一下,Worker 临时去搜索几条新闻回来,那不叫系统能力。我真正想要的是,我不说话的时候它也在扫描,找到候选以后自己补证,证据不足就留在 evidence,证据足够才进入正式事件库,而且不能因为地理、日期、重复事件或者来源判断出了偏差,就把错误数据当成 VERIFIED。最近我们开始补 Worker lease、事实地理隔离、candidate ledger、正式库门禁、未来日期硬门禁、自动晋升和扫描器自愈,这些东西看起来比“今天多收录了多少条”更底层,但如果这些东西不稳,抓得越多反而越容易乱。
Control Tower、Q、RUN、Queue、本地模型这些东西,我现在也开始用同一个标准看。它们不是页面上显示几个数字、几个状态就算完成,而是系统实际发生的事情必须和控制室里的事实一致。一个 RUN 到底有没有真的执行,Queue 有没有漏,Worker 是不是只是显示在线,本地模型有没有真的接管任务,这些都应该有可以核对的事实。我最近会不停问“这个体系到底正不正常”,其实就是因为我不想要一个看起来很完整的控制室,我想要的是它真的能控制、能追踪、能恢复,而且每一次执行都有真实身份和结果。
这两天还有一个很明显的变化,就是我们开始更认真地处理自愈。磁盘快满了,不只是这次清一下,而是加守护;Mac mini 重启以后 Tailscale 断了,不只是重新连一次,而是保留局域网免密 SSH 的救援通道;Production Landing 出现孤儿锁,不只是人工删锁,而是做幂等和自动释放;扫描器重装失败,也开始考虑旧进程没有退出这种真实运行环境里的边界。我现在越来越在意这种能力,因为一个真正长期运行的系统,不可能靠我每天盯着它,然后发现哪儿坏了再喊人修。
当然,今天的工作还不能说完全闭环。我们现在仍然能看到一些“修完一层又暴露下一层”的情况,比如 OAuth loopback 连续补随机端口和 IPv6,扫描器自愈补完以后又发现旧服务退出时序的问题,Production Landing 的最新一批改动也还需要真正跑完线上验收。这些不是说方向错了,反而说明很多以前藏在下面的问题正在被一层一层翻出来,但接下来要做的事情应该是减少这种三连修、四连修,让更多问题在真实运行合同和门禁里提前被发现,而不是继续靠上线后再补。
所以我现在对 LMN516 的要求其实变得更简单了,但也更严格了。我当然还想继续做很多功能,音乐、文章、碎碎念、纪实、AI、本地模型、微信、设备协同,这些我都不会停,但它们必须建立在一个能长期运行的底座上。接下来我更想看到的,不是一天又增加了多少功能,而是它连续几天不崩、Production 每次都能稳定落地、几台机器真的在协同、《纪实 2026》真的会自己抓到鱼、Control Tower 里的状态和现实完全一致。等这些东西真正稳定下来以后,再往上长功能,我会更放心。