SectorManager::receiveSectorState reads one byte off the front of the message body and branches on it: 1 goes to receiveCompressedSectorState, anything else falls through to the plain decode. we never wrote that byte, so the client ate the first byte of the snapshot as the flag and then read every field one byte early - server tick 0, discard 11, and the section sentinel landed on the LogicTime tick instead of 11. drop the two bisect switches, they served their purpose: both settings aborted identically, which is what ruled out the object payload. |
||
|---|---|---|
| .. | ||
| src | ||
| Cargo.toml | ||