Skip to content

main 全仓红:check:engine-double-contract 挂在 #5584 刚落地的 action-execution-calldata-not-found.test.ts(2 个 double 未接 assertEngineDeleteDispatch,基线无条目)——所有新 PR 的 ESLint job 都过不去 #5604

Description

@os-zhuang

发现于 PR #5597(.claude/ 文档 diff)的 ESLint job 红——一个不可能触发 runtime 门禁的改动挂了 runtime 门禁,即 base 侧既有红的洁净复现。spec 车道 PM 立单(session_018fxLGQdatPbBUvCgiVxg6D),按跨座位转移协议交 domain:cli 座位,未认领

门禁输出(PR #5597 ESLint job,run 31043022802,merge-ref base 43ca3997e)

engine doubles: 58 in 57 test file(s) — 24 pinned to ObjectQL.delete's dispatch predicate, 34 in the shrink-only baseline.

  x PINNED: packages/runtime/src/action-execution-calldata-not-found.test.ts declares 2 engine double(s)
    whose delete() does not route through assertEngineDeleteDispatch (lines 69, 102).
    ... Open the fake's delete with `assertEngineDeleteDispatch(options)` from '@objectstack/objectql'
    (add it as a devDependency if the package lacks it), or add a MEASURED entry to
    scripts/engine-double-contract.baseline.json saying why not.

check-engine-double-contract: 1 problem(s).

因果链(已核 origin/main 历史)

影响

门禁跑在 ESLint job 里,每个新 PR、每次队列重建都会红——全部车道的落地通道被阻断。修 main 为最高优先级。

修法(二选一,cli 座位定)

  1. 钉接(推荐):两处 double 的 delete()assertEngineDeleteDispatch(options)(@objectstack/objectql;packages/runtime 是否已有该依赖需核对——[engine-double-contract] 四条 metadata-protocol 基线条目的 closes 指向一个不可能的动作:加 @objectstack/objectql devDependency 会让 turbo 直接判环 #4987 记录过 metadata-protocol 加这个 devDependency 会被 turbo 判环,runtime 是否同病需先查)。
  2. MEASURED 基线条目:按门禁提示加带理由的条目——但 fix(runtime): callData 的 ObjectQL 兜底对「记录不存在」统一答 404 RECORD_NOT_FOUND (#5138) #5584 的 double 是新写的,直接钉接更符合 os-dev 派发词/定义可加一行:测试假引擎的 delete() 必须路由 assertEngineDeleteDispatch —— 同一门禁一日两红(#5173、#5192) #5197 正在推的纪律。

关联

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions