Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 1 addition & 82 deletions scripts/ci/spec-shape-retirements.json
Original file line number Diff line number Diff line change
@@ -1,85 +1,4 @@
{
"$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).",
"retirements": [
{
"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",
"objectstack_pr": 23836,
"objectstack_commit": "105902f10ae8124a5e965cb24f7b30681fd9fae2",
"downstream_card": "objectstack-ai/objectui#12654",
"registered_at": "2026-10-16",
"matches": [
{
"file": "packages/react/src/SchemaRenderer.tsx",
"code": "TS2345",
"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'."
},
{
"file": "packages/react/src/__tests__/SchemaRenderer.expressions.test.tsx",
"code": "TS2322",
"message": "Type 'string' is not assignable to type '{ '[REMOVED] Key retired: run `os validate` for its migration.': never; }'."
}
]
},
{
"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",
"objectstack_pr": 23846,
"objectstack_commit": "adad73f71483abf84b470e90367fe8080c44a4e0",
"downstream_card": "objectstack-ai/objectui#12711",
"registered_at": "2026-10-16",
"matches": [
{
"file": "packages/types/src/__tests__/select-option-tier1-convergence-7014.test.ts",
"code": "TS2344",
"message": "Type 'false' does not satisfy the constraint 'true'."
}
]
},
{
"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",
"objectstack_pr": 24442,
"objectstack_commit": "69f342b92470e0b66aa9b17ccd2fc7db04e4e568",
"downstream_card": "objectstack-ai/objectui#13022",
"registered_at": "2026-10-19",
"matches": [
{
"file": "packages/components/src/renderers/action/__tests__/action-button-undoable-11168.test.tsx",
"code": "TS2353",
"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; }'."
}
]
},
{
"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",
"objectstack_pr": 24970,
"objectstack_commit": "fde7456352318872704c24feadaa6660b9bc649b",
"downstream_card": "objectstack-ai/objectui#13308",
"registered_at": "2026-10-21",
"matches": [
{
"file": "packages/types/src/__tests__/p2-spec-exports.test.ts",
"code": "TS2322",
"message": "Type 'string' is not assignable to type '{ '[REMOVED] Key retired: run `os validate` for its migration.': never; }'."
},
{
"file": "packages/types/src/__tests__/p1-spec-alignment.test.ts",
"code": "TS2322",
"message": "Type 'string' is not assignable to type '{ '[REMOVED] Key retired: run `os validate` for its migration.': never; }'."
}
]
},
{
"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",
"objectstack_pr": 24778,
"objectstack_commit": "7532ea3c0893a08a518739aebfe7c0751211f53d",
"downstream_card": "objectstack-ai/objectui#13309",
"registered_at": "2026-10-21",
"matches": [
{
"file": "packages/data-objectstack/src/spec-symbol-batch6.test.ts",
"code": "TS2344",
"message": "Type 'false' does not satisfy the constraint 'true'."
}
]
}
]
"retirements": []
}
Loading