wai-quantum-qpu: a built-in provider kind for a cloud service of quantum tasks #654

Closed
dcharlot wants to merge 0 commits from wai/quantum-cloud-tasks into main
Owner

A built-in provider kind for a cloud service of quantum tasks, so anyone with an account on that service can bring its devices to WAI Quantum with their own keys. It has run real tasks on the service's simulator. It has not run on a processor, which costs money and needs a terms acceptance on the account, so that is outside this PR.

What it does

wai-quantum providers add NAME --kind cloud-tasks --set region=… --set device=… --set bucket=… --credential-stdin connects one device.

  • Auth: every request is signed with the person's keys (Signature Version 4). The secret never crosses the wire and never reaches a log, a receipt or the hosted service. Temporary keys work as id:secret:token, and the usual environment variables work too.
  • Device: status, native gates, qubits, connectivity, shot range and price all come from the service's device document.
  • Program: OpenQASM 3 with every angle an exact multiple of pi and every measurement assigned. On a processor it is a verbatim box on physical qubits, so the device runs what the engine compiled and checked. On a simulator it is a register as wide as the program, with an identity on any qubit no gate touches.
  • Results: read from results.json in the bucket the task itself names, as one row per shot or as probabilities. Each logical qubit is read by the device's own label for the qubit it ended on, as that label was when the job was sent: the job's record keeps the labels, so a recalibration while it waits cannot move counts onto other qubits. A bucket whose name has a dot is read by path, since the storage service's certificate covers one label.
  • Estimate: on a processor, the whole charge. The service's API states only the device's price per shot, so the estimate adds the fee per task (0.30 USD, from its price list of 2026-11-05) and says where each part comes from. On a simulator, billed by the minute with a three-second minimum, the estimate is that minimum and every surface says "at least".
  • Client token: new for every submission, and a submission that may have arrived is never sent again.
  • A simulator can run a processor's gates: --set basis=gpizz compiles to that basis on a simulator, to check them before paying for a processor. A processor refuses the setting.

Also added: Method::Put and Request::put in the transport (cancel uses them), Kind::CloudTasks in the registry, the cloud-tasks service in the wai-qpu binary, and the guide, README, CLI help and generated docs.

Which devices it reaches

A device is read as a basis from its own native gates, so nothing is hard-wired to a device name.

Native gates Basis How the gates are written
prx cz prxcz as they are
gpi gpi2 zz gpizz as they are
rz v x cz or rz sx x cz rzsxxcz as they are
rx rz cz rzsxxcz sx as rx(pi/2), x as rx(pi)
anything else refused the message says what the device runs

The rx row is exact for counts: sx and x differ from those rotations only by a global phase. A device's rule about which rx angles it accepts is not in its document, so the first task on such a device is also the check of rx(pi).

What was checked

Live on the real service, 5 November 2026:

What Result
wai-qpu probe on SV1, 100 shots 100 on the expected index; the bit order is the one the client reads
wai-qpu certify on SV1, rzsxxcz, 8 jobs of 400 shots statistical fidelity 0.998 and 0.997
The same with --set basis=gpizz, so gpi, gpi2 and zz as written here 0.999 and 0.999
providers add, describe, run --dry-run estimate 0.00375 USD, the three-second minimum
run of a Bell program, 200 shots {"00": 98, "11": 102}, distance 0.01 from ideal, receipt VALID under wai-quantum verify
run --no-wait, then providers collect the result, sealed
Signed device reads: Forte 1, Garnet, Cepheus-1-108Q 36 qubits gpizz, 19 qubits prxcz, 107 qubits rzsxxcz
Signed device read: IBEX Q1 refused: runs prx, xx, rz

The first simulator runs found the two rules in the second commit, which scripted tests could not: a program must measure explicitly, and a simulator refuses a register with an idle qubit.

Tests: cargo test in wai-quantum-qpu passes: 77 in the library (26 of them in cloud_tasks), 2 in the binary, 12 clients against their contracts (cloud-tasks among them now, temporary keys included), 2 on the protocol's schema and 12 providers end to end. Signing is checked against the published Signature Version 4 example, and with a session token by hand. Clippy with -D warnings is clean. scripts/check-lockfiles.sh: all current. The CLI's tests (76 and its provider tests) pass, and its generated docs were regenerated.

Not checked on the real service:

  • Any processor. The prx form is unchecked: neither of the service's two general simulators takes that gate, and the service refuses it with its own message. rx(pi) in a verbatim box is unchecked for the same reason.
  • A cancel that reaches the service. Each test task finished before the cancel arrived, so the command returned the result, as it should. The PUT itself has only run against a scripted transport; it uses the same signing as the calls above.
  • Probabilities in results.json. The simulator returned rows of shots, so reading probabilities has only run against a scripted transport.

The version: wai-quantum-qpu 0.5.0

Kind::CloudTasks and Method::Put were added to exhaustive public enums, which breaks a downstream match. VERSIONING.md asks a 0.y bump of a breaking change before 1.0, so the crate is 0.5.0, and the command line and the desktop app require it. Nothing is published here: the release follows.

Kind and Method are #[non_exhaustive] from this version, and Kind::ALL is a slice. VERSIONING.md lets a minor release add "values of a member that lists its values", and a kind is one: with the enum exhaustive, every further kind would have been another breaking release, and after 1.0 those are a year apart. Since this bump already breaks, it is the one place the change costs nothing more. Inside the crate a match stays exhaustive, so a kind added without its name, settings and client still fails to build. The changelog entry says what to do instead.

What CI found on the first head, and the fix for each

Job Cause Fix
API compatibility the two new variants on exhaustive enums, with the crate still 0.4.1 0.5.0, as above
qpu clients (linux) the workflow pins the library's test count at 46; this PR adds 15 the pin is 61, and three of the new tests are named
docs, every command and snippet the guide's new line reads keys.txt, which the docs fixtures did not hold; the block stopped, so the next block's providers remove turns failed too the fixture is added
Studio browser a race on main, not this PR: the error-correction pane showed a new code's summary before its lattice, and the test read between the two (it saw the surface code's 2 faces where the colour code's 9 were due). The job passed on the eight other runs around this one the pane now checks the seal first and changes in one step, and a threshold's plot and reading do the same; the test is unchanged. With the seal's check slowed by 800 ms, the test fails on main's ordering and passes on this one

The API job also warned on every run that each baseline was behind, because it read the version cargo info selects (0.4.0 (latest 0.4.1)) as the last one published. It reads the latest now, and all three baselines are right.

The changelog entry is now a file of wai/changes/, and main is merged in.

The review, and what changed

An independent review confirmed eleven findings on this PR. Each has a test that failed on the old code for the stated reason, then the fix.

