|
1 | 1 | { |
2 | 2 | "$comment": "Intentional spec retirements the Spec Shape Gate reads as `known` instead of red. One entry per retirement, written by the accepting seat when the downstream (objectui) card is filed, deleted when that card closes. Every entry carries exactly: retired, objectstack_pr, objectstack_commit (40-hex merge commit), downstream_card (owner/repo#N), registered_at (YYYY-MM-DD), matches (non-empty; each pattern names a repo-relative objectui `file` -- `*` within a segment, `**` across -- plus at least one of `code` (TS<digits>) or `message` (substring)). A file alone is refused. The reader, its grammar and its refusals: scripts/ci/spec-shape-gate.mjs (THE REGISTRY).", |
3 | | - "retirements": [ |
4 | | - { |
5 | | - "retired": "the page component's `visibility` and the view form's `visibleOn` (field and section), retired as keys -- retiredKey() tombstones naming `visibleWhen` (F4 of #23543) -- objectui still passes the page component's `visibility` to an expression argument, and its expressions test (compiled only by the package's chained test project) still authors that key", |
6 | | - "objectstack_pr": 23836, |
7 | | - "objectstack_commit": "105902f10ae8124a5e965cb24f7b30681fd9fae2", |
8 | | - "downstream_card": "objectstack-ai/objectui#12654", |
9 | | - "registered_at": "2026-10-16", |
10 | | - "matches": [ |
11 | | - { |
12 | | - "file": "packages/react/src/SchemaRenderer.tsx", |
13 | | - "code": "TS2345", |
14 | | - "message": "Argument of type '{ '[REMOVED] Key retired: run `os validate` for its migration.': never; }' is not assignable to parameter of type 'string | boolean | { dialect?: string | undefined; source?: string | undefined; } | undefined'." |
15 | | - }, |
16 | | - { |
17 | | - "file": "packages/react/src/__tests__/SchemaRenderer.expressions.test.tsx", |
18 | | - "code": "TS2322", |
19 | | - "message": "Type 'string' is not assignable to type '{ '[REMOVED] Key retired: run `os validate` for its migration.': never; }'." |
20 | | - } |
21 | | - ] |
22 | | - }, |
23 | | - { |
24 | | - "retired": "nothing retired -- the spec ADDED an optional key: the select option's lifecycle `kind` (`open` | `won` | `lost`, required only under a `stageField`, #23809). objectui's select-option convergence pins assert by design that the converged form and metadata faces gained no key beyond `description` / `default`, so a new spec key reds them (TS2344 `Equal` pins, compiled only by the package's chained test project); the entry is deleted when objectui re-pins the faces", |
25 | | - "objectstack_pr": 23846, |
26 | | - "objectstack_commit": "adad73f71483abf84b470e90367fe8080c44a4e0", |
27 | | - "downstream_card": "objectstack-ai/objectui#12711", |
28 | | - "registered_at": "2026-10-16", |
29 | | - "matches": [ |
30 | | - { |
31 | | - "file": "packages/types/src/__tests__/select-option-tier1-convergence-7014.test.ts", |
32 | | - "code": "TS2344", |
33 | | - "message": "Type 'false' does not satisfy the constraint 'true'." |
34 | | - } |
35 | | - ] |
36 | | - }, |
37 | | - { |
38 | | - "retired": "a page action row's own `patch` (action:button, action:icon and the action:group / action:menu member), retired as a key -- a retiredKey() tombstone sending the author to the `patch` of the action the row's `name` names (#24394) -- objectui's action-button undo test still authors `patch` on an `action:button` node", |
39 | | - "objectstack_pr": 24442, |
40 | | - "objectstack_commit": "69f342b92470e0b66aa9b17ccd2fc7db04e4e568", |
41 | | - "downstream_card": "objectstack-ai/objectui#13022", |
42 | | - "registered_at": "2026-10-19", |
43 | | - "matches": [ |
44 | | - { |
45 | | - "file": "packages/components/src/renderers/action/__tests__/action-button-undoable-11168.test.tsx", |
46 | | - "code": "TS2353", |
47 | | - "message": "Object literal may only specify known properties, and 'status' does not exist in type '{ \"[REMOVED] Key retired: run `os validate` for its migration.\": never; }'." |
48 | | - } |
49 | | - ] |
50 | | - }, |
51 | | - { |
52 | | - "retired": "the list view's and the page `list-view` node's `addRecord.mode` and `addRecord.formView`, retired as keys -- retiredKey() tombstones on the one AddRecordConfig every list-view door shares, with ADR-0087 drop conversions (`add-record-mode-form-view-removed`) -- objectui still authors both keys in two spec-alignment tests in `packages/types` that type a value carrying them (an `AddRecordConfig` in p2-spec-exports, a `ListViewSchema` in p1-spec-alignment); the entry is deleted when the downstream card closes", |
53 | | - "objectstack_pr": 24970, |
54 | | - "objectstack_commit": "fde7456352318872704c24feadaa6660b9bc649b", |
55 | | - "downstream_card": "objectstack-ai/objectui#13308", |
56 | | - "registered_at": "2026-10-21", |
57 | | - "matches": [ |
58 | | - { |
59 | | - "file": "packages/types/src/__tests__/p2-spec-exports.test.ts", |
60 | | - "code": "TS2322", |
61 | | - "message": "Type 'string' is not assignable to type '{ '[REMOVED] Key retired: run `os validate` for its migration.': never; }'." |
62 | | - }, |
63 | | - { |
64 | | - "file": "packages/types/src/__tests__/p1-spec-alignment.test.ts", |
65 | | - "code": "TS2322", |
66 | | - "message": "Type 'string' is not assignable to type '{ '[REMOVED] Key retired: run `os validate` for its migration.': never; }'." |
67 | | - } |
68 | | - ] |
69 | | - }, |
70 | | - { |
71 | | - "retired": "nothing retired -- the spec WIDENED a union: `DroppedFieldsEvent['reason']` gained a fifth arm, `stored_expression` (a stored field whose declared expression the engine computes on every write). objectui's batch-6 spec-symbol pin `_ReasonIsTheEnum` asserts the exact four-member union (`readonly`, `readonly_when`, `primary_key`, `computed`) with a TS2344 `Equal` pin, so the widened union reds it; the entry is deleted when the downstream card closes", |
72 | | - "objectstack_pr": 24778, |
73 | | - "objectstack_commit": "7532ea3c0893a08a518739aebfe7c0751211f53d", |
74 | | - "downstream_card": "objectstack-ai/objectui#13309", |
75 | | - "registered_at": "2026-10-21", |
76 | | - "matches": [ |
77 | | - { |
78 | | - "file": "packages/data-objectstack/src/spec-symbol-batch6.test.ts", |
79 | | - "code": "TS2344", |
80 | | - "message": "Type 'false' does not satisfy the constraint 'true'." |
81 | | - } |
82 | | - ] |
83 | | - } |
84 | | - ] |
| 3 | + "retirements": [] |
85 | 4 | } |
0 commit comments