mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-08-25 07:21:13 +00:00
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.