Some checks failed
wai key · the real keychain / does this change touch it (push) Successful in 18s
wai-quantum energy-landscape jobs / does this change touch it (push) Successful in 12s
WAI breaking changes and the conformance runner / WAI breaking · does this change touch WAI (push) Successful in 22s
wai key · the real keychain / the real keychain · macos (push) Successful in 39s
WAI breaking changes and the conformance runner / WAI breaking · wire, record and API against main · linux (push) Failing after 57s
WAI breaking changes and the conformance runner / WAI breaking and conform · their tests, and the independent verifiers through wai conform · linux (push) Failing after 2m6s
wai-quantum energy-landscape jobs / the module under wasm32-wasip2 (wasmtime) (push) Successful in 2m17s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (push) Successful in 4m28s
wai-quantum energy-landscape jobs / the same bits · macos (push) Successful in 4m30s
wai-quantum energy-landscape jobs / native against WebAssembly, over many seeds (push) Successful in 4m44s
wai-quantum energy-landscape jobs / reader, kernels, answers and the stated result · linux, release (push) Successful in 7m36s
wai-quantum energy-landscape jobs / the same bits · linux-arm64 (push) Successful in 7m42s
joule-moq-remote host agent / joule-moq-remote · does this change touch it (push) Has been cancelled
joule-moq-remote host agent / joule-moq-remote, every target (linux-arm64) (push) Has been cancelled
joule-moq-remote host agent / joule-moq-remote, every target (macos) (push) Has been cancelled
joule-moq-room room service / joule-moq-room · does this change touch it (push) Has been cancelled
joule-moq-room room service / joule-moq-room, every target (push) Has been cancelled
joule-moq-web browser client / joule-moq-web · does this change touch it (push) Has been cancelled
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (push) Has been cancelled
wai-app and Create / wai-app · does this change touch it (push) Has been cancelled
wai-app and Create / wai-app · tests, clippy, the line language's verifier (linux) (push) Has been cancelled
wai-app and Create / wai-app · Create, browser end-to-end (macos) (push) Has been cancelled
wai-audit collector and player integration / does this change touch it (push) Has been cancelled
wai-audit collector and player integration / collector · linux (push) Has been cancelled
wai-audit collector and player integration / collector, player integration and the browser end to end · macos (push) Has been cancelled
WAI operation catalogue / does this change touch it (push) Has been cancelled
WAI operation catalogue / the catalogue and every door · linux (push) Has been cancelled
wai-fleet service / does this change touch it (push) Has been cancelled
wai-fleet service / service · linux (push) Has been cancelled
wai-fleet service / service · macos (push) Has been cancelled
wai-ledger service / does this change touch it (push) Has been cancelled
wai-ledger service / service · linux (push) Has been cancelled
wai-ledger service / service · macos (push) Has been cancelled
wai-quantum for JavaScript / does this change touch it (push) Has been cancelled
wai-quantum for JavaScript / javascript · linux (push) Has been cancelled
wai-quantum studio and desktop / does this change touch it (push) Has been cancelled
wai-quantum studio and desktop / studio · browser (push) Has been cancelled
wai-quantum studio and desktop / desktop app · macos (push) Has been cancelled
wai-quantum studio and desktop / desktop app · linux (push) Has been cancelled
wai-quantum studio and desktop / desktop app · windows (push) Has been cancelled
wai-sink-android native sink library / does this change touch it (push) Has been cancelled
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (push) Has been cancelled
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (push) Has been cancelled
wai-sink-swift native sink package / does this change touch it (push) Has been cancelled
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (push) Has been cancelled
WAI Studio / does this change touch it (push) Has been cancelled
WAI Studio / the catalogue's actions, the unit tests and the core · linux (push) Has been cancelled
WAI Studio / Studio in Chromium and Firefox · macos (push) Has been cancelled
WAI Studio / Studio in WebKit · linux (push) Has been cancelled
wai-key-proxy / does this change touch it (push) Has been cancelled
wai-key-proxy / proxy · linux (push) Has been cancelled
wai key · Windows / does this change touch it (push) Successful in 13s
wai key · Windows / wai key and the toolchain's tests · windows (push) Successful in 2m10s
No new record type. An operation receipt is an asset-provenance receipt (wai::provenance::AssetReceipt), unchanged: its steps are the project by the canonical digest of the wai.json the operation ran under, each file it read, and each file it wrote, by content hash and path. wai create, lock, build, decode, wrap, unwrap -o, generate and key create|import|rotate|revoke|export each write one in a build with quickstart, kept in a project's .wai/receipts/ (every template's .gitignore keeps it out) or beside the file written. --key signs it; a key operation signs with the key it makes; otherwise a key made for the run, and the receipt says so. A --key that does not sign stops the operation before it writes anything. wai verify reads every *.wai-receipt.json under its paths and refuses a receipt that does not verify, a written file that is missing or changed, a receipt kept in a project whose wai.json is not the one it names, and a built tree that is not the one its build record lists. wai generate, with synthesis, signs for each picture a wai-origin claim (subject the picture's samples, step generate, operation wai.generate.spectral, the model file by SHA-256 and type algorithmic, oversight prompt_guided, source algorithmicMedia) whose record is the picture's receipt, signed by the same key. extensions/synthesis.md §3.5 states it, and how a claim names a model no prior pins, such as a person's own model reached at an endpoint from Create: by the SHA-256 of the endpoint's URL and the model's name, read as a name, never as a pin. wai verify checks the claim; so does synthesis_verify.py claim, the second implementation. The catalogue marks project.create, project.lock, project.build, media.decode, media.generate, envelope.wrap, envelope.unwrap and key.* with receipt and adds their --key inputs; ops.json and Studio's actions are regenerated. Create's end-to-end test runs wai check and wai dev --check on the exported project, reads its receipt with wai verify, and requires wai verify to refuse each changed copy. tests/cli_receipts.rs, in wai-conformance's project step, plants the faults: a changed picture, decoded file, built file and key record; another project's receipt; a claim beside another picture's receipt; an edited claim. Co-Authored-By: Claude Opus 5.5 <[email protected]>
36 lines
2.9 KiB
Shell
36 lines
2.9 KiB
Shell
# step: the project: wai.lock, wai check and wai build · wai-rs and project_verify.py
|
|
# order: 770
|
|
# independent: project trust python3 -I project-conformance/project_verify.py vectors project-conformance/vectors.json
|
|
# independent: project-selftest trust python3 -I project-conformance/project_verify.py selftest project-conformance/vectors.json
|
|
#
|
|
# wai lock, wai check and wai build through the binary (tests/cli_project.rs): a lock's bytes are
|
|
# the corpus's (wai/project-conformance/), the same in two directories at two times, from CRLF
|
|
# project files and through a checkout with core.autocrlf=true; a stale lock, a lock edited by
|
|
# hand and a member the reader does not know are refused by all three and nothing is written;
|
|
# wai check reports every finding, and what it could not run says not checked and exits 5, never
|
|
# 0; wai build gives the same tree in two directories at two times, with the reference packager
|
|
# too, and its record names the digests of wai.json and wai.lock. First in the archive's build,
|
|
# where wai app check is not there and an app is not checked, then with the feature app, where it
|
|
# runs inside wai check. And, in the step of every independent verifier above, the corpus's
|
|
# second reader, project_verify.py, written from
|
|
# wai/schema/README.md and sharing no code with wai-rs (it takes the policy's digest from
|
|
# pack-conformance/pack_verify.py): the tests run it on what the binary wrote, and there it reads
|
|
# the corpus's bytes, then drops each of its own rules in turn and requires the corpus to catch
|
|
# it. Standard library only, run isolated (-I).
|
|
set -euo pipefail
|
|
out() { (cd "$1" && cargo metadata --format-version 1 --no-deps --locked | python3 -c 'import json,sys; print(json.load(sys.stdin)["target_directory"])'); }
|
|
# wai-pack is a workspace of its own that builds wai with other features: a target directory shared
|
|
# with wai-rs (CARGO_TARGET_DIR set) has been seen to give it a wai built without them, so it
|
|
# builds in one of its own.
|
|
pack_target=$(out wai-pack)
|
|
if [ -n "${CARGO_TARGET_DIR:-}" ]; then pack_target="$CARGO_TARGET_DIR/wai-pack"; fi
|
|
(cd wai-pack && CARGO_TARGET_DIR="$pack_target" cargo build --locked --bin wai-pack)
|
|
WAI_PACK_BIN="$pack_target/debug/wai-pack"
|
|
export WAI_PACK_BIN
|
|
(cd wai-rs && cargo test --locked --no-default-features --features quickstart --test cli_project)
|
|
(cd wai-rs && cargo test --locked --no-default-features --features quickstart,app --test cli_project)
|
|
# The receipts of the toolchain's writes (tests/cli_receipts.rs): wai create, lock, build, decode,
|
|
# wrap, unwrap, generate and key create|rotate|revoke|export each leave one that wai verify reads,
|
|
# naming the digest of wai.json; a changed output and a receipt of another project are refused; a
|
|
# generation's origin claim is read by wai verify and by synthesis_verify.py claim.
|
|
(cd wai-rs && cargo test --locked --no-default-features --features quickstart,generate,synthesis --test cli_receipts)
|