❓ Question
Archive 发现本机 Runtime overlay 在归档边界不可复用,因此 Comet 按规则把状态退回 Verify,要求对同一候选重新生成 Runtime receipts。
🎯 Topic
None
🔍 What you tried
这是 Comet 的可移植状态与本机执行状态没有对齐导致的安全回退,不是代码或测试失败。
Comet Native 同时维护两层状态:
- Portable state:
docs/comet/changes/.../comet-state.yaml,记录 Change 阶段、验收结果和 Verifier 结论,可以进入 Git。
- Local Runtime overlay:
.comet/runtime/native/.../state.json,记录本机实际执行过的检查、进程和 receipts,不进入 Git,也不能跨设备直接信任。
这次过程是:
- Verifier 通过时,portable state 与本机 receipts 是对齐的。
- 执行
archive --dry-run --finish pull-request 后,Comet 持久化了 finish=pull-request,portable stateVersion 随之增加。
- 随后正式 Archive 时,本机 overlay 仍绑定旧的
stateVersion,因此被判定为 stale。
- Comet 无法证明“当前 Archive 状态对应的仍是刚才验证过的本机候选”,于是采取保守策略:
- 不复用之前的 Runtime receipts;
- 不直接 Archive;
- 把同一候选退回 Verify;
- 要求重新生成 receipts。
所以准确地说:
- 候选代码没有变化;
- 先前的验收没有发现新问题;
- 与不执行下游项目验证无关;
- 是
--finish 预览改变 portable state 后,本机 overlay 没有同步更新导致的状态版本失配。
从行为上看,这里很可能是 Comet Runtime 的一个边界设计缺陷:finish 选择只是归档收尾配置,不应自动使已经通过的候选验证失效。更合理的实现应当是同步更新 overlay 的 basedOnStateVersion,或者明确允许仅 workspace.finish 变化时复用原验证结果。当前版本选择了最保守的重新验证策略。
🖥️ Environment
- OS:Windows
- Shell:powershell
- Node:22
- Install scope: global
- Skill language: zh
- Target AI platform(s): codex
🧩 Additional context
No response
❓ Question
Archive 发现本机 Runtime overlay 在归档边界不可复用,因此 Comet 按规则把状态退回 Verify,要求对同一候选重新生成 Runtime receipts。
🎯 Topic
None
🔍 What you tried
这是 Comet 的可移植状态与本机执行状态没有对齐导致的安全回退,不是代码或测试失败。
Comet Native 同时维护两层状态:
docs/comet/changes/.../comet-state.yaml,记录 Change 阶段、验收结果和 Verifier 结论,可以进入 Git。.comet/runtime/native/.../state.json,记录本机实际执行过的检查、进程和 receipts,不进入 Git,也不能跨设备直接信任。这次过程是:
archive --dry-run --finish pull-request后,Comet 持久化了finish=pull-request,portablestateVersion随之增加。stateVersion,因此被判定为stale。所以准确地说:
--finish预览改变 portable state 后,本机 overlay 没有同步更新导致的状态版本失配。从行为上看,这里很可能是 Comet Runtime 的一个边界设计缺陷:
finish选择只是归档收尾配置,不应自动使已经通过的候选验证失效。更合理的实现应当是同步更新 overlay 的basedOnStateVersion,或者明确允许仅workspace.finish变化时复用原验证结果。当前版本选择了最保守的重新验证策略。🖥️ Environment
🧩 Additional context
No response