# step: co-watch · wai-rs, co_watch_verify.py and the page's module # order: 580 # features: co_watch # paths: wai/extensions/co-watch.md # independent: co-watch live python3 -I live-conformance/co_watch_verify.py live-conformance/cowatch # # wai.live.cowatch (extensions/co-watch.md): the reference module's unit tests (the policy # and its rules, statements read back and refused, the controlled position in the order of # §5.4, each branch of the catch-up rule, percentiles by nearest rank, the control attribute) # and tests/co_watch.rs (vectors.json regenerates byte for byte from its fixed seeds and no # other file is there, wai-rs gives every room and catch-up case 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, co_watch_verify.py, written from the extension's text and sharing # no code with wai-rs, which verifies each room with live_rooms_verify.py and every # signature with WAI's strict Ed25519 rule, recomputes the controlled position, every # sample, percentile and verdict, 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). Last, the browser client's co-watch # module (joule-moq-web/web/room/cowatch.js), which gives every catch-up case its # correction, recomputes each accepted room's controlled position, and writes the corpus's # controls and presentation statements byte for byte. # # The paths this step brings to the workflow's trigger, and why: # wai/extensions/co-watch.md: tests/co_watch.rs requires this extension's §12 to list the codes # the reference reports, co_watch_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" --lib co_watch::) (cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --test co_watch) node --test ../joule-code/joule-code-rs/crates/joule-moq-web/web/room/cowatch.test.mjs