Context
The package is notably safety-conscious (synchronous_safe guard, fail-fast config validation, double-layer qubit-range checks, unbiased entropy sampling), but two safety/cost concerns are not yet covered:
- No cost visibility for AWS. Braket bills per task plus per shot, and
device_arn can point at a real QPU. There is currently no ->estimateCost() or equivalent, so a user can dispatch an expensive run with no warning — at odds with the rest of the package's defensive posture.
- No upper bound on local-simulator qubits.
CircuitBuilder::qubits() only rejects counts < 1. A state-vector local simulator grows memory as 2^n, so a large qubit count (roughly >30) drives the Python process into an OOM kill, surfacing as an opaque subprocess failure rather than a clean, catchable AetherException with an actionable message. A configurable max_qubits guard would fail fast in PHP instead.
Context
The package is notably safety-conscious (
synchronous_safeguard, fail-fast config validation, double-layer qubit-range checks, unbiased entropy sampling), but two safety/cost concerns are not yet covered:device_arncan point at a real QPU. There is currently no->estimateCost()or equivalent, so a user can dispatch an expensive run with no warning — at odds with the rest of the package's defensive posture.CircuitBuilder::qubits()only rejects counts< 1. A state-vector local simulator grows memory as2^n, so a large qubit count (roughly >30) drives the Python process into an OOM kill, surfacing as an opaque subprocess failure rather than a clean, catchableAetherExceptionwith an actionable message. A configurablemax_qubitsguard would fail fast in PHP instead.