Finding Fix Test
High: a job collected in a later process was read through the device's labels as they were at collection, so a recalibration put counts on other qubits Provider::qubit_names gives the device's names for a program's qubits; the job's record keeps them, and counts_stated reads through them without asking the device again. A client with no record of a processor job refuses rather than guess a_job_collected_later_is_read_through_the_qubits_it_was_sent_on (a label added below, a measured label gone, the device no longer described)
A physical index of 64 or more was billed, then unreadable Logical qubits are read from a row by label, with no 64-bit packing, so the result is read rather than refused; a qubit the program ended on that was not measured is an error a_program_on_a_qubit_past_the_sixty_fourth_is_read_back, a_qubit_the_program_ended_on_must_have_been_measured_and_a_row_must_hold_bits
A named credential that gave nothing fell through to the account's ambient keys A built-in kind falls back to its environment only when the entry names no credential; otherwise an error names where it looked. All four built-in kinds a_named_credential_that_gives_nothing_is_an_error_saying_where_it_looked, a_named_credential_that_is_empty_never_falls_to_the_account_s_keys (CLI)
--endpoint accepted, listed, ignored This kind reaches two hosts, so it takes no endpoint and refuses one cloud_tasks_refuses_an_endpoint_it_would_not_use
region and bucket unchecked into hosts; a dotted bucket billed then unreadable Checked when added and in CloudTasks::new (now a Result); a dotted bucket is read by path, from the bucket the task names a_region_or_a_bucket_that_is_not_one_is_refused_before_anything_is_sent, a_dotted_bucket_is_read_by_path_where_its_host_has_no_certificate, results_are_read_from_the_bucket_the_task_names
Target::redact could match nothing for this kind Target::with_secrets takes each part of the keys, and Secret::redact also removes what a cut at 400 characters leaves of a value every_part_of_kept_keys_is_taken_out_of_a_message_whole_or_cut_short
The session-token path had no test; the "never carries their secret" test could not see the body; the README's contract-following fake did not exist for this client A fake that parses the posted OpenQASM, runs it, answers in the service's shape, and requires the token sent and signed; the secret test reads the body as text cloud_tasks_round_trip_through_their_contract, temporary_keys_send_their_token_and_sign_it, the_look_for_a_secret_reads_a_request_s_body. Deleting the token header or putting the secret in the body now fails three tests
wai-qpu certify on a priced simulator ran 32 tasks without --yes probe and certify ask for --yes on silicon and on anything the service states a price for a_run_that_spends_is_one_on_a_processor_or_on_anything_priced
A simulator's estimate is its minimum, shown as the estimate Estimate::at_least, at_least: true in a plan, and "at least" in the confirmation, the CLI's plan and the desktop dialog a_simulator_s_estimate_says_it_is_only_the_minimum, Studio hardware.test.mjs

The guide's runnable example used … for the region and bucket, which adding a provider now refuses; it names real-shaped values. The qpu workflow pins 72, 11 and 12, and names the new tests.

The second review, and what changed

The second review, of 760abf075, found six more. Each has a test that failed on the old code for the stated reason, then the fix.

Finding Fix Test
One entry of a kind this build does not know made the whole list unreadable, so a list shared with an older or newer build broke every provider Such an entry is noted, left as it is, kept byte for byte when the list is saved, and not used; an entry with no kind is still an error, and its message names every kind. The changelog says plainly that wai-quantum-qpu 0.4.1 and wai-quantum-cli 0.2.4 and earlier cannot read a list holding a cloud-tasks entry, which cannot be fixed in releases already out a_kind_this_build_does_not_know_is_kept_and_the_rest_is_read
"Refuses rather than guess" keyed on whether the device had been read, which every sampler does first Keyed on the tasks this client submitted itself a_client_that_did_not_submit_a_task_does_not_read_it_through_today_s_device
Collection used the entry's current region The region is read from the task's id, for status, results and cancel, as the bucket is from the task a_task_is_asked_after_in_the_region_its_id_names
wai-qpu certify on a simulator with no stated price ran 32 tasks without --yes Anything not stated free spends; the unit test that asserted the opposite is corrected a_run_spends_unless_the_service_says_it_is_free
The fake shared the client's assumptions Signing is held to the published v4 test suite (spaces, UTF-8, every unreserved character, a body), by the task service's rule and by storage's; the fake reads the bucket from the host or the path, walks a task through queued, running and completed, or cancelling and cancelled, and writes results in the published result schema's form. measuredQubits is a list of non-negative integers in that schema (gate-model task result v1), as the client reads it; the live simulator runs read the same. with_endpoints became with_base, so results are always read from the real hosts' addressing signing_gives_the_published_test_suite_s_signatures, cloud_tasks_round_trip_through_their_contract, a_cloud_task_cancelled_while_it_waits_ends_cancelled. Read every bucket virtual-hosted, or ignore the task's region: three tests fail
providers test printed a simulator's minimum as exact "at least", in what it ran and in why it ran nothing the_conformance_check_says_a_minimum_is_one

The qpu workflow pins 77, 12 and 12, and names the new tests.

Why

Free WAI Quantum is bring-your-own only: a person connects their own account, and WAI never provides hardware. This service carries devices of several makers behind one account and one signing scheme, so one kind opens all of them that fit a basis.

🤖 Generated with Claude Code

