Releases: richarc/kino_qx
Releases · richarc/kino_qx
kino_qx v0.3.0
Changed
Kino.Qx.CredentialsCellnow reevaluates on change and rebindsqxautomatically. The cell is registered withreevaluate_on_change: true, so changing any persisted field (portal URL, region, backend, optimization level, shots) re-runs the cell and rebinds the notebookqxbinding. Previously, picking a backend after Connect updated the generated code text but did not rebindqxuntil the user manually re-ran the cell — a downstreamKino.Qx.run!/2would use a stale config. Visible behaviour change: editing a field now auto-re-runs the cell (on blur/commit, not per keystroke).- The Smart Cell is now a guided 3-step sequence — (1) Livebook secrets, (2) Portal & region + Connect, (3) Job defaults. Step 3 is locked until Connect succeeds and shows a "pick a backend to finish" affordance until a backend is chosen. Pushed events, the
__remembered__saved-backend handling, and the privacy invariant (tokens never in cell state /.livemd) are unchanged.
Fixed
- An unconfigured cell no longer silently emits a broken config. With no backend chosen,
to_source/1previously emitted%Qx.Hardware.Config{… backend: "" …}, which failed downstream with no actionable message. It now emits araisewith a clear instruction ("select a backend …"). Combined withreevaluate_on_change, picking a backend flips the cell from this guard to a validqxautomatically.
Security
to_source/1re-validatesoptimization_level/shotsbefore emitting them. A shared.livemdis plain text; a hand-crafted non-integer value would previously be interpolated verbatim into the generated cell source (which, withreevaluate_on_change, now auto-evaluates). Both fields are now routed through the existing validators with a safe fallback to the documented defaults, and the integer parsers reject trailing garbage.
Release 0.2.0
Credentials Smart Cell + Kino.Qx.run!/2 pipeline over Qx.Hardware (qx_sim 0.7.1). See CHANGELOG.md [0.2.0]. Package: https://hex.pm/packages/kino_qx/0.2.0