> ## Documentation Index
> Fetch the complete documentation index at: https://prod-mint.classiq.io/llms.txt
> Use this file to discover all available pages before exploring further.

# 1.6.0

Released on 2026-03-15.

## Upgrade Instructions

* [Python SDK](../getting-started/registration_installations.md/#platform-version-updates)
* The IDE upgrades automatically.

## Bug Fixes

* **Execution – `transpilation_level = None`:** When execution is run with no transpilation, the circuit is now submitted to the provider without any backend transpilation when it already uses only the provider’s basis gates. If the circuit contains gates not supported by the provider, an error is raised that lists the provider’s supported gates, the invalid gates in the program, and suggests using `transpilation_level = "decompose"` (or `transpile_to_hardware = "decompose"` in ExecutionPreferences).
* Re-enable negative indices for classical arrays.
* Fix user not getting redirected to login page when they try to synthesize but are logged out
* IDE - result page - change exported csv to be identical to shown tables
* **QLayer**: Fix saving models that contain a `QLayer` when `post_process` or the execution path use local functions or lambdas (e.g. `torch.save(model, path)` or saving an epoch state dict). Such callables are now omitted from the pickled state and re-created or restored after load so that save/load no longer raises "Can't pickle local object".
* Add indicative error message when calling a classical function with quantum
  arguments in an arithmetic expression.

## Enhancements

* **Predefined noise models for Classiq simulators:** Add optional `noise_model` on `ClassiqBackendPreferences` to run Classiq Aer, Nvidia, and Braket Nvidia simulators with a device-style noise model. The value is a predefined name in the form `<provider>_<target>` (e.g. `ibm_pittsburgh`, `ibm_boston`). Supported names are listed in `CLASSIQ_NOISE_MODELS`; initially IBM backend names are supported. The noise model is built from the provider (e.g. via IBM Runtime) and passed to the underlying AerSimulator.
* **IonQ execution:** Replaced explicit `noise_model` with an `emulate` flag on `IonqBackendPreferences` and `IonQConfig`. Set `emulate=True` (default `False`) to run on the IonQ simulator with a noise model derived from the backend name (e.g. `qpu.aria-1` → `aria-1`). Only valid when the backend is a QPU. See [IonQ backends](../user-guide/execution/cloud-providers/ionq-backends.md/#usage) for details.
* **QLayer check-pointing**: Prefer saving only weights with `torch.save(model.state_dict(), path)` and `model.load_state_dict(torch.load(path))`. For whole-model save/load, if `post_process` is not picklable it is omitted and a warning is logged; after load call `layer.register_post_process(your_post_process)` before using the model. New constructor option `serializable_post_process=False` skips pickling `post_process` and suppresses the warning when you know it is not serializable.
