v0.4.0: Gaussian-state interop with the open quantum stack
This release turns the linearized machinery into ecosystem infrastructure. A new gaussian module computes the steady-state covariance matrix of the intracavity Gaussian state with a numpy-only Lyapunov solve, exports it in the standard xxpp quadrature ordering with an explicit hbar convention (vacuum exactly the identity at hbar = 2), and returns Williamson symplectic spectra for purity and entanglement checks. A QuTiP adapter, drift_from_qutip, turns any quadratic QuTiP Hamiltonian into a drift matrix the existing spectra machinery accepts, and refuses non-quadratic Hamiltonians rather than silently linearizing them. Install sqzcomb[interop] for the adapter.
New tests, all closed-form or exact-equivalence: vacuum covariance is the identity for a passive mode and a passive molecule at every coupling; the degenerate parametric oscillator covariance matches its decoupled-sector closed form at three pump strengths; the single-mode symplectic eigenvalue equals 1/sqrt(1 - mu^2) in hbar = 2 units and never violates the Heisenberg bound; and the released two-ring photonic_molecule drift matrix is reproduced exactly, including the rotating-frame sign convention, from a QuTiP Hamiltonian. 29 tests run without qutip (3 skip cleanly); all 32 pass with the interop extra installed.