Skip to content

Commit 3a57e3d

Browse files
committed
fix(spec): true up the variant-docs and strictness ledgers the batch removal moved (#4618)
CI's "Spec property liveness" job runs four gates, not one. `check:liveness` itself was fine; the two that broke are the ledgers that track the SHAPE of the code the batch removal changed. - `variant-docs.json`: the outer `DataEngineRequestSchema` union carried a `batch` variant, and a SECOND entry described the inner union inside `DataEngineBatchRequestSchema.requests` — the same member set minus `batch`. With the batch schema gone the inner union no longer exists and the outer one narrowed to exactly the inner one's old key, so the two entries collapse into one. Keeping both would have left an entry whose union is gone, which is what the gate reported. - The strictness ledger's `data-engine.zod.ts` row (14 → 13 `z.object(` sites) and the `data/` section header it sums into (162 → 161). Both are hand-maintained maps of the code, and the point of the gates is that a map which drifts is worse than none because it gets followed. Verified by running all 17 `@objectstack/spec` check:* scripts, not just the four in the failing job. Refs: #4618, ADR-0119 D3 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NKcGqCYCCpMkB5UW8jNPXx
1 parent ed1c772 commit 3a57e3d

2 files changed

Lines changed: 4 additions & 10 deletions

File tree

docs/audits/2026-07-unknown-key-strictness-ledger.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -455,12 +455,12 @@ tightening (the #4001 "sharing-rule lesson": candidates, not verdicts).
455455
| `notification.zod.ts` | 1 | authorable (p) | **#4610 dropped two sites** — the `./ui` `Notification` (toast/banner instance) and `NotificationConfig` (toaster global config) shapes were removed: zero importers in all three repos, and both shadowed live names owned elsewhere (`./api` owns the inbox row). What remains is `NotificationActionSchema`, part of the presentation vocabulary the ui entry keeps |
456456
| `sharing.zod.ts` | 2 | authorable (p) | public-sharing config |
457457

458-
### `data/`162 sites
458+
### `data/`161 sites
459459

460460
| File | Sites | Class | Note |
461461
|---|---|---|---|
462462
| `object.zod.ts` | 20 | authorable | top-level already guarded (#1535); inner blocks partially strict |
463-
| `data-engine.zod.ts` | 14 | wire (p) | engine contract shapes |
463+
| `data-engine.zod.ts` | 13 | wire (p) | engine contract shapes (was 14 — `DataEngineBatchRequestSchema` retired with `IDataEngine.batch?`, #4618) |
464464
| `external-lookup.zod.ts` | 12 | mixed (p) | authored config + wire results |
465465
| `seed-loader.zod.ts` | 12 | mixed (p) | seed file shapes are authored; loader state is runtime |
466466
| `field.zod.ts` | 11 | authorable | partially strict |

packages/spec/variant-docs.json

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -126,17 +126,11 @@
126126
"exempt": "not-authorable",
127127
"reason": "API response envelope, not authored metadata."
128128
},
129-
{
130-
"key": "method:aggregate|batch|count|delete|execute|find|findOne|insert|update|vectorFind",
131-
"label": "data-engine request",
132-
"exempt": "not-authorable",
133-
"reason": "Engine RPC contract."
134-
},
135129
{
136130
"key": "method:aggregate|count|delete|execute|find|findOne|insert|update|vectorFind",
137-
"label": "data-engine batch request item",
131+
"label": "data-engine request",
138132
"exempt": "not-authorable",
139-
"reason": "Engine RPC contract; the batch member set excludes `batch` itself."
133+
"reason": "Engine RPC contract. Two entries collapsed into this one when #4618 retired `IDataEngine.batch?`: the outer union carried a `batch` variant, and a second entry described the inner union inside `DataEngineBatchRequestSchema.requests` — this same member set minus `batch`. That inner union is gone with the schema, and the outer one narrowed to exactly this set."
140134
},
141135
{
142136
"key": "type:delete|insert|retain",

0 commit comments

Comments
 (0)