Repository navigation
Commit 809cbc9
committed
feat(spec): refuse undeclared keys on address and location values (#13802)
Maintainer ruling 2026-09-01 (option A): LocationValueSchema and
AddressSchema (= AddressValueSchema) were all-optional stripping z.objects,
so a value with a wrong key set parsed green and the wrong keys vanished —
the showcase seed's postal_code (#13388) was accepted, dropped and rendered
as an empty ZIP box, and a stored-value scan over the class could only
report a clean count. Both are strictObject now; FileValueSchema stays the
one deliberate looseObject. The refusal names the key and the rename
(postal_code/zipCode -> postalCode, latitude/longitude -> lat/lng).
Ordered census first: every in-repo corpus that writes address/location
values (8459 files, 196,098 leaf literals, 57 shaped literals) carries zero
keys outside the declared sets other than batch D's own tolerance pin, which
is repinned here — the repair commit the ruling ordered is empty by
measurement (#13388's seed fix landed at #14090).
Where the refusal bites is ADR-0104's unchanged evidence gate: defaultValue
literals and action params reject at authoring; record writes reject only on
a deployment that attested adr-0104-value-shapes (or the env opt-in) and stay
warn-first elsewhere; os migrate value-shapes now counts the key; no read
path parses these shapes. Strictness-ledger triage row re-verdicted
open -> authorable with the census and the migration note, the strip-map row
dropped (reverse pin), finding 21 added, counts regenerated; D3 semantic
entry address-location-value-unknown-keys-refused registered under 18.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GDA48PuRFrHyRfdkBz8m211 parent a39b02a commit 809cbc9
14 files changed
Lines changed: 624 additions & 43 deletions
File tree
- .changeset
- content/docs
- data-modeling
- protocol/objectql
- docs/audits
- packages
- objectql/src/validation
- rest/src
- spec/src
- data
- migrations
- entries/semantic
| 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 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
528 | 528 | | |
529 | 529 | | |
530 | 530 | | |
531 | | - | |
| 531 | + | |
532 | 532 | | |
533 | 533 | | |
534 | 534 | | |
535 | 535 | | |
536 | 536 | | |
537 | 537 | | |
538 | | - | |
| 538 | + | |
539 | 539 | | |
540 | 540 | | |
541 | 541 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1048 | 1048 | | |
1049 | 1049 | | |
1050 | 1050 | | |
| 1051 | + | |
| 1052 | + | |
| 1053 | + | |
| 1054 | + | |
| 1055 | + | |
| 1056 | + | |
| 1057 | + | |
1051 | 1058 | | |
1052 | 1059 | | |
1053 | 1060 | | |
| |||
1073 | 1080 | | |
1074 | 1081 | | |
1075 | 1082 | | |
1076 | | - | |
| 1083 | + | |
| 1084 | + | |
| 1085 | + | |
| 1086 | + | |
1077 | 1087 | | |
1078 | 1088 | | |
1079 | 1089 | | |
| |||
Lines changed: 8 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | | - | |
26 | | - | |
| 25 | + | |
| 26 | + | |
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | | - | |
| 34 | + | |
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
48 | | - | |
| 48 | + | |
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
52 | | - | |
| 52 | + | |
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
| |||
176 | 176 | | |
177 | 177 | | |
178 | 178 | | |
179 | | - | |
| 179 | + | |
180 | 180 | | |
181 | 181 | | |
182 | 182 | | |
| |||
186 | 186 | | |
187 | 187 | | |
188 | 188 | | |
189 | | - | |
190 | 189 | | |
191 | 190 | | |
192 | 191 | | |
193 | 192 | | |
194 | 193 | | |
195 | | - | |
| 194 | + | |
196 | 195 | | |
197 | 196 | | |
198 | 197 | | |
199 | 198 | | |
200 | 199 | | |
201 | | - | |
| 200 | + | |
202 | 201 | | |
203 | 202 | | |
204 | 203 | | |
| |||
0 commit comments