Repository navigation
Commit 778096f
committed
fix(manifest): a key the schema does not define is now a load error
ROOT CAUSE of the busbar-150 mislabelling, not a workaround for it.
Runtime::Docker has no 'image' field - the image lives on 'launch' - but serde
ignored unknown keys, so writing runtime.image parsed cleanly, was read by
nothing, and changed nothing. A box ran getbusbar/busbar:1.4.1 for 25 minutes
under the gateway key busbar-150, and would have published 1.4.1's numbers in a
row labelled 1.5.0: two columns of the same binary presented as a version
comparison, with deltas in the noise that read as 'no regression'.
Nothing in the harness objected, because from serde's point of view nothing was
wrong. deny_unknown_fields on Manifest and Runtime turns that class of mistake
into a parse error naming the field, at load, where the fix costs seconds.
It proved itself immediately: applying it caught a SECOND phantom key I had
added in the same edit - a top-level 'version' that no other gateway declares
and the Rust schema never had. Both are now gone from busbar-150, whose
launch.image is the only image field and reads 1.5.0.
The cost of the silent version was a run. 609 engine tests, fmt and clippy
clean, and every shipped manifest still parses - asserted by a test, since a
guard that rejects the board is worth no more than one that rejects nothing.1 parent 35884db commit 778096f
7 files changed
Lines changed: 277402 additions & 4 deletions
File tree
- engine/src
- gateways/busbar-150
- results
- partial
- snapshots
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
17 | 27 | | |
18 | | - | |
| 28 | + | |
19 | 29 | | |
20 | 30 | | |
21 | 31 | | |
| |||
182 | 192 | | |
183 | 193 | | |
184 | 194 | | |
| 195 | + | |
| 196 | + | |
185 | 197 | | |
| 198 | + | |
186 | 199 | | |
187 | 200 | | |
188 | 201 | | |
| |||
2559 | 2572 | | |
2560 | 2573 | | |
2561 | 2574 | | |
| 2575 | + | |
| 2576 | + | |
| 2577 | + | |
| 2578 | + | |
| 2579 | + | |
| 2580 | + | |
| 2581 | + | |
| 2582 | + | |
| 2583 | + | |
| 2584 | + | |
| 2585 | + | |
| 2586 | + | |
| 2587 | + | |
| 2588 | + | |
| 2589 | + | |
| 2590 | + | |
| 2591 | + | |
| 2592 | + | |
| 2593 | + | |
| 2594 | + | |
| 2595 | + | |
| 2596 | + | |
| 2597 | + | |
| 2598 | + | |
| 2599 | + | |
| 2600 | + | |
| 2601 | + | |
| 2602 | + | |
| 2603 | + | |
| 2604 | + | |
| 2605 | + | |
| 2606 | + | |
| 2607 | + | |
| 2608 | + | |
| 2609 | + | |
| 2610 | + | |
| 2611 | + | |
| 2612 | + | |
| 2613 | + | |
| 2614 | + | |
| 2615 | + | |
| 2616 | + | |
| 2617 | + | |
| 2618 | + | |
| 2619 | + | |
| 2620 | + | |
| 2621 | + | |
| 2622 | + | |
| 2623 | + | |
| 2624 | + | |
| 2625 | + | |
| 2626 | + | |
| 2627 | + | |
| 2628 | + | |
| 2629 | + | |
| 2630 | + | |
| 2631 | + | |
| 2632 | + | |
| 2633 | + | |
| 2634 | + | |
| 2635 | + | |
| 2636 | + | |
| 2637 | + | |
| 2638 | + | |
| 2639 | + | |
| 2640 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
66 | | - | |
67 | 66 | | |
68 | | - | |
69 | | - | |
| 67 | + | |
70 | 68 | | |
0 commit comments