Commit 2bed4c3
* wip(#16319): refuse a field with no/unknown type at the registration door
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XTBcV7zZHmokdyQgXjbyEU
* wip(#16319): narrow the driver refusal to an absent type; triage objectql fixtures
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XTBcV7zZHmokdyQgXjbyEU
* test(#16319): pin the registration-door refusal, the boot seam and the two downstream defences
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XTBcV7zZHmokdyQgXjbyEU
* chore(#16319): changeset with the BREAKING note for the refused field-type class
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XTBcV7zZHmokdyQgXjbyEU
* fix(#16319): type the new tests' engine query options so the erasure ratchet holds
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XTBcV7zZHmokdyQgXjbyEU
* chore(#16319): delete the four test-typecheck-debt entries the fixture triage graduated
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XTBcV7zZHmokdyQgXjbyEU
* fix(#16319): spell the cross-field fixture's text columns `text`, the member the door admits
`CROSS_FIELD_OBJECT_FIELDS` declared `stage` and `owner` as `type: 'string'`.
`string` is absent from `FieldType`, so this PR's own registration door refused
the whole `cross_field_deal` object and the runtime suite's `beforeAll` threw
before its subject ran — CI shard `Test Core (3/6)`, 1 failed | 250 passed.
`text` is not a re-typing. `canonicalizeSqlType('varchar(255)')` is `'text'` and
`suggestFieldTypeForSqlType('varchar(255)')` is `'text'`, both pinned in
`spec/data/type-compat.test.ts`, so `text` is the spelling of the column
`string` was already producing. Matches `id` / `organization_id` in the same
map and the text columns of `CROSS_FIELD_OFFSET_OBJECT_FIELDS` below it.
The emitted column does move `varchar(255)` -> `TEXT` (measured on sqlite-wasm),
which is inert here: no index keys either column, `initObjects` is passed no
indexes, and the longest value in the corpus is four characters. All four
`initObjects` consumers stay green.
A static census over the tree — `fields:` regions resolved through cross-package
imports, classified as ObjectStack field maps, `type` checked against the
`FieldType` union read out of `field.zod.ts` — reports these two as the only
non-member declarations reaching a `registerObject` door. After this change that
count is zero; the 108 that remain all reach `driver.initObjects` only, which the
changeset's scope section deliberately leaves alone.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XTBcV7zZHmokdyQgXjbyEU
* fix(#16319): spell the schedule dogfood fixture's `touched` flag `boolean`
`packages/qa/dogfood/test/fixtures/schedule-organization-fixture.ts` declared
`touched: { type: 'checkbox' }`. `checkbox` is not a `FieldType` member — the
enum spells the multi-value checkbox GROUP `checkboxes` and the scalar flag
`boolean` — so this PR's registration door refuses the whole `sched_org_target`
declaration and both #16659 pins fail at `bootStack` on `[sqlite-wasm]` and
`[memory]`.
Neither side is wrong alone. The declaration landed in ecdfc94 (#17334),
after this branch's merge base `d57611dfd3`, where nothing refused it; the door
is this card's deliverable. The merge queue tests the PR merged into current
`main`, which is the first place the two meet — so this is the merge, not a
defect in either diff.
`boolean` and not `checkboxes`: the fixture's `update_record` node writes
`touched: true`, and both pins read it back as a scalar
(`r.touched === true || r.touched === 1`, `Boolean(r.touched)`). `checkboxes`
stores a JSON array of option values, whose EMPTY set is truthy — the sweep
pin's differential would then report rows nothing touched as touched. The
member is chosen from the enum's own grouping and from what the tests assert,
not from the refusal message's Levenshtein suggestion.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XTBcV7zZHmokdyQgXjbyEU
---------
Co-authored-by: Claude <noreply@anthropic.com>
1 parent 0ee32ed commit 2bed4c3
19 files changed
Lines changed: 1293 additions & 55 deletions
File tree
- .changeset
- packages
- cli/src/commands
- drivers/driver-sql/src
- metadata-core/src
- metadata-protocol/src
- objectql
- src
- qa/dogfood/test/fixtures
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
Lines changed: 129 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
0 commit comments