From 2bb7b4debba672a5565399a4ad6a01341d4194b3 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 8 Sep 2026 06:33:53 -0400 Subject: [PATCH] lane G: record that save_reader.py still carries the four defects, and why it was left alone --- findings/objects/wire-schema-channel.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/findings/objects/wire-schema-channel.md b/findings/objects/wire-schema-channel.md index 76231f5..fd9aa21 100644 --- a/findings/objects/wire-schema-channel.md +++ b/findings/objects/wire-schema-channel.md @@ -175,3 +175,14 @@ The test carries a **ratchet** (`pct >= 95.0`), so typing a body can never silen string list). 4. Re-run `tools/streams.py` whenever `serializers.py` improves — the generated header regenerates from it in 0.2 s, and the conformance test will say immediately whether the engine still agrees. +5. **`save_reader.py` still carries all four defects in §3** — `Planet.p1` as int, `odet` as int, and + `nv` / `srbd` as fields rather than counts. This lane deliberately did **not** touch it: every fix + is byte-neutral on all four saves available, so nothing observable would change, and quietly + editing the oracle mid-campaign is worse than recording the divergence. It was left verified as it + stands — 36 tests pass, `--strict` exit 0 on all four saves, and `state_checksum.py` reports + `coverage: PROVED` (591,376 bytes rebuilt == inflated on turn1; 532,752 on the Zuul save). Whoever + owns the reader should apply the four and re-run both suites; the engine is already the corrected + reference. +6. The engine's `SAVE_FORMAT.md` counterpart should record that `bool` and `int` items are the same + size **only** when the tag length makes the joint padding agree — that coincidence is what hid the + `odet` defect, and it will not hold for a 3- or 5-character tag.