OpenSpecUI 12.0.0:CI 能直接读的验证结果
OpenSpecUI 12.0.0 让 validate 的结果从人读的日志变成机器可读的类型化输出;合并冲突建议升为一等 INFO 级;Agent 交付新增 SourceCraft Code Assistant。兼容窗口切到 OpenSpec CLI 1.12 一条线,1.10/1.11 默认被挡,升级只需一行命令。
$ npm view openspecui version
12.0.0
OpenSpecUI 12.0.0 发布了(2026-09-04)。这一版让 validate 的结果可以直接被 CI 消费,并把兼容窗口挪到 OpenSpec CLI 的 1.12 一条线上。
验证结果不用再解析日志
以前要把验证结果接进 CI,只能去解析给人看的日志文本。现在 validate --report findings 直接给类型化的记录,机器读得懂:
openspec validate --report findings
你可以只消费发现部分,整轮的 totals 与 exit codes 照旧保留。请求本身出错时返回的是同一套结构化诊断,错误码 invalid_validation_report_request。
这份输出只有 1.12 线的 CLI 提供。老 CLI 会被明确拒绝,不是静默降级。
发布前又收了两处:证据面板统一到共享的 header 契约,每条发现都归因到它所属的 change(1aa9ce43、13bb0e15)。
合并冲突的提示不再混进失败
归档前的合并冲突检查,以前它的建议和真正的失败挤在一起看。现在这两条 advisory 单独渲染成信息级:
Archive would refuse this delta: ...
Could not check archive merge conflicts: ...
等级变了,validity 证据不变。这两条以前没有自己的等级,现在有了。
SourceCraft Code Assistant 拿到命令文件
用 SourceCraft Code Assistant 的人,现在也能直接收到 OpenSpecUI 的 Agent 交付。命令落在 .codeassistant/commands/opsx-<id>.md,skill 引用是自然语言的,不用重启 IDE,也没有迁移步骤。
.codeassistant/
└── commands/
└── opsx-<id>.md
生成器的基线同步到 1.12.0。
迁移(破坏性:兼容窗口)
窗口收窄到 >=1.12.0 <1.13.0。1.10.x 与 1.11.x(那是 11 的窗口)、更老的线、预发布版,以及 >=1.13.0,默认都被挡。1.13 发布时是否准入,由另行验证的结果决定:要么放宽 12.x 的窗口,要么出一个新 major。
最低摩擦路径是一行升级 CLI:
npm install -g @fission-ai/openspec@1.12
手头确有不兼容的 CLI 可执行文件时,mismatch 对话框提供 Skip version check。该旁路只在当前页面运行时内有效,刷新或重开即清,不构成兼容承诺。
其余变更
新契约配了版本锁定的可执行 fixtures:
openspec-cli-112验证新契约成立,保留的openspec-cli-111验证老 CLI 被挡时的行为(d782c98e)fixture 方法收严:worktree 端点 fixture 锁定自包含的 CLI runner(hermetic,不依赖外部环境),Windows 锁释放的重试有界(0baa17a0、2c602a53)
findings 的 argv owner 在评审轮里被门控,workflow fixtures 完成移植(677cbe13)
从 11.1.0 到 12.0.0 共 24 个提交。
致谢
上游 OpenSpec CLI(@fission-ai/openspec)1.12 线的每一次协议演进,都决定着这个兼容窗口的范围。
链接
Changelog:GitHub Release openspecui@12.0.0
升级:见本文「迁移」节(一行 CLI 升级)
English version: /blog/2026-09-06-openspecui-12-0-0/
