### 0.14.1 {small}`2026-02-13`

```{rubric} Features
```
* Adds Dask support to decoupler methods for out-of-core processing of large datasets {pr}`558` {smaller}`S Dicks`
* Adds `gauss` (adaptive Gaussian kernel) and `jaccard` (PhenoGraph) connectivity methods to `pp.neighbors` via a new `method` parameter. Refactors `pp.neighbors`, `pp.bbknn`, and `tl.diffmap` internals with shared helper functions {pr}`563` {smaller}`S Dicks`
* Adds `base` parameter to `pp.log1p` and `exclude_highly_expressed`/`max_fraction` parameters to `pp.normalize_total`, matching scanpy's API {pr}`565` {smaller}`S Dicks`
* Adds Dask support and categorical covariate support to `pp.regress_out` {pr}`567` {smaller}`S Dicks`
* Adds `wilcoxon_binned` method to `tl.rank_genes_groups` — a histogram-based approximate Wilcoxon rank-sum test that supports Dask arrays {pr}`568` {smaller}`S Dicks`

```{rubric} Performance
```
* Optimizes `pp.harmony_integrate` with a new `batched` correction method that processes all clusters simultaneously and multiple new CUDA-Kernels that speed up the fuzzy clustering. Changes default `correction_method` to `"batched"` {pr}`557` {smaller}`S Dicks`
* Speeds up `tl.rank_genes_groups` for scipy sparse inputs with a parallel Numba CSR-to-CSC conversion and direct CSC indptr pointer copy for column subsetting {pr}`560` {smaller}`S Dicks`


```{rubric} Bug Fixes
```
* Fixes `get.aggregate` with `return_sparse=True` failing for more than 8 groups and producing incorrect results for groups with empty categories {pr}`559` {smaller}`S Dicks`
* Fixes sparse PCA gram matrix kernel producing incorrect results with unsorted CSR column indices, which becomes relevant with CuPy 14 no longer guaranteeing sorted indices in CSR matrices {pr}`566` {smaller}`S Dicks`
