找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

4659

积分

0

好友

651

主题
发表于 1 小时前 | 查看: 2| 回复: 0

昨晚,开源项目 OpenClaw 发布了新版本 v2026.3.22。然而,这个发到 npm 的包却漏掉了控制台的前端文件。全球用户升级后打开浏览器,迎接他们的只有一个冰冷的 503 错误。

OpenClaw 社区讨论截图

问题出在哪里?

v2026.3.22 本是一个大版本更新,包含了插件市场上线、工具链重构和安全加固等众多特性,Release Notes 写了几十条。但热闹之下,用户升级后却发现控制台“消失”了。

GitHub Issue 详情截图

根本原因在于,发布到 npm 的包里,整个 dist/control-ui/ 目录不翼而飞。上个版本 v2026.3.13 还是正常的,到了这个版本就直接丢了。

更让人哭笑不得的是,报错信息提示用户运行 pnpm ui:build 来自行编译前端。但问题是,scripts/ 目录同样没有被包含进发布包中。这相当于官方指了一条走不通的路。

祸不单行,同一个版本中的 WhatsApp 集成功能也出了问题——相关模块被拆到了独立的包 @openclaw/whatsapp,但这个新包当时根本还没发布到 npm 上。两个打包事故叠加,让通过 npm 安装的用户直接“团灭”。相比之下,通过 Docker 或 Git 安装的用户则安然无恙。

历史总是惊人的相似

翻看 GitHub Issues 记录,你会发现 OpenClaw 在 npm 发布这条路上并非首次翻车。

今年一月,v2026.1.29 版本中,UI 资源文件虽然存在于包内,但路径解析逻辑错误地假设 process.argv[1] 指向包内部的 dist/ 目录,导致 npm 全局安装时找不到资源。资源明明在,代码却看不见。

二月,又有用户报告 scripts/ui.js 不在 npm 包中,使得 pnpm ui:build 命令无法执行。

到了三月,则是直接将整个前端产物目录遗漏。

三个月,同一条发布流水线,踩了三个不同的坑。这说明了什么?说明在 npm publish 之后,没有任何自动化的冒烟验证流程。 既没有人,也没有 CI 流水线去检查“安装完后,软件到底能不能正常运行”。

哪怕只写一个简单的四行脚本进行验证:

npm pack
npm install -g ./openclaw-2026.3.22.tgz
openclaw doctor --non-interactive
curl -s http://127.0.0.1:18789 | grep -q "<!DOCTYPE html>"

就能拦截住昨晚的事故。遗憾的是,这样的脚本并不存在。

AI 能写代码,但管不了流程

微博评论区有一条高赞评论一针见血:

“这全是 AI 写的代码,人都看不懂,出点问题只能修 AI。也提醒一下想开了程序员的老板们,以后出了问题你们只能和 AI 扯皮了。”

查看 GitHub,确实有些 Issue 标记着 “Generated via Claude Code agent”,一些 PR 也是由 Codex 生成的。这本身不是问题——高效的开发确实可以借助 AI。

但关键在于,AI 能帮你生成代码,却不会帮你建立和优化工程流程。AI 不会主动建议“我们应该在发布前加一个冒烟测试”,也不会在你拆分新包时提醒你“新包还没发布到 npm”。代码层面的 Bug,AI 或许能写能修;但流程和工程实践层面的缺失,AI 目前还“看不见”。

这次事故让我感触颇深,因为就在前一天,我刚发布了自己维护的项目 Pigsty 的 v4.2.2 版本。那个版本升级了数十个系统软件包,其中有一个不起眼的改动:将 ETCD 从 3.6.8 升级到 3.6.9。按照语义化版本约定,这只是一个 Patch 版本,理应只包含向后兼容的 Bug 修复。

然而,在跑冒烟测试时,整个集群“炸”了。原因在于 ETCD 3.6.9 悄然为其 Member List API 添加了认证要求,而之前版本是允许普通用户直接调用的。这一改动直接导致 Pigsty 的健康检查和成员管理全部失败。

这种问题,你看 Changelog 未必能看出来,看代码 Diff 也未必能立刻反应过来。 唯一的发现方式,就是在干净的环境中真实地安装、运行、让所有组件交互一遍。

发现问题后,我做了三件事:将 ETCD 版本回滚至 3.6.8;在发布配置中锁定此版本;在更新日志中明确记录未跟进新版的原因。这并非多么高深的技术,只是一套笨办法:安装、验证、出问题则回滚、确认无误再放行。过程有点慢,有点麻烦,但它是对用户信任的一份责任。

回过头看 OpenClaw 这次事故,如果在发布前,能有人简单地执行一次安装、启动、然后打开浏览器看一眼控制台——这一切就根本不会发生。

带有问号的龙虾梗图


做基础设施的,发布前装一遍、跑一圈、测一下,真的很难吗?

这不仅是对自己项目的负责,更是对社区用户的尊重。成熟的 DevOps 实践里,发布流水线的最后一步永远是验证。希望这次“翻车”能成为一个提醒,推动更多项目将自动化冒烟测试纳入发布流程。毕竟,在 云栈社区 这样的技术论坛里,我们分享的不仅是代码,更应是可靠与信任。




上一篇:安卓App权限失控剖析:从美团删除相册事件看Photo Picker为何失效
下一篇:当Token消耗量成为硅谷新KPI:大厂的AI绩效考核跑偏了吗?
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-3-25 03:18 , Processed in 0.516173 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表