### wai-quantum 0.6.11 and wai-quantum-cli 0.1.0: one job engine for the service, the command line and a browser tab

Additive, apart from two refusals and an admission noted below. Every pinned digest is unchanged.

- **`wai_quantum::engine`** (feature `quantum_engine`) is the job service's engine, moved into the library.
  - `catalog` plans a job onto the strongest method it admits, and says why.
  - `run` carries the plan out.
  - `dynamic` runs programs that measure in the middle.
  - `receipt` is the service's receipt form: a result sealed over the request and the result in their RFC 8785 canonical text.
  - `job` takes a job end to end and checks it.
  - `draw` writes a program's circuit as text.

  The service imports all of these. A job now gives the same result and the same receipt form whether it runs on the service, on the command line or in a browser tab.
- **The engine builds for `wasm32-unknown-unknown`.** There a result carries no `elapsed_ms`, since a tab has no clock std can read. The multi-seed cut-rank order search runs its seeds one after another and finds the same orders.
- **A noise channel the model does not know is refused** (`catalog::NOISE_CHANNELS`). It was read as no noise, so a misspelt channel ran the circuit noiseless.
- **The job's memory margin is counted once for a program that measures in the middle on the state vector,** as it is for trajectories. It was counted once per state, and the service refused a qubit it could hold.
- **`quantum_receipt::did_key`** gives an Ed25519 key's `did:key`, held to the W3C method's example.
- **`wai-quantum-cli` 0.1.0** is a new crate whose binary is `wai-quantum`. Its commands:
  - `run`: planned and run as the service runs it, signed with the user's key;
  - `plan`, `lint` and `draw`;
  - `submit` to the service;
  - `verify`, for any receipt this tool, the service or `lab` signs;
  - `key`, `methods` and `completions`;
  - `mcp`, which serves these tools to an agent over stdio;
  - `lab`, which holds the earlier command's research tools.

  It depends on the library alone. The `wai-quantum` bin and the `cli_keys` feature leave wai-rs.
- **Quantum Studio** (`wai/quantum-studio`) is one interface for the browser and the desktop app (`wai/wai-quantum-desktop`). Its editor:
  - highlights and completes OpenQASM;
  - marks the engine's diagnostics on their lines;
  - draws the circuit and shows the plan as the program is typed.

  It runs a job in the browser, on the desktop's native engine, or on the service, and checks each receipt where it runs. The desktop app runs each job in a process of its own and seals it with the user's key.

  Its assistant uses a local model with the engine as its tools. It checks and runs every program the model proposes before offering it, and marks any figure the engine did not compute.
- **`engine::job`** also splits into `plan_and_run` and `seal`, for hosts that run a job away from their key.
- **`engine::draw::layout`** gives a circuit's layout as data: its columns, and each gate's cells. The text drawing and Quantum Studio's diagram are both drawn from it. wai-web exports it as `engine_layout`, and the desktop app as `layout`.
- **Path search from independent restarts** (`quantum_tn::find_path_restarts`):
  - independent searches run side by side, and the cheapest plan is kept;
  - the plan is never costlier than one search, and is the same whatever the thread count;
  - the engine's `tensor_network` method runs 8 restarts natively and 1 in a tab, and the job option `path_restarts` (1–64) sets the count.
- **Release builds of `wai-quantum`.** A tag `wai-quantum-cli-v<version>` builds the binary on the project's runners and attaches each archive, with its SHA-256, to the forge release:
  - macOS, for Apple silicon and for Intel;
  - Linux, linked statically;
  - Windows.

  The same workflow writes a Homebrew formula and a Scoop manifest for the archives.
- **wai-web, feature `quantum_engine`:** `QuantumEngine` (run, plan, methods and signer), `engine_lint`, `engine_draw` and `engine_verify`, for a page. Tested in wasm32 under Node on every method a tab holds.

