Repository navigation
Commit 4125978
committed
fix(ownir): bind sourceLine to exactly the paths load() checks
Three review findings on 9f909c7. All three real, and the middle one is
mine — the schema edit was a blanket search-and-replace and it overshot.
1. `sourceColumn` refused `null`. `load()` accepts `column: null`
(`_check_column` returns early on None) and §4.2 says so in the same
commit, so the schema contradicted both. Now
`["integer", "null"]`; `minimum`/`maximum` only constrain numbers, so
real values keep their bounds. Pre-existing, but §4.2 made it visible.
2. `resourceRecord.line` and every `flowOp.line` were bound to
`sourceLine` — the two paths §4.2 documents, in this same PR, as
validated NOWHERE by `load()`. Binding them makes a producer
schema-invalid on documents the door accepts, which is the same
cross-consumer mismatch this change exists to remove, pointing the
other way. Ten sites reverted to unrestricted integers.
3. `services[].ctor_line` was NOT bound, and `load()` does check it, so a
schema-valid document could fail at the door. The blanket replace
matched `"line"` and this key is `ctor_line`. Now bound.
Both directions are defects, and this file shipped one of each. So the
test no longer spot-checks four numbers — it asserts the whole binding
map:
bound service.line, service.ctor_line, site.line, effect.line,
binding.line, param.line, protocolEvent.line
unbound resourceRecord.line, flowOp.line
with the reason attached to each side: bound because `load()` checks it,
unbound because §4.2 records that it does not. A stale entry fails too —
a def that no longer has the key stops being evidence.
Three mutations, all caught: binding `flowOp.line`, unbinding
`ctor_line`, and reverting `sourceColumn` to integer-only.
Also: the first attempt at this fix round-tripped the schema through
`json.dumps` and produced a 604-line reformat for a 12-line change. Redone
as text edits. A diff nobody can read is not a small change however few
things it means to say.
Refs #250, #259.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CJF7MBi1ijU5m9cJVWgQsM1 parent 9f909c7 commit 4125978
2 files changed
Lines changed: 65 additions & 13 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
51 | | - | |
| 51 | + | |
52 | 52 | | |
53 | 53 | | |
54 | 54 | | |
| |||
108 | 108 | | |
109 | 109 | | |
110 | 110 | | |
111 | | - | |
| 111 | + | |
112 | 112 | | |
113 | 113 | | |
114 | 114 | | |
| |||
190 | 190 | | |
191 | 191 | | |
192 | 192 | | |
193 | | - | |
| 193 | + | |
194 | 194 | | |
195 | 195 | | |
196 | 196 | | |
| |||
202 | 202 | | |
203 | 203 | | |
204 | 204 | | |
205 | | - | |
| 205 | + | |
206 | 206 | | |
207 | 207 | | |
208 | 208 | | |
| |||
213 | 213 | | |
214 | 214 | | |
215 | 215 | | |
216 | | - | |
| 216 | + | |
217 | 217 | | |
218 | 218 | | |
219 | 219 | | |
| |||
224 | 224 | | |
225 | 225 | | |
226 | 226 | | |
227 | | - | |
| 227 | + | |
228 | 228 | | |
229 | 229 | | |
230 | 230 | | |
| |||
235 | 235 | | |
236 | 236 | | |
237 | 237 | | |
238 | | - | |
| 238 | + | |
239 | 239 | | |
240 | 240 | | |
241 | 241 | | |
| |||
246 | 246 | | |
247 | 247 | | |
248 | 248 | | |
249 | | - | |
| 249 | + | |
250 | 250 | | |
251 | 251 | | |
252 | 252 | | |
| |||
258 | 258 | | |
259 | 259 | | |
260 | 260 | | |
261 | | - | |
| 261 | + | |
262 | 262 | | |
263 | 263 | | |
264 | 264 | | |
| |||
272 | 272 | | |
273 | 273 | | |
274 | 274 | | |
275 | | - | |
| 275 | + | |
276 | 276 | | |
277 | 277 | | |
278 | 278 | | |
| |||
284 | 284 | | |
285 | 285 | | |
286 | 286 | | |
287 | | - | |
| 287 | + | |
288 | 288 | | |
289 | 289 | | |
290 | 290 | | |
| |||
304 | 304 | | |
305 | 305 | | |
306 | 306 | | |
307 | | - | |
| 307 | + | |
308 | 308 | | |
309 | 309 | | |
310 | 310 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
173 | 173 | | |
174 | 174 | | |
175 | 175 | | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
176 | 180 | | |
177 | 181 | | |
178 | 182 | | |
179 | 183 | | |
180 | 184 | | |
181 | | - | |
| 185 | + | |
182 | 186 | | |
183 | 187 | | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
184 | 236 | | |
185 | 237 | | |
186 | 238 | | |
| |||
0 commit comments