A built-in provider kind for a cloud service of quantum tasks, so anyone with an account on that service can bring its devices to WAI Quantum with their own keys. It has run real tasks on the service's simulator. It has not run on a processor, which costs money and needs a terms acceptance on the account, so that is outside this PR. ## What it does `wai-quantum providers add NAME --kind cloud-tasks --set region=… --set device=… --set bucket=… --credential-stdin` connects one device. - **Auth**: every request is signed with the person's keys (Signature Version 4). The secret never crosses the wire and never reaches a log, a receipt or the hosted service. Temporary keys work as `id:secret:token`, and the usual environment variables work too. - **Device**: status, native gates, qubits, connectivity, shot range and price all come from the service's device document. - **Program**: OpenQASM 3 with every angle an exact multiple of pi and every measurement assigned. On a processor it is a verbatim box on physical qubits, so the device runs what the engine compiled and checked. On a simulator it is a register as wide as the program, with an identity on any qubit no gate touches. - **Results**: read from `results.json` in the bucket the task itself names, as one row per shot or as probabilities. Each logical qubit is read by the device's own label for the qubit it ended on, as that label was when the job was sent: the job's record keeps the labels, so a recalibration while it waits cannot move counts onto other qubits. A bucket whose name has a dot is read by path, since the storage service's certificate covers one label. - **Estimate**: on a processor, the whole charge. The service's API states only the device's price per shot, so the estimate adds the fee per task (0.30 USD, from its price list of 2026-11-05) and says where each part comes from. On a simulator, billed by the minute with a three-second minimum, the estimate is that minimum and every surface says "at least". - **Client token**: new for every submission, and a submission that may have arrived is never sent again. - **A simulator can run a processor's gates**: `--set basis=gpizz` compiles to that basis on a simulator, to check them before paying for a processor. A processor refuses the setting. Also added: `Method::Put` and `Request::put` in the transport (cancel uses them), `Kind::CloudTasks` in the registry, the `cloud-tasks` service in the `wai-qpu` binary, and the guide, README, CLI help and generated docs. ## Which devices it reaches A device is read as a basis from its own native gates, so nothing is hard-wired to a device name. | Native gates | Basis | How the gates are written | |---|---|---| | `prx cz` | `prxcz` | as they are | | `gpi gpi2 zz` | `gpizz` | as they are | | `rz v x cz` or `rz sx x cz` | `rzsxxcz` | as they are | | `rx rz cz` | `rzsxxcz` | `sx` as `rx(pi/2)`, `x` as `rx(pi)` | | anything else | refused | the message says what the device runs | The `rx` row is exact for counts: `sx` and `x` differ from those rotations only by a global phase. A device's rule about which `rx` angles it accepts is not in its document, so the first task on such a device is also the check of `rx(pi)`. ## What was checked **Live on the real service, 5 November 2026:** | What | Result | |---|---| | `wai-qpu probe` on SV1, 100 shots | 100 on the expected index; the bit order is the one the client reads | | `wai-qpu certify` on SV1, `rzsxxcz`, 8 jobs of 400 shots | statistical fidelity 0.998 and 0.997 | | The same with `--set basis=gpizz`, so `gpi`, `gpi2` and `zz` as written here | 0.999 and 0.999 | | `providers add`, `describe`, `run --dry-run` | estimate 0.00375 USD, the three-second minimum | | `run` of a Bell program, 200 shots | `{"00": 98, "11": 102}`, distance 0.01 from ideal, receipt `VALID` under `wai-quantum verify` | | `run --no-wait`, then `providers collect` | the result, sealed | | Signed device reads: Forte 1, Garnet, Cepheus-1-108Q | 36 qubits `gpizz`, 19 qubits `prxcz`, 107 qubits `rzsxxcz` | | Signed device read: IBEX Q1 | refused: runs `prx, xx, rz` | The first simulator runs found the two rules in the second commit, which scripted tests could not: a program must measure explicitly, and a simulator refuses a register with an idle qubit. **Tests:** `cargo test` in `wai-quantum-qpu` passes: 77 in the library (26 of them in `cloud_tasks`), 2 in the binary, 12 clients against their contracts (`cloud-tasks` among them now, temporary keys included), 2 on the protocol's schema and 12 providers end to end. Signing is checked against the published Signature Version 4 example, and with a session token by hand. Clippy with `-D warnings` is clean. `scripts/check-lockfiles.sh`: all current. The CLI's tests (76 and its provider tests) pass, and its generated docs were regenerated. **Not checked on the real service:** - **Any processor.** The `prx` form is unchecked: neither of the service's two general simulators takes that gate, and the service refuses it with its own message. `rx(pi)` in a verbatim box is unchecked for the same reason. - **A cancel that reaches the service.** Each test task finished before the cancel arrived, so the command returned the result, as it should. The `PUT` itself has only run against a scripted transport; it uses the same signing as the calls above. - **Probabilities in `results.json`.** The simulator returned rows of shots, so reading probabilities has only run against a scripted transport. ## The version: `wai-quantum-qpu` 0.5.0 `Kind::CloudTasks` and `Method::Put` were added to exhaustive public enums, which breaks a downstream `match`. `VERSIONING.md` asks a 0.y bump of a breaking change before 1.0, so the crate is 0.5.0, and the command line and the desktop app require it. Nothing is published here: the release follows. `Kind` and `Method` are `#[non_exhaustive]` from this version, and `Kind::ALL` is a slice. `VERSIONING.md` lets a minor release add "values of a member that lists its values", and a kind is one: with the enum exhaustive, every further kind would have been another breaking release, and after 1.0 those are a year apart. Since this bump already breaks, it is the one place the change costs nothing more. Inside the crate a `match` stays exhaustive, so a kind added without its name, settings and client still fails to build. The changelog entry says what to do instead. ## What CI found on the first head, and the fix for each | Job | Cause | Fix | |---|---|---| | API compatibility | the two new variants on exhaustive enums, with the crate still 0.4.1 | 0.5.0, as above | | qpu clients (linux) | the workflow pins the library's test count at 46; this PR adds 15 | the pin is 61, and three of the new tests are named | | docs, every command and snippet | the guide's new line reads `keys.txt`, which the docs fixtures did not hold; the block stopped, so the next block's `providers remove turns` failed too | the fixture is added | | Studio browser | a race on main, not this PR: the error-correction pane showed a new code's summary before its lattice, and the test read between the two (it saw the surface code's 2 faces where the colour code's 9 were due). The job passed on the eight other runs around this one | the pane now checks the seal first and changes in one step, and a threshold's plot and reading do the same; the test is unchanged. With the seal's check slowed by 800 ms, the test fails on main's ordering and passes on this one | The API job also warned on every run that each baseline was behind, because it read the version `cargo info` selects (`0.4.0 (latest 0.4.1)`) as the last one published. It reads the latest now, and all three baselines are right. The changelog entry is now a file of `wai/changes/`, and main is merged in. ## The review, and what changed An independent review confirmed eleven findings on this PR. Each has a test that failed on the old code for the stated reason, then the fix. | Finding | Fix | Test | |---|---|---| | **High:** a job collected in a later process was read through the device's labels as they were at collection, so a recalibration put counts on other qubits | `Provider::qubit_names` gives the device's names for a program's qubits; the job's record keeps them, and `counts_stated` reads through them without asking the device again. A client with no record of a processor job refuses rather than guess | `a_job_collected_later_is_read_through_the_qubits_it_was_sent_on` (a label added below, a measured label gone, the device no longer described) | | A physical index of 64 or more was billed, then unreadable | Logical qubits are read from a row by label, with no 64-bit packing, so the result is read rather than refused; a qubit the program ended on that was not measured is an error | `a_program_on_a_qubit_past_the_sixty_fourth_is_read_back`, `a_qubit_the_program_ended_on_must_have_been_measured_and_a_row_must_hold_bits` | | A named credential that gave nothing fell through to the account's ambient keys | A built-in kind falls back to its environment only when the entry names no credential; otherwise an error names where it looked. All four built-in kinds | `a_named_credential_that_gives_nothing_is_an_error_saying_where_it_looked`, `a_named_credential_that_is_empty_never_falls_to_the_account_s_keys` (CLI) | | `--endpoint` accepted, listed, ignored | This kind reaches two hosts, so it takes no endpoint and refuses one | `cloud_tasks_refuses_an_endpoint_it_would_not_use` | | `region` and `bucket` unchecked into hosts; a dotted bucket billed then unreadable | Checked when added and in `CloudTasks::new` (now a `Result`); a dotted bucket is read by path, from the bucket the task names | `a_region_or_a_bucket_that_is_not_one_is_refused_before_anything_is_sent`, `a_dotted_bucket_is_read_by_path_where_its_host_has_no_certificate`, `results_are_read_from_the_bucket_the_task_names` | | `Target::redact` could match nothing for this kind | `Target::with_secrets` takes each part of the keys, and `Secret::redact` also removes what a cut at 400 characters leaves of a value | `every_part_of_kept_keys_is_taken_out_of_a_message_whole_or_cut_short` | | The session-token path had no test; the "never carries their secret" test could not see the body; the README's contract-following fake did not exist for this client | A fake that parses the posted OpenQASM, runs it, answers in the service's shape, and requires the token sent and signed; the secret test reads the body as text | `cloud_tasks_round_trip_through_their_contract`, `temporary_keys_send_their_token_and_sign_it`, `the_look_for_a_secret_reads_a_request_s_body`. Deleting the token header or putting the secret in the body now fails three tests | | `wai-qpu certify` on a priced simulator ran 32 tasks without `--yes` | `probe` and `certify` ask for `--yes` on silicon and on anything the service states a price for | `a_run_that_spends_is_one_on_a_processor_or_on_anything_priced` | | A simulator's estimate is its minimum, shown as the estimate | `Estimate::at_least`, `at_least: true` in a plan, and "at least" in the confirmation, the CLI's plan and the desktop dialog | `a_simulator_s_estimate_says_it_is_only_the_minimum`, Studio `hardware.test.mjs` | The guide's runnable example used `…` for the region and bucket, which adding a provider now refuses; it names real-shaped values. The qpu workflow pins 72, 11 and 12, and names the new tests. ## The second review, and what changed The second review, of `760abf075`, found six more. Each has a test that failed on the old code for the stated reason, then the fix. | Finding | Fix | Test | |---|---|---| | One entry of a kind this build does not know made the whole list unreadable, so a list shared with an older or newer build broke every provider | Such an entry is noted, left as it is, kept byte for byte when the list is saved, and not used; an entry with no kind is still an error, and its message names every kind. The changelog says plainly that `wai-quantum-qpu` 0.4.1 and `wai-quantum-cli` 0.2.4 and earlier cannot read a list holding a `cloud-tasks` entry, which cannot be fixed in releases already out | `a_kind_this_build_does_not_know_is_kept_and_the_rest_is_read` | | "Refuses rather than guess" keyed on whether the device had been read, which every sampler does first | Keyed on the tasks this client submitted itself | `a_client_that_did_not_submit_a_task_does_not_read_it_through_today_s_device` | | Collection used the entry's current region | The region is read from the task's id, for status, results and cancel, as the bucket is from the task | `a_task_is_asked_after_in_the_region_its_id_names` | | `wai-qpu certify` on a simulator with no stated price ran 32 tasks without `--yes` | Anything not stated free spends; the unit test that asserted the opposite is corrected | `a_run_spends_unless_the_service_says_it_is_free` | | The fake shared the client's assumptions | Signing is held to the published v4 test suite (spaces, UTF-8, every unreserved character, a body), by the task service's rule and by storage's; the fake reads the bucket from the host or the path, walks a task through queued, running and completed, or cancelling and cancelled, and writes results in the published result schema's form. `measuredQubits` is a list of non-negative integers in that schema (gate-model task result v1), as the client reads it; the live simulator runs read the same. `with_endpoints` became `with_base`, so results are always read from the real hosts' addressing | `signing_gives_the_published_test_suite_s_signatures`, `cloud_tasks_round_trip_through_their_contract`, `a_cloud_task_cancelled_while_it_waits_ends_cancelled`. Read every bucket virtual-hosted, or ignore the task's region: three tests fail | | `providers test` printed a simulator's minimum as exact | "at least", in what it ran and in why it ran nothing | `the_conformance_check_says_a_minimum_is_one` | The qpu workflow pins 77, 12 and 12, and names the new tests. ## Why Free WAI Quantum is bring-your-own only: a person connects their own account, and WAI never provides hardware. This service carries devices of several makers behind one account and one signing scheme, so one kind opens all of them that fit a basis. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
wai-quantum-qpu: a built-in provider kind for a cloud service of quantum tasks
Some checks failed
wai-quantum command line / command line · macos (pull_request) Has been cancelled
wai-quantum contract / does this change touch it (pull_request) Has been cancelled
wai-quantum contract / API compatibility · linux (pull_request) Has been cancelled
wai-quantum contract / schemas and the committed tool lists · linux (pull_request) Has been cancelled
wai-quantum contract / the policy is linked, and the deprecations page reads (pull_request) Has been cancelled
wai-quantum docs, course and locales / does this change touch it (pull_request) Has been cancelled
wai-quantum docs, course and locales / every command and snippet in the docs · linux (pull_request) Has been cancelled
wai-quantum docs, course and locales / the course and the command line's languages · linux (pull_request) Has been cancelled
wai-quantum docs, course and locales / the Studio's words in every locale · linux (pull_request) Has been cancelled
wai-quantum editors / does this change touch it (pull_request) Has been cancelled
wai-quantum editors / editors · linux (pull_request) Has been cancelled
wai-quantum editors / editors · macos (pull_request) Has been cancelled
wai-quantum for Python / does this change touch it (pull_request) Has been cancelled
wai-quantum for Python / python · linux (pull_request) Has been cancelled
wai-quantum for Python / python · macos (pull_request) Has been cancelled
wai-quantum-qpu / does this change touch it (pull_request) Has been cancelled
wai-quantum-qpu / clients against their contracts (linux) (pull_request) Has been cancelled
wai-quantum-qpu / credentials in the keychain (macos) (pull_request) Has been cancelled
wai-quantum service / does this change touch it (pull_request) Has been cancelled
wai-quantum service / service · linux (pull_request) Has been cancelled
wai-quantum service / service · macos (pull_request) Has been cancelled
wai-quantum service / service energy · linux packages (pull_request) Has been cancelled
wai-quantum studio and desktop / does this change touch it (pull_request) Has been cancelled
wai-quantum studio and desktop / studio · browser (pull_request) Has been cancelled
wai-quantum studio and desktop / desktop app · macos (pull_request) Has been cancelled
wai-quantum studio and desktop / desktop app · linux (pull_request) Has been cancelled
wai-quantum studio and desktop / desktop app · windows (pull_request) Has been cancelled
wai-quantum views in agent hosts / does this change touch it (pull_request) Has been cancelled
wai-quantum views in agent hosts / views · the page and its engine (pull_request) Has been cancelled
wai-quantum views in agent hosts / views · a scripted host (pull_request) Has been cancelled
ba429af757
`cloud-tasks`: one device on the person's own account. Requests are signed
with their keys (Signature Version 4), and results land in their own storage
bucket. On a processor the program is OpenQASM 3 in a verbatim box on physical
qubits. A device of `rx rz cz` takes the `rzsxxcz` basis, with `sx` and `x` as
`rx`, since they differ only by a global phase. A device whose native gates
fit no basis is refused with what it runs. The estimate gives the device's
price and says the service's per-task fee is left out.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai-quantum-qpu: cloud-tasks as the real service takes it, with the whole charge
Some checks failed
wai-quantum command line / command line · linux (pull_request) Successful in 3m4s
wai-quantum-qpu / clients against their contracts (linux) (pull_request) Failing after 38s
wai-quantum docs, course and locales / the Studio's words in every locale · linux (pull_request) Successful in 8s
wai-quantum docs, course and locales / the course and the command line's languages · linux (pull_request) Successful in 2m16s
wai-quantum for Python / python · linux (pull_request) Successful in 2m27s
wai-quantum studio and desktop / desktop app · windows (pull_request) Successful in 9m43s
wai-quantum contract / schemas and the committed tool lists · linux (pull_request) Successful in 6m0s
wai-quantum editors / editors · linux (pull_request) Successful in 6m31s
wai-quantum views in agent hosts / views · the page and its engine (pull_request) Successful in 3m25s
wai-quantum views in agent hosts / views · a scripted host (pull_request) Successful in 3m8s
wai-quantum studio and desktop / studio · browser (pull_request) Failing after 5m31s
wai-quantum studio and desktop / desktop app · linux (pull_request) Successful in 6m5s
wai-quantum contract / API compatibility · linux (pull_request) Failing after 12m24s
WAI examples / WAI examples · portable · linux (pull_request) Successful in 13m37s
wai-quantum service / service · linux (pull_request) Successful in 11m0s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 20m28s
wai-quantum docs, course and locales / every command and snippet in the docs · linux (pull_request) Failing after 24m9s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 8m29s
wai-quantum command line / command line · macos (pull_request) Successful in 1m57s
wai-quantum editors / editors · macos (pull_request) Successful in 1m33s
wai-quantum-qpu / credentials in the keychain (macos) (pull_request) Successful in 25s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 13m32s
wai-quantum for Python / python · macos (pull_request) Successful in 2m56s
wai-quantum service / service · macos (pull_request) Successful in 5m8s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 5m42s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 20m51s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Has been cancelled
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Has been cancelled
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Has been cancelled
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Has been cancelled
fe1c9be9ad
Running it on the service's simulator showed two things the scripted tests
could not: a program must measure explicitly, and a simulator refuses a register
with a qubit no gate touches. So every program now assigns its measurements, and
a simulator's idle qubits get an identity.

