diff --git a/scripts/engine-double-contract.baseline.json b/scripts/engine-double-contract.baseline.json index 32938c004a..af52f9afcd 100644 --- a/scripts/engine-double-contract.baseline.json +++ b/scripts/engine-double-contract.baseline.json @@ -35,22 +35,22 @@ "file": "packages/metadata-protocol/src/protocol-publish-drafts-org-scope.test.ts", "unguarded": 1, "kind": "DEBT", - "why": "@objectstack/metadata-protocol does not depend on @objectstack/objectql. Pinning needs a devDependency + lockfile change, which is a separate reviewable act.", - "closes": "add @objectstack/objectql to devDependencies, then open the fake's delete with assertEngineDeleteDispatch(opts)" + "why": "MEASURED (#4987): the devDependency route this entry used to prescribe DOES NOT EXIST — it is cyclic, not merely unreviewed. @objectstack/objectql depends on @objectstack/metadata-protocol in `dependencies` (`workspace:*`), so any reverse edge closes a cycle by construction. Re-measured on #4987's branch rather than cited: the edge was added to metadata-protocol's devDependencies and turbo 2.10.7 refused BOTH task graphs outright — `WARNING Circular package dependency detected: @objectstack/objectql, @objectstack/metadata-protocol` / `x Cyclic dependency detected: @objectstack/objectql#build, @objectstack/metadata-protocol#build`, exit 1 from `turbo run build --filter=@objectstack/metadata-protocol --dry` and from the same command with `test` — then the edge was reverted. This is exactly the criterion the `packages/spec/src/contracts/data-engine.test.ts` EXEMPT entry below already states ('it cannot be pinned even in principle ... the import would invert the dependency'); it was simply never applied to the metadata-protocol entries. The entry stays DEBT and not EXEMPT because what cannot exist is the devDependency ROUTE, while the entry itself is closable by sinking the predicate — see `closes`. Whether this file's own fake delete is currently exercised was NOT probed: #4987's file face is this ledger's text only. Per this ledger's own rule that changes nothing, since it would be an argument about this file rather than about the contract.", + "closes": "sink assertEngineDeleteDispatch into a package BOTH sides already depend on — tracked as #5619 — then open the fake's delete with it. Verified available on #4987's branch: @objectstack/objectql and @objectstack/metadata-protocol both already depend on @objectstack/metadata-core (`workspace:*`), whose own `dependencies` are just @objectstack/spec + zod and do NOT include objectql, so the sink adds no new edge; the producer `packages/objectql/src/engine-delete-dispatch.ts` has zero imports, so this is a move and not a refactor. @objectstack/spec/contracts is the other candidate, but only if the predicate belongs to the contract layer — do not pick it by default. The devDependency route is closed by the cycle recorded in `why`, for this file and for every other metadata-protocol entry in this ledger alike." }, { "file": "packages/metadata-protocol/src/protocol.runtime-authoring-gate.test.ts", "unguarded": 1, "kind": "DEBT", - "why": "@objectstack/metadata-protocol does not depend on @objectstack/objectql. Pinning needs a devDependency + lockfile change, which is a separate reviewable act.", - "closes": "add @objectstack/objectql to devDependencies, then open the fake's delete with assertEngineDeleteDispatch(opts)" + "why": "MEASURED (#4987): the devDependency route this entry used to prescribe DOES NOT EXIST — it is cyclic, not merely unreviewed. @objectstack/objectql depends on @objectstack/metadata-protocol in `dependencies` (`workspace:*`), so any reverse edge closes a cycle by construction. Re-measured on #4987's branch rather than cited: the edge was added to metadata-protocol's devDependencies and turbo 2.10.7 refused BOTH task graphs outright — `WARNING Circular package dependency detected: @objectstack/objectql, @objectstack/metadata-protocol` / `x Cyclic dependency detected: @objectstack/objectql#build, @objectstack/metadata-protocol#build`, exit 1 from `turbo run build --filter=@objectstack/metadata-protocol --dry` and from the same command with `test` — then the edge was reverted. This is exactly the criterion the `packages/spec/src/contracts/data-engine.test.ts` EXEMPT entry below already states ('it cannot be pinned even in principle ... the import would invert the dependency'); it was simply never applied to the metadata-protocol entries. The entry stays DEBT and not EXEMPT because what cannot exist is the devDependency ROUTE, while the entry itself is closable by sinking the predicate — see `closes`. Whether this file's own fake delete is currently exercised was NOT probed: #4987's file face is this ledger's text only. Per this ledger's own rule that changes nothing, since it would be an argument about this file rather than about the contract.", + "closes": "sink assertEngineDeleteDispatch into a package BOTH sides already depend on — tracked as #5619 — then open the fake's delete with it. Verified available on #4987's branch: @objectstack/objectql and @objectstack/metadata-protocol both already depend on @objectstack/metadata-core (`workspace:*`), whose own `dependencies` are just @objectstack/spec + zod and do NOT include objectql, so the sink adds no new edge; the producer `packages/objectql/src/engine-delete-dispatch.ts` has zero imports, so this is a move and not a refactor. @objectstack/spec/contracts is the other candidate, but only if the predicate belongs to the contract layer — do not pick it by default. The devDependency route is closed by the cycle recorded in `why`, for this file and for every other metadata-protocol entry in this ledger alike." }, { "file": "packages/metadata-protocol/src/protocol.save-flow-canonicalization.test.ts", "unguarded": 1, "kind": "DEBT", - "why": "@objectstack/metadata-protocol does not depend on @objectstack/objectql. Pinning needs a devDependency + lockfile change, which is a separate reviewable act.", - "closes": "add @objectstack/objectql to devDependencies, then open the fake's delete with assertEngineDeleteDispatch(opts)" + "why": "MEASURED (#4987): the devDependency route this entry used to prescribe DOES NOT EXIST — it is cyclic, not merely unreviewed. @objectstack/objectql depends on @objectstack/metadata-protocol in `dependencies` (`workspace:*`), so any reverse edge closes a cycle by construction. Re-measured on #4987's branch rather than cited: the edge was added to metadata-protocol's devDependencies and turbo 2.10.7 refused BOTH task graphs outright — `WARNING Circular package dependency detected: @objectstack/objectql, @objectstack/metadata-protocol` / `x Cyclic dependency detected: @objectstack/objectql#build, @objectstack/metadata-protocol#build`, exit 1 from `turbo run build --filter=@objectstack/metadata-protocol --dry` and from the same command with `test` — then the edge was reverted. This is exactly the criterion the `packages/spec/src/contracts/data-engine.test.ts` EXEMPT entry below already states ('it cannot be pinned even in principle ... the import would invert the dependency'); it was simply never applied to the metadata-protocol entries. The entry stays DEBT and not EXEMPT because what cannot exist is the devDependency ROUTE, while the entry itself is closable by sinking the predicate — see `closes`. Whether this file's own fake delete is currently exercised was NOT probed: #4987's file face is this ledger's text only. Per this ledger's own rule that changes nothing, since it would be an argument about this file rather than about the contract.", + "closes": "sink assertEngineDeleteDispatch into a package BOTH sides already depend on — tracked as #5619 — then open the fake's delete with it. Verified available on #4987's branch: @objectstack/objectql and @objectstack/metadata-protocol both already depend on @objectstack/metadata-core (`workspace:*`), whose own `dependencies` are just @objectstack/spec + zod and do NOT include objectql, so the sink adds no new edge; the producer `packages/objectql/src/engine-delete-dispatch.ts` has zero imports, so this is a move and not a refactor. @objectstack/spec/contracts is the other candidate, but only if the predicate belongs to the contract layer — do not pick it by default. The devDependency route is closed by the cycle recorded in `why`, for this file and for every other metadata-protocol entry in this ledger alike." }, { "file": "packages/metadata-protocol/src/sys-metadata-repository.draft-drain.test.ts", @@ -70,8 +70,8 @@ "file": "packages/metadata-protocol/src/sys-metadata-repository.recorded-by.test.ts", "unguarded": 1, "kind": "DEBT", - "why": "@objectstack/metadata-protocol does not depend on @objectstack/objectql. Pinning needs a devDependency + lockfile change, which is a separate reviewable act.", - "closes": "add @objectstack/objectql to devDependencies, then open the fake's delete with assertEngineDeleteDispatch(opts)" + "why": "MEASURED (#4987): the devDependency route this entry used to prescribe DOES NOT EXIST — it is cyclic, not merely unreviewed. @objectstack/objectql depends on @objectstack/metadata-protocol in `dependencies` (`workspace:*`), so any reverse edge closes a cycle by construction. Re-measured on #4987's branch rather than cited: the edge was added to metadata-protocol's devDependencies and turbo 2.10.7 refused BOTH task graphs outright — `WARNING Circular package dependency detected: @objectstack/objectql, @objectstack/metadata-protocol` / `x Cyclic dependency detected: @objectstack/objectql#build, @objectstack/metadata-protocol#build`, exit 1 from `turbo run build --filter=@objectstack/metadata-protocol --dry` and from the same command with `test` — then the edge was reverted. This is exactly the criterion the `packages/spec/src/contracts/data-engine.test.ts` EXEMPT entry below already states ('it cannot be pinned even in principle ... the import would invert the dependency'); it was simply never applied to the metadata-protocol entries. The entry stays DEBT and not EXEMPT because what cannot exist is the devDependency ROUTE, while the entry itself is closable by sinking the predicate — see `closes`. Whether this file's own fake delete is currently exercised was NOT probed: #4987's file face is this ledger's text only. Per this ledger's own rule that changes nothing, since it would be an argument about this file rather than about the contract.", + "closes": "sink assertEngineDeleteDispatch into a package BOTH sides already depend on — tracked as #5619 — then open the fake's delete with it. Verified available on #4987's branch: @objectstack/objectql and @objectstack/metadata-protocol both already depend on @objectstack/metadata-core (`workspace:*`), whose own `dependencies` are just @objectstack/spec + zod and do NOT include objectql, so the sink adds no new edge; the producer `packages/objectql/src/engine-delete-dispatch.ts` has zero imports, so this is a move and not a refactor. @objectstack/spec/contracts is the other candidate, but only if the predicate belongs to the contract layer — do not pick it by default. The devDependency route is closed by the cycle recorded in `why`, for this file and for every other metadata-protocol entry in this ledger alike." }, { "file": "packages/plugins/plugin-approvals/src/approval-actor-impersonation.test.ts",