Skip to content

Commit 4cdba20

Browse files
committed
Regenerate merged-tree artifacts: dropped-refinements measurement + docs
Discharges the os-regen deferral recorded by the prior merge commit. pnpm --filter @objectstack/spec gen:schema on the merged tree (HEAD is now the merge commit, so this reads the correct merge-base) reports: 569 refinement site(s) across 204 published schema(s) reach the RUNTIME and not the published JSON Schema; 357 refinement site(s) DID reach the file; 9 had no JSON form on either side to compare. Those four numbers replace the placeholder zeros in packages/spec/dropped-refinements.baseline.json's measured header. entries needed no changes: the gate reported zero undeclared, miscounted, repaired, vanished or unreasoned sites on this run. check:authorable-surface (same script, --check mode) independently reconfirms 204/569/357/9. content/docs/references/data/object.mdx is regenerated via gen:docs from the rebuilt json-schema/ tree (it renders from that gitignored directory, which a merge cannot bring in a text merge).
1 parent 2da35eb commit 4cdba20

2 files changed

Lines changed: 5 additions & 5 deletions

File tree

‎content/docs/references/data/object.mdx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,7 @@ const result = ApiMethod.parse(data);
374374
| **selection** | `{ type?: Enum<'none' \| 'single' \| 'multiple'> }` | optional | Row selection configuration |
375375
| **navigation** | `{ mode?: Enum<'page' \| 'drawer' \| 'modal' \| 'split' \| 'popover' \| 'new_window' \| 'none'>; preventNavigation?: boolean; openNewTab?: boolean; size?: Enum<'auto' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| 'full'>; … }` | optional | Configuration for item click navigation (page, drawer, modal, etc.) |
376376
| **pagination** | `{ pageSize?: integer; pageSizeOptions?: integer[] }` | optional | Pagination configuration |
377-
| **kanban** | `{ groupByField: string; summarizeField?: string; titleField?: string; columns: string[] }` | optional | Kanban-board configuration — applies when the view renders as a kanban layout |
377+
| **kanban** | `{ groupByField: string; summarizeField?: string; titleField?: string; columns: string[]; … }` | optional | Kanban-board configuration — applies when the view renders as a kanban layout |
378378
| **calendar** | `{ startDateField: string; endDateField?: string; titleField?: string; colorField?: string; … }` | optional | Calendar configuration — applies when the view renders as a calendar layout |
379379
| **gantt** | `{ startDateField: string; endDateField: string; titleField: string; progressField?: string; … }` | optional | Gantt-timeline configuration — applies when the view renders as a gantt layout |
380380
| **gallery** | `{ coverField?: string; coverFit?: Enum<'cover' \| 'contain'>; cardSize?: Enum<'small' \| 'medium' \| 'large'>; titleField?: string; … }` | optional | Gallery/card view configuration |

‎packages/spec/dropped-refinements.baseline.json‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
"description": "Shrink-only ledger of every PUBLISHED JSON Schema that is STILL WIDER than the Zod type it was generated from, because a rule written as `.refine()` reaches the runtime and not the file (#18670). `z.toJSONSchema()` has no arm for a `custom` check: a plain record, the same record with a `.refine()`, and the same record with an ABORTING `.refine()` all project byte-identically (measured on zod 4.4.3, the version packages/spec resolves). So a document one of these files ACCEPTS can still be refused at parse time, and an author -- or an AI -- validating against packages/spec/json-schema/** finds out a release later. Each `sites` path is a position under that schema at which a refinement is dropped; the same paths are written onto the artifact itself as `x-dropped-refinements`. Item 2 closed the first patterns: a refinement DECLARED through the closed list in src/shared/refinement-projection.ts is emitted into the published file, reads `projected` rather than `dropped`, and its row LEAVES this ledger in the same PR -- which is why the ledger shrinks and never grows on a repair. Every refinement outside that closed list stays here, and adding an arm to the list is a public-contract decision, not a refactor. Hand-edited on purpose and with no `gen:` script: a generator would let a new gap be admitted by running a command instead of by a decision, which is the silence this ledger exists to end. Adding, removing or moving a site fails packages/spec/scripts/build-schemas.ts until the line moves with it, and the failure prints the corrected entry in full. ⛔ Do not delete or weaken a refinement to shorten this file -- the runtime rule is correct; it is the projection that is silent, and the remedy is to teach the closed list a NAMED pattern, never to drop the rule.",
33
"measured": {
44
"zod": "4.4.3",
5-
"publishedSchemasWithDroppedRefinements": 0,
6-
"droppedRefinementSites": 0,
7-
"refinementSitesThatDidProject": 0,
8-
"refinementSitesWithNoJsonFormToCompare": 0
5+
"publishedSchemasWithDroppedRefinements": 204,
6+
"droppedRefinementSites": 569,
7+
"refinementSitesThatDidProject": 357,
8+
"refinementSitesWithNoJsonFormToCompare": 9
99
},
1010
"entries": {
1111
"ai/BlueprintField": {

0 commit comments

Comments
 (0)