The estimate now includes the service's fee per task, which its API does not
state, so a job on a processor shows what it will cost. And a simulator can
compile to a processor's basis (`--set basis=gpizz`), so the gates can be checked
before paying for the processor.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Co-Authored-By: Claude Fable 5.1 <[email protected]>
`Kind::CloudTasks` and `Method::Put` were added to exhaustive public enums. That
breaks a downstream `match`, so the API check failed with the crate still at
0.4.1. The crate is now 0.5.0, as VERSIONING.md asks of a breaking change before
1.0, and the command line and the desktop app require it.

`Kind` and `Method` are `#[non_exhaustive]` from this version, and `Kind::ALL` is
a slice. A kind is a value of a list that grows, which a minor release may add
to; with the enum exhaustive, every new kind was a breaking release. Inside the
crate a `match` stays exhaustive.

The changelog entry moves from the head of CHANGELOG.md to a file of wai/changes/
and says what to do instead. The API job's baseline step took the version
`cargo info` selects (`0.4.0 (latest 0.4.1)`) for the last one published and
warned on every run; it now reads the latest.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
The qpu workflow pins each test binary's count, and the library's was still 46.
The cloud-tasks client adds 15, so it is 61, and three of its tests are named.

The guide's block that adds a `cloud-tasks` provider reads `keys.txt`, which the
documentation's fixtures did not hold. The block stopped there, so the next
block's `providers remove turns` found no provider. The fixture is added.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
quantum-studio: a code's summary, certificate and lattice change in one step
Some checks failed
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Has been cancelled
wai-quantum command line / command line · macos (pull_request) Has been cancelled
wai-quantum dataflow member / member · dataflow device absent (macos) (pull_request) Has been cancelled
wai-quantum editors / editors · macos (pull_request) Has been cancelled
wai-quantum FPGA member / member · FPGA datapath, simulated (macos) (pull_request) Has been cancelled
wai-quantum HIP member / member · HIP absent (linux-arm64) (pull_request) Has been cancelled
wai-quantum Metal member / member · Metal (macos) (pull_request) Has been cancelled
wai-quantum npu-cores member / member · npu-cores absent (linux-arm64) (pull_request) Has been cancelled
wai-quantum neural-processor member / member · neural processor (macos) (pull_request) Has been cancelled
wai-quantum OpenCL member / member · OpenCL GPU (macos) (pull_request) Has been cancelled
wai-quantum pulse and dynamics / the same bits · linux-arm64 (pull_request) Has been cancelled
wai-quantum pulse and dynamics / the same bits · macos (pull_request) Has been cancelled
wai-quantum for Python / python · macos (pull_request) Has been cancelled
wai-quantum-qpu / credentials in the keychain (macos) (pull_request) Has been cancelled
wai-quantum extension points / the registry and the example · linux-arm64 (pull_request) Has been cancelled
wai-quantum service / service · macos (pull_request) Has been cancelled
wai-quantum matrix-extension member / member · matrix extension absent (macos) (pull_request) Has been cancelled
wai-quantum studio and desktop / desktop app · macos (pull_request) Has been cancelled
wai-quantum tensor-engine member / member · tensor engine absent (linux-arm64) (pull_request) Has been cancelled
wai-quantum portable tensor program / tensor program · Metal and the arm64 CPU (macos) (pull_request) Has been cancelled
wai-quantum variational and algorithm library / parameters, gradients, optimisers, VQE, QAOA and builders · linux-arm64, release (pull_request) Has been cancelled
wai-quantum CPU vector units / member · vector unit absent (macos) (pull_request) Has been cancelled
wai-quantum WebGPU member / member · Metal (macos) (pull_request) Has been cancelled
wai-quantum WebGPU member / member · browser WebGPU (macos) (pull_request) Has been cancelled
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Has been cancelled
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Has been cancelled
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Has been cancelled
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Has been cancelled
joule-code conformance gate / joule-moq-relay, every target (pull_request) Successful in 2m41s
joule-code conformance gate / joule-moq-ingest, every target (pull_request) Successful in 8m4s
9db46c96d5
The error-correction pane set a new code's summary and decoders, then checked
its seal, then drew its lattice. The browser test waits for the summary and
reads the lattice at once, and on this branch's run it read the surface code's
two faces where the colour code's nine were due. The file is main's, so the
race is on main too; the job passed on the eight other runs around this one.

The seal is now checked first and the pane changes together, as a decode
already did. A threshold had the same split, its plot drawn before the check
and its reading after: with the check slowed by 800 ms the test fails there
too, so it is fixed the same way. With that delay the test fails on main's
ordering and passes on this one. The test is unchanged.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
A job's record keeps the device's own names for its program's qubits, and
collection reads through those without asking the device again. Logical qubits
are read from a row by label, so a qubit past the sixty-fourth can be read, and
one the program ended on that was not measured is an error. Region and bucket
are checked before they go into a host; a dotted bucket is read by path, from
the bucket the task names. An endpoint this kind would not use is refused. A
named credential that gives nothing is an error on every built-in kind, and
every part of the keys comes out of a message, whole or cut short. wai-qpu asks
for --yes wherever a job spends. A simulator's estimate says it is the minimum.
The client now has a fake that follows the service's contract, temporary keys
among what it checks.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai-quantum-qpu: the guide's cloud-tasks example names a region and a bucket that are names
Some checks failed
wai-quantum extension points / the registry and the example · linux (pull_request) Has been cancelled
wai-quantum extension points / the registry and the example · linux-arm64 (pull_request) Has been cancelled
wai-quantum extension points / the registry under wasm32-wasip2 (wasmtime) (pull_request) Has been cancelled
wai-quantum service / service · linux (pull_request) Has been cancelled
wai-quantum matrix-extension member / member · matrix extension, emulated (aarch64 Linux) (pull_request) Has been cancelled
wai-quantum studio and desktop / studio · browser (pull_request) Has been cancelled
wai-quantum studio and desktop / desktop app · linux (pull_request) Has been cancelled
wai-quantum tensor-engine member / member · tensor engine, the kernel toolchain's simulator (linux) (pull_request) Has been cancelled
wai-quantum tensor-engine member / member · tensor engine absent (linux-arm64) (pull_request) Has been cancelled
wai-quantum portable tensor program / tensor program · CPU, mutants, GPU builds (pull_request) Has been cancelled
wai-quantum variational and algorithm library / parameters, gradients, optimisers, VQE, QAOA and builders · linux, release (pull_request) Has been cancelled
wai-quantum variational and algorithm library / parameters, gradients, optimisers, VQE, QAOA and builders · linux-arm64, release (pull_request) Has been cancelled
wai-quantum CPU vector units / member · vector unit, rvv 1024-bit (riscv64, emulated) (pull_request) Has been cancelled
wai-quantum CPU vector units / member · vector unit, sve 128-bit (aarch64, emulated) (pull_request) Has been cancelled
wai-quantum CPU vector units / member · vector unit, rvv 128-bit (riscv64, emulated) (pull_request) Has been cancelled
wai-quantum CPU vector units / member · vector unit, sve 2048-bit (aarch64, emulated) (pull_request) Has been cancelled
wai-quantum CPU vector units / member · vector unit, avx2 (x86_64 silicon) (pull_request) Has been cancelled
wai-quantum CPU vector units / member · vector unit, sve 512-bit (aarch64, emulated) (pull_request) Has been cancelled
wai-quantum verdicts and repairs / verdicts, repairs and the intent set · linux (pull_request) Has been cancelled
wai-quantum verdicts and repairs / the intent set and the verdict under wasm32-wasip2 (wasmtime) (pull_request) Has been cancelled
wai-quantum views in agent hosts / views · the page and its engine (pull_request) Has been cancelled
wai-quantum views in agent hosts / views · a scripted host (pull_request) Has been cancelled
wai-quantum WebGPU member / shader checks · browser build · wasip2 inertness (pull_request) Has been cancelled
wai-quantum WebGPU member / member · software Vulkan (linux) (pull_request) Has been cancelled
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Has been cancelled
WAI Studio / the catalogue's actions, the unit tests and the core · linux (pull_request) Has been cancelled
WAI Studio / Studio in WebKit · linux (pull_request) Has been cancelled
wai-web reach builds / wai-web reach builds · the package of record, every output as recorded (pull_request) Has been cancelled
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Has been cancelled
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Has been cancelled
760abf0750
The guide's runnable block used an ellipsis for each, which adding a provider now refuses.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai-quantum-qpu: cloud-tasks asks after a task where it is, signs as the published suite does, and keeps a list's unknown kinds
Some checks failed
wai-quantum variational and algorithm library / parameters, gradients, optimisers, VQE, QAOA and builders · linux, release (pull_request) Has been cancelled
wai-quantum variational and algorithm library / parameters, gradients, optimisers, VQE, QAOA and builders · linux-arm64, release (pull_request) Has been cancelled
wai-quantum CPU vector units / member · vector unit, rvv 1024-bit (riscv64, emulated) (pull_request) Has been cancelled
wai-quantum CPU vector units / member · vector unit, sve 128-bit (aarch64, emulated) (pull_request) Has been cancelled
wai-quantum CPU vector units / member · vector unit, rvv 128-bit (riscv64, emulated) (pull_request) Has been cancelled
wai-quantum CPU vector units / member · vector unit, sve 2048-bit (aarch64, emulated) (pull_request) Has been cancelled
wai-quantum CPU vector units / member · vector unit, avx2 (x86_64 silicon) (pull_request) Has been cancelled
wai-quantum CPU vector units / member · vector unit, sve 512-bit (aarch64, emulated) (pull_request) Has been cancelled
wai-quantum CPU vector units / member · vector units, avx2 and avx512 (framework-128gb silicon) (pull_request) Has been cancelled
wai-quantum CPU vector units / member · vector unit absent (macos) (pull_request) Has been cancelled
wai-quantum verdicts and repairs / verdicts, repairs and the intent set · linux (pull_request) Has been cancelled
wai-quantum verdicts and repairs / the intent set and the verdict under wasm32-wasip2 (wasmtime) (pull_request) Has been cancelled
wai-quantum views in agent hosts / views · the page and its engine (pull_request) Has been cancelled
wai-quantum views in agent hosts / views · a scripted host (pull_request) Has been cancelled
wai-quantum WebGPU member / shader checks · browser build · wasip2 inertness (pull_request) Has been cancelled
wai-quantum WebGPU member / member · software Vulkan (linux) (pull_request) Has been cancelled
wai-quantum WebGPU member / member · Metal (macos) (pull_request) Has been cancelled
wai-quantum WebGPU member / member · GPU, Vulkan (jetson-hub) (pull_request) Has been cancelled
wai-quantum WebGPU member / member · GPU, Vulkan (thor) (pull_request) Has been cancelled
wai-quantum WebGPU member / member · integrated GPU, Vulkan (framework-128gb) (pull_request) Has been cancelled
wai-quantum WebGPU member / member · browser WebGPU (macos) (pull_request) Has been cancelled
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Has been cancelled
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Has been cancelled
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Has been cancelled
WAI Studio / the catalogue's actions, the unit tests and the core · linux (pull_request) Has been cancelled
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Has been cancelled
WAI Studio / Studio in WebKit · linux (pull_request) Has been cancelled
wai-web reach builds / wai-web reach builds · the package of record, every output as recorded (pull_request) Has been cancelled
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Has been cancelled
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Has been cancelled
72f127376b
The second review's six. A list of providers holding a kind this build does
not know is read, the entry kept as it is and noted; the changelog says plainly
that earlier builds cannot read a list holding a cloud-tasks entry. A client
reads a processor's task through the qubits it read only when it submitted the
task; a task's region comes from its id. wai-qpu asks for --yes on anything not
stated free. providers test says "at least" of a minimum. Signing is held to the
published v4 test suite, by both path rules and with a body. The fake service
takes the bucket from the host or the path, walks a task through its states and
a cancel, and writes results in the published result schema's form.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai-quantum: the views page built again from its sources
Some checks failed
wai-quantum for JavaScript / javascript · linux (pull_request) Successful in 22m4s
wai-quantum service / service · linux (pull_request) Successful in 21m45s
WAI conformance / cargo-class corpora · macos (pull_request) Failing after 21m30s
WAI Studio / Studio in WebKit · linux (pull_request) Successful in 15m11s
wai-quantum WebGPU member / member · Metal (macos) (pull_request) Successful in 3m9s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 9m26s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 11m0s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 19m7s
wai-quantum CUDA member / member · CUDA (jetson-hub) (pull_request) Successful in 1m54s
wai-quantum OpenCL member / member · OpenCL GPU and CPU (jetson-hub) (pull_request) Successful in 53s
wai-quantum service / service energy · linux packages (pull_request) Successful in 1m36s
wai-quantum portable tensor program / tensor program · GPUs (jetson-hub) (pull_request) Successful in 1m40s
wai-quantum WebGPU member / member · GPU, Vulkan (jetson-hub) (pull_request) Successful in 19m45s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 23s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 14m29s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 20s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 47s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 2m37s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 19m3s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 24m8s
wai-quantum HIP member / member · HIP absent (linux-arm64) (pull_request) Successful in 1m37s
wai-quantum npu-cores member / member · npu-cores absent (linux-arm64) (pull_request) Successful in 36s
wai-quantum pulse and dynamics / the same bits · linux-arm64 (pull_request) Successful in 1m56s
wai-quantum tensor-engine member / member · tensor engine absent (linux-arm64) (pull_request) Successful in 27s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 8m24s
wai-quantum variational and algorithm library / parameters, gradients, optimisers, VQE, QAOA and builders · linux-arm64, release (pull_request) Successful in 2m9s
wai-quantum extension points / the registry and the example · linux-arm64 (pull_request) Successful in 3m4s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 3m44s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 30m5s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h38m5s
4d4a5ebba9
The Studio's English words for an estimate's minimum ("at least") are among
the page's sources, and the committed page was built before them.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
dcharlot closed this pull request 2026-11-07 01:29:07 -05:00
Some checks failed
standards workspaces build + test / which workspaces this change touches (pull_request) Successful in 7s
wai-audit collector and player integration / does this change touch it (pull_request) Successful in 6s
WAI breaking changes and the conformance runner / WAI breaking · does this change touch WAI (pull_request) Successful in 8s
WAI operation catalogue / does this change touch it (pull_request) Successful in 7s
WAI conformance / does this change touch it (pull_request) Successful in 8s
WAI energy receipts / does this change touch it (pull_request) Successful in 5s
wai-quantum command line / does this change touch it (pull_request) Successful in 6s
WAI examples / WAI examples · does this change touch them (pull_request) Successful in 8s
wai-quantum contract / does this change touch it (pull_request) Successful in 7s
wai-quantum CUDA member / does this change touch it (pull_request) Successful in 6s
wai-quantum docs, course and locales / does this change touch it (pull_request) Successful in 6s
wai-quantum dataflow member / does this change touch it (pull_request) Successful in 8s
wai-quantum editors / does this change touch it (pull_request) Successful in 6s
wai-quantum other formats / does this change touch it (pull_request) Successful in 8s
wai-quantum resource estimation / does this change touch it (pull_request) Successful in 8s
wai-quantum FPGA member / does this change touch it (pull_request) Successful in 7s
wai-quantum HIP member / does this change touch it (pull_request) Successful in 6s
wai-quantum signal processor / does this change touch it (pull_request) Successful in 22s
wai-quantum for JavaScript / does this change touch it (pull_request) Successful in 7s
wai-quantum OpenQASM reader / does this change touch it (pull_request) Successful in 7s
wai-quantum npu-cores member / does this change touch it (pull_request) Successful in 7s
wai-quantum Metal member / does this change touch it (pull_request) Successful in 8s
wai-quantum OpenCL member / does this change touch it (pull_request) Successful in 23s
wai-quantum neural-processor member / does this change touch it (pull_request) Successful in 24s
wai-quantum pulse and dynamics / does this change touch it (pull_request) Successful in 5s
wai-quantum error correction and mitigation / does this change touch it (pull_request) Successful in 6s
wai-quantum for Python / does this change touch it (pull_request) Successful in 10s
wai-quantum-qpu / does this change touch it (pull_request) Successful in 5s
wai-quantum service / does this change touch it (pull_request) Successful in 5s
wai-quantum studio and desktop / does this change touch it (pull_request) Successful in 7s
wai-quantum matrix-extension member / does this change touch it (pull_request) Successful in 10s
wai-quantum tensor-engine member / does this change touch it (pull_request) Successful in 6s
wai-quantum portable tensor program / does this change touch it (pull_request) Successful in 5s
wai-quantum CPU vector units / does this change touch it (pull_request) Successful in 5s
wai-quantum variational and algorithm library / does this change touch it (pull_request) Successful in 9s
wai-quantum verdicts and repairs / does this change touch it (pull_request) Successful in 6s
wai-quantum extension points / does this change touch it (pull_request) Successful in 28s
wai-quantum WebGPU member / does this change touch it (pull_request) Successful in 6s
wai-quantum views in agent hosts / does this change touch it (pull_request) Successful in 7s
wai-sink-android native sink library / does this change touch it (pull_request) Successful in 5s
wai-web reach builds / wai-web reach · does this change touch it (pull_request) Successful in 5s
WAI Studio / does this change touch it (pull_request) Successful in 8s
wai-web wasm32 / does this change touch it (pull_request) Successful in 5s
wai-sink-swift native sink package / does this change touch it (pull_request) Successful in 26s
wai-quantum on every processor / emulated · s390x-unknown-linux-gnu (pull_request) Successful in 2m21s
wai-quantum on every processor / emulated · loongarch64-unknown-linux-gnu (pull_request) Successful in 3m8s
wai-quantum on every processor / emulated · aarch64-unknown-linux-gnu (pull_request) Successful in 4m10s
wai-quantum on every processor / emulated · i686-unknown-linux-gnu (pull_request) Successful in 3m39s
wai-quantum on every processor / emulated · riscv64gc-unknown-linux-gnu (pull_request) Successful in 4m47s
wai-quantum on every processor / emulated · armv7-unknown-linux-gnueabihf (pull_request) Successful in 7m50s
wai-quantum on every processor / emulated · powerpc64le-unknown-linux-gnu (pull_request) Successful in 8m48s
wai-quantum on every processor / emulated · powerpc64-unknown-linux-gnu (pull_request) Successful in 9m18s
wai-quantum on every processor / emulated · sparc64-unknown-linux-gnu (pull_request) Successful in 11m3s
WAI conformance / fast integer kernels, every x86_64 kernel set (AVX-512 silicon) (pull_request) Successful in 3m23s
wai-quantum HIP member / member · HIP (framework-128gb) (pull_request) Successful in 1m3s
wai-quantum npu-cores member / member · npu-cores, neural processor (framework-128gb silicon) (pull_request) Successful in 1m21s
wai-quantum OpenCL member / member · OpenCL GPU (framework-128gb) (pull_request) Successful in 26s
wai-quantum portable tensor program / tensor program · integrated GPU (framework-128gb) (pull_request) Successful in 14s
wai-quantum CPU vector units / member · vector units, avx2 and avx512 (framework-128gb silicon) (pull_request) Successful in 19s
wai-quantum WebGPU member / member · DX12 and Vulkan (cbio-windows) (pull_request) Successful in 12m26s
wai-quantum WebGPU member / member · integrated GPU, Vulkan (framework-128gb) (pull_request) Successful in 8m0s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Successful in 2m18s
wai-quantum CUDA member / member · CUDA (thor) (pull_request) Successful in 2m1s
wai-quantum OpenCL member / member · OpenCL GPU and CPU (thor) (pull_request) Successful in 48s
wai-quantum WebGPU member / member · GPU, Vulkan (thor) (pull_request) Successful in 27m23s
wai-audit collector and player integration / collector · linux (pull_request) Successful in 1m17s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 37s
WAI breaking changes and the conformance runner / WAI breaking · wire, record and API against main · linux (pull_request) Successful in 2m50s
WAI conformance / faces from keypoints under wasm32-wasip2 (wasmtime) (pull_request) Successful in 2m23s
WAI breaking changes and the conformance runner / WAI breaking and conform · their tests, and the independent verifiers through wai conform · linux (pull_request) Successful in 3m35s
wai-quantum contract / the policy is linked, and the deprecations page reads (pull_request) Successful in 7s
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Successful in 4m47s
wai-quantum command line / command line · linux (pull_request) Successful in 4m30s
wai-quantum docs, course and locales / the Studio's words in every locale · linux (pull_request) Successful in 12s
wai-quantum CUDA member / member · CUDA absent (linux) (pull_request) Successful in 2m20s
wai-quantum docs, course and locales / the course and the command line's languages · linux (pull_request) Successful in 4m17s
wai-quantum contract / API compatibility · linux (pull_request) Successful in 7m19s
wai-quantum FPGA member / member · FPGA simulation absent (linux) (pull_request) Successful in 34s
wai-quantum studio and desktop / desktop app · windows (pull_request) Successful in 9m32s
wai-audit collector and player integration / collector, player integration and the browser end to end · macos (pull_request) Successful in 1m34s
wai-quantum contract / schemas and the committed tool lists · linux (pull_request) Successful in 9m10s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 28s
wai-quantum other formats / the set under wasm32-wasip2 (wasmtime) (pull_request) Successful in 3m11s
wai-quantum dataflow member / member · dataflow device, simulated (pci 1e52:b140) (pull_request) Successful in 7m4s
wai-quantum resource estimation / estimation and calibration · linux, release (pull_request) Successful in 3m20s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 1m16s
wai-quantum other formats / readers, writers and the set · linux (pull_request) Successful in 4m42s
standards workspaces build + test / macOS energy backends (pull_request) Failing after 3m46s
wai-quantum Metal member / member · Metal absent (linux) (pull_request) Successful in 49s
wai-quantum neural-processor member / member · neural processor absent (linux) (pull_request) Successful in 40s
wai-quantum OpenQASM reader / corpus under wasm32-wasip2 (wasmtime) (pull_request) Successful in 1m15s
wai-quantum OpenCL member / member · OpenCL absent (linux) (pull_request) Successful in 57s
wai-quantum OpenQASM reader / reader and corpus · linux (pull_request) Successful in 2m52s
wai-quantum dataflow member / member · dataflow device, simulated (pci 1e52:401e) (pull_request) Successful in 9m6s
wai-quantum-qpu / clients against their contracts (linux) (pull_request) Successful in 1m15s
wai-quantum pulse and dynamics / reader, simulator and pulse jobs under wasm32-wasip2 (wasmtime) (pull_request) Successful in 1m39s
wai-quantum pulse and dynamics / reader, simulator and pulse jobs · linux, release (pull_request) Successful in 1m46s
wai-quantum matrix-extension member / member · matrix extension, emulated (aarch64 Linux) (pull_request) Successful in 19s
wai-quantum command line / command line · macos (pull_request) Successful in 2m12s
wai-quantum CPU vector units / member · vector unit, rvv 1024-bit (riscv64, emulated) (pull_request) Successful in 15s
wai-quantum portable tensor program / tensor program · CPU, mutants, GPU builds (pull_request) Successful in 39s
wai-quantum CPU vector units / member · vector unit, sve 128-bit (aarch64, emulated) (pull_request) Successful in 31s
wai-quantum CPU vector units / member · vector unit, rvv 128-bit (riscv64, emulated) (pull_request) Successful in 19s
wai-quantum CPU vector units / member · vector unit, avx2 (x86_64 silicon) (pull_request) Successful in 6s
wai-quantum dataflow member / member · dataflow device absent (macos) (pull_request) Successful in 21s
wai-quantum CPU vector units / member · vector unit, sve 2048-bit (aarch64, emulated) (pull_request) Successful in 14s
wai-quantum CPU vector units / member · vector unit, sve 512-bit (aarch64, emulated) (pull_request) Successful in 16s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 17m38s
WAI examples / WAI examples · portable · linux (pull_request) Successful in 16m21s
wai-quantum error correction and mitigation / codes, decoders, texts and mitigation · linux, release (pull_request) Successful in 4m26s
wai-quantum editors / editors · macos (pull_request) Successful in 1m32s
wai-quantum for Python / python · linux (pull_request) Successful in 4m39s
wai-quantum verdicts and repairs / verdicts, repairs and the intent set · linux (pull_request) Successful in 1m54s
wai-quantum OpenCL member / member · OpenCL GPU (macos) (pull_request) Successful in 31s
wai-quantum verdicts and repairs / the intent set and the verdict under wasm32-wasip2 (wasmtime) (pull_request) Successful in 1m22s
wai-quantum variational and algorithm library / parameters, gradients, optimisers, VQE, QAOA and builders · linux, release (pull_request) Successful in 2m24s
wai-quantum extension points / the registry under wasm32-wasip2 (wasmtime) (pull_request) Successful in 1m18s
wai-quantum FPGA member / member · FPGA datapath, simulated (macos) (pull_request) Successful in 2m10s
wai-quantum Metal member / member · Metal (macos) (pull_request) Successful in 35s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 6m2s
wai-quantum WebGPU member / member · software Vulkan (linux) (pull_request) Successful in 2m17s
wai-quantum extension points / the registry and the example · linux (pull_request) Successful in 3m29s
wai-quantum pulse and dynamics / the same bits · macos (pull_request) Successful in 1m10s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 8m28s
wai-quantum neural-processor member / member · neural processor (macos) (pull_request) Successful in 4m36s
wai-quantum views in agent hosts / views · the page and its engine (pull_request) Successful in 3m30s
wai-quantum-qpu / credentials in the keychain (macos) (pull_request) Successful in 31s
wai-quantum for Python / python · macos (pull_request) Successful in 2m28s
wai-quantum WebGPU member / shader checks · browser build · wasip2 inertness (pull_request) Successful in 5m24s
wai-quantum tensor-engine member / member · tensor engine, the kernel toolchain's simulator (linux) (pull_request) Successful in 10m27s
WAI Studio / the catalogue's actions, the unit tests and the core · linux (pull_request) Successful in 2m18s
wai-quantum studio and desktop / desktop app · linux (pull_request) Successful in 9m46s
wai-web reach builds / wai-web reach builds · the package of record, every output as recorded (pull_request) Successful in 3m26s
wai-quantum signal processor / processor and member · signal processor, emulated (pull_request) Successful in 15m56s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 24m32s
wai-quantum views in agent hosts / views · a scripted host (pull_request) Successful in 4m12s
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Successful in 7m12s
wai-quantum portable tensor program / tensor program · Metal and the arm64 CPU (macos) (pull_request) Successful in 28s
wai-quantum editors / editors · linux (pull_request) Successful in 21m6s
wai-quantum matrix-extension member / member · matrix extension absent (macos) (pull_request) Successful in 40s
wai-quantum CPU vector units / member · vector unit absent (macos) (pull_request) Successful in 24s
wai-quantum WebGPU member / member · browser WebGPU (macos) (pull_request) Successful in 2m28s
wai-quantum service / service · macos (pull_request) Successful in 4m1s
wai-quantum docs, course and locales / every command and snippet in the docs · linux (pull_request) Successful in 25m46s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 14m29s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 5m10s
WAI operation catalogue / the catalogue and every door · linux (pull_request) Successful in 34m22s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 9m28s
wai-quantum for JavaScript / javascript · linux (pull_request) Successful in 22m4s
wai-quantum service / service · linux (pull_request) Successful in 21m45s
WAI conformance / cargo-class corpora · macos (pull_request) Failing after 21m30s
WAI Studio / Studio in WebKit · linux (pull_request) Successful in 15m11s
wai-quantum WebGPU member / member · Metal (macos) (pull_request) Successful in 3m9s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 9m26s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 11m0s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 19m7s
wai-quantum CUDA member / member · CUDA (jetson-hub) (pull_request) Successful in 1m54s
wai-quantum OpenCL member / member · OpenCL GPU and CPU (jetson-hub) (pull_request) Successful in 53s
wai-quantum service / service energy · linux packages (pull_request) Successful in 1m36s
wai-quantum portable tensor program / tensor program · GPUs (jetson-hub) (pull_request) Successful in 1m40s
wai-quantum WebGPU member / member · GPU, Vulkan (jetson-hub) (pull_request) Successful in 19m45s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 23s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 14m29s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 20s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 47s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 2m37s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 19m3s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 24m8s
wai-quantum HIP member / member · HIP absent (linux-arm64) (pull_request) Successful in 1m37s
wai-quantum npu-cores member / member · npu-cores absent (linux-arm64) (pull_request) Successful in 36s
wai-quantum pulse and dynamics / the same bits · linux-arm64 (pull_request) Successful in 1m56s
wai-quantum tensor-engine member / member · tensor engine absent (linux-arm64) (pull_request) Successful in 27s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 8m24s
wai-quantum variational and algorithm library / parameters, gradients, optimisers, VQE, QAOA and builders · linux-arm64, release (pull_request) Successful in 2m9s
wai-quantum extension points / the registry and the example · linux-arm64 (pull_request) Successful in 3m4s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 3m44s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 30m5s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h38m5s

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Transaction-Science/open-standards!654
No description provided.