Repository navigation
Commit 53e1488
committed
test(spec,ui): the console twins refuse the aged-out App/Dashboard keys on their own; the kits' readers follow the one-major rule
The contract review of 93505c9 found the readers of the removed 16.x
kits that the removal had not been shipped with: the spec package's own
repo tests, the console's derived twins and their pins, and a react test
pin on the ActionDef mirror.
Spec repo tests (`test:repo`, Test Core 1/8):
- Three surviving-kit tests asserted a major-17 ledger row this change
deletes (`integration/ConnectorFieldMapping:transform`,
`ui/PageHeaderProps:icon`); they now assert the one-major rule — the 17
table is gone and the row with it.
- The check-mode leaf-collision fixtures lost their premise: the
`data.query.distinct` clause left with the 16.x conversions and the
`data/Index:type` tombstone with the 16.x tombstones. Re-picked to
`api/PackageInstallManifest:capabilities` against the registered
`manifest.capabilities` (kernel/Manifest's row, inherited through
`ManifestSchema.extend`) and `system/BookGroup:translations` against
`manifest.contributes.translations`.
- Five tree-scoped absence kits found the fixtures this change moved onto
surviving 17.x keys (migrate-meta-write, migrations.test,
view-union-retirement-prescription, lint-liveness-properties); each kit's
EXCLUDED set names the file with its reason.
Console twins (`@object-ui/types`): `AppComponentSchema` and
`DashboardComponentSchema` derive from the spec shapes by reference over
a `.passthrough()` base, so the ten tombstones that aged out of
`AppSchema` / `DashboardSchema` (version, homePageId, objects, apis,
sharing, embed, mobileNavigation, aria; aria, performance) stopped being
refused and were kept in silence. A new `agedOutSpecKeyRefusal` helper
(`zod/tombstone.zod.ts`) declares each as the console's own refusal:
`invalid_type` at the key's path, opening with the spec's unknown-key
sentence and the guide sentence (a copy pinned equal to the spec's export,
since the mirrors' import boundary admits no spec string), then where the
value went. The TS twins carry `?: never`; the parity, twins-by-reference
and dashboard-aria pins assert the refusal on both faces with the spec's
unknown-key verdict as the control. The strict `DashboardWidgetSchema`
needs no arm: its five aged-out keys meet the `.strict()` door, and the
report-chart pins now read zod's `unrecognized_keys` there with the spec's
guide-naming refusal as the contract leg.
driver-sql: the storage/presentation classification of FieldSchema keys
drops its `conditionalRequired` row (the test beside it refuses a
classification the spec no longer declares).
Console pins: the layout conversion-coverage row for
`page:card → properties.body[]` is gone with the conversion; the react
useActionEngine fixture keeps its stale `shortcut` on an entry of its own
(an object literal with a mistyped member is not also checked for excess
members, so the directive reported unused once `shortcut` left the
mirror). The SDUI manifest is re-recorded for the moved source digests.
Claude-Session: https://claude.ai/code/session_01H37vtTJRVBf1LkyYNW5yfo
Co-authored-by: Claude <noreply@anthropic.com>1 parent 93505c9 commit 53e1488
40 files changed
Lines changed: 802 additions & 229 deletions
File tree
- packages
- drivers/driver-sql/src
- spec
- scripts
- src
- ai
- data
- integration
- ui
- scripts/sdui-manifest.sources
- ui
- apps/console/src/__tests__
- examples/schema-catalog/test
- packages
- app-shell/src/views
- metadata-admin
- inspectors
- previews/__tests__
- layout/src/__tests__
- plugin-dashboard/src/__tests__
- plugin-detail/src/__tests__
- react/src/hooks/__tests__
- types/src
- __tests__
- zod
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
119 | 119 | | |
120 | 120 | | |
121 | 121 | | |
122 | | - | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
123 | 126 | | |
124 | 127 | | |
125 | 128 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
57 | 57 | | |
58 | 58 | | |
59 | 59 | | |
60 | | - | |
| 60 | + | |
61 | 61 | | |
62 | | - | |
63 | | - | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
64 | 70 | | |
65 | | - | |
66 | | - | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
67 | 78 | | |
68 | | - | |
69 | | - | |
| 79 | + | |
| 80 | + | |
70 | 81 | | |
71 | 82 | | |
72 | 83 | | |
| |||
242 | 253 | | |
243 | 254 | | |
244 | 255 | | |
245 | | - | |
| 256 | + | |
246 | 257 | | |
247 | 258 | | |
248 | 259 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
296 | 296 | | |
297 | 297 | | |
298 | 298 | | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
299 | 303 | | |
300 | 304 | | |
301 | 305 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
357 | 357 | | |
358 | 358 | | |
359 | 359 | | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
360 | 366 | | |
361 | 367 | | |
362 | 368 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
289 | 289 | | |
290 | 290 | | |
291 | 291 | | |
292 | | - | |
293 | | - | |
294 | | - | |
295 | | - | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
296 | 299 | | |
297 | 300 | | |
298 | 301 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
275 | 275 | | |
276 | 276 | | |
277 | 277 | | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
278 | 281 | | |
279 | | - | |
280 | 282 | | |
281 | 283 | | |
282 | 284 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
278 | 278 | | |
279 | 279 | | |
280 | 280 | | |
281 | | - | |
| 281 | + | |
282 | 282 | | |
283 | 283 | | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
284 | 287 | | |
285 | 288 | | |
286 | | - | |
287 | 289 | | |
288 | 290 | | |
289 | 291 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
308 | 308 | | |
309 | 309 | | |
310 | 310 | | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
311 | 315 | | |
312 | 316 | | |
313 | 317 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
361 | 361 | | |
362 | 362 | | |
363 | 363 | | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
364 | 371 | | |
365 | 372 | | |
366 | 373 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
250 | 250 | | |
251 | 251 | | |
252 | 252 | | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
253 | 256 | | |
254 | 257 | | |
255 | 258 | | |
| |||
0 commit comments