# step: live messaging · wai-rs and live_messaging_verify.py # order: 660 # features: live_messaging # paths: wai/extensions/live-messaging.md # independent: live-messaging live python3 -I live-conformance/live_messaging_verify.py live-conformance/messaging # # wai.live.message and wai.live.call (extensions/live-messaging.md): tests/live_messaging.rs # (vectors.json regenerates byte for byte from its fixed seeds and no other file is there, # wai-rs gives every conversation, history request, call and record its stated outcome, and # §12 lists exactly the reference's codes, each of which the corpus gives); and, in the step # of every independent verifier above, the corpus's # second implementation, live_messaging_verify.py, written from the extension's text and # sharing no code with wai-rs, which reads descriptors with live_rooms_verify.py and Key IDs, # keys, AES-GCM and plaintexts with e2ee_verify.py, implements the receipts' binary form and # every rule of the extension itself, verifies every signature with WAI's strict Ed25519 # rule, requires every mutated copy of the corpus to fail, and drops each of its own checks # in turn and requires the corpus to catch the weakened verifier; standard library only, run # isolated (-I). # # The paths this step brings to the workflow's trigger, and why: # wai/extensions/live-messaging.md: tests/live_messaging.rs requires this extension's §12 to list # the codes the reference reports, live_messaging_verify.py reads that table, and the registry's # wire identifiers test reads its sections. set -euo pipefail (cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --test live_messaging)