open-standards/.github/wai-conformance/verifiers/remote-desktop.sh
Transaction Science 417847daab wai conform prints JUnit and HTML reports, runs the independent verifiers beside an implementation or alone, and is the corpus union in one command
The change of wai/conform-output, on current main, without its wai doctor: main's doctor,
its tests, its catalogue entry, its MCP tool and its changelog entry stand as they are, and
this change's copies of them are gone, with the lines dev.rs held for them. wai/README.md,
which had no line for main's doctor, gains one in its first commands and `toolchain_doctor`
in the core tools.

- wai conform --format text|json|junit|html, reports made from the signed records.
- --independent beside a kind holds the corpus's independent verifier to the same cases;
  alone, it runs every corpus's verifier, a record each, from one table.
- wai-rs/build.rs reads that table from the `# independent:` lines of the step files
  (.github/wai-conformance/verifiers/), which take the verifiers' command lines out of the
  steps' bodies. scripts/wai-conformance-lists.py reads and checks the same lines.
- wai-conformance.yml runs the union as wai conform --independent --format junit.
- wai mcp's conformance tools read the table.
- wai-release.yml runs the quickstart from each archive as a new user runs it
  (clean-machine.sh, its PowerShell twin clean-machine.ps1), held by
  check-wai-release-quickstart.py. clean-machine.ps1 keeps clean-machine.sh's contents step
  and its check of WAI Studio. Each leg keeps main's archive_doctor.py check; the step's own
  wai hello, verify and dev --check are clean-machine.sh's now.
- check-wai-ops-doors.py reads VERBS and NEAR_SYNONYMS from catalogue.rs and keeps no list,
  and the verb-list test reads what that check reads.
- The catalogue's export and Studio's actions hold the new operations.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-07 10:56:00 -05:00

36 lines
2.6 KiB
Shell

# step: remote desktop · wai-rs, remote_desktop_verify.py and the page's module
# order: 590
# features: remote_desktop
# paths: wai/extensions/remote-desktop.md
# independent: remote-desktop live python3 -I live-conformance/remote_desktop_verify.py live-conformance/remote
#
# wai.live.remote (extensions/remote-desktop.md): the reference module's unit tests (every
# statement read back and refused when a byte is short or over, the screen statement's
# field rules, the host's rules of §5.3 in their order, the grant attributes, a latency's
# legs, sealed actions: a seal with no plaintext in it that opens under the host's key
# alone, the commitment and what it binds, a seal that does not fit its actions, rules 8
# and 9 after the others) and the crate's HPKE against RFC 9180 A.1.1; tests/remote_desktop.rs
# (vectors.json regenerates byte for byte from its fixed seeds and no other file is there,
# wai-rs gives every room its stated outcome at the commitment level and at the opened
# level, and §12 lists exactly the reference's codes, host refusals, floor refusals and
# the reasons a seal is not opened, each of which the corpus gives);
# and, in the step of every independent verifier above, the corpus's second implementation,
# remote_desktop_verify.py, written from the
# extension's text and sharing no code with wai-rs, which verifies each room with
# live_rooms_verify.py, every signature with WAI's strict Ed25519 rule and every seal with
# the aggregation verifier's HPKE, recomputes every outcome from the rules, the floor and
# every latency's legs at both levels, 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 viewer's module
# (joule-moq-web/web/room/remote.js), which writes the corpus's input statements, floor
# statements and latency records byte for byte, seals every sealed input that opens again
# byte for byte, and gives every input the outcome the corpus states.
#
# The paths this step brings to the workflow's trigger, and why:
# wai/extensions/remote-desktop.md: tests/remote_desktop.rs requires this extension's §12 to list
# the codes the reference reports, remote_desktop_verify.py reads its four tables, 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 -- remote_desktop:: hpke::)
(cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --test remote_desktop)
node --test ../joule-code/joule-code-rs/crates/joule-moq-web/web/room/remote.test.mjs