- pyproject.toml: add a figures extra with matplotlib (used by the two figure
scripts) so the environment is reproducible from pyproject alone.
- partition.py: correct the partition_eval_split docstring (simulated per-client
eval sets from the global split, not client-owned held-out data).
- protean_cnn.py: extract_embeddings now moves batches to the model device.
- posthoc_statistical_audit.py: refuse to write an empty table.