Files
Egor Rachkovskii 30a4f0195d test(e2e): make RC08 actually check causal ordering
As ported, the test proved nothing about causal order. It waits for each
message to land before sending the next, so B seeing [m1, m3] follows from
the test's own sequencing and would hold with causal history switched off
entirely.

It now checks the claim against the wire. When A sends m3 its SDS history
holds m1 (sent) and m2 (received), so m3's envelope must reference m1's
message id. The envelope is reachable: channel encryption is a noop, so the
messaging-layer message_received event carries it verbatim — the same path
`wire_payload` and RC10 already use. Ids are 64-char hex the minprotobuf
embeds as-is, and the only other id-bearing field, the bloom filter, stores
hashed bits. Mutating the expected id reddens the new assertion; the observed
history is [m1, m2] as predicted.

Renamed accordingly, and the settle constant no longer claims to be about
causal history. RC13 carried the same overclaim twice over: a stray "causal
order" in a failure message, and a docstring attributing its result to a
restored SDS history that its assertions cannot distinguish from a fresh one.

The overclaim came over verbatim from the interop suite, where it has been
since the test was written.
2026-08-17 20:40:25 +01:00
..