Cut 12.0.0 and bump the package version in pyproject.toml, uv.lock, and
CITATION.cff.
Major, not minor: three breaking changes accumulated since 11.0.0 — the
agent now builds into a caller-owned graph config instead of maintaining
an internal registry (the graph_registry module, <state-dir>/graph.yaml,
and the rebuild-agent-graph subcommand are gone), the QC embedding stage
migrated from BioBERT to SapBERT with the model cache moving to
.tablassert/sapbert/ (#93), and build-fullmap's prebuilt extraction moved
into the Rust extension with force-build-contract validation before
install (#97).
The changelog needed restructuring, not just promoting: #93 and #97
appended their entries inside the 11.0.0 section, so the SapBERT,
abbreviation-stage, and prebuilt-extraction entries are moved into 12.0.0
where they belong, and the caller-owned-graph-config change landed with no
entry at all, so its breaking change (the removed --fullmap flag and
rebuild-agent-graph subcommand, in-place graph mutation, orphaned
registries, and the graph=/graph_path= API) is written up here.
Also ships in this release: approval_ids as a curated pass-through edge
field, build-kg --threads for parallel fullmap reads scaling past the 16
record shards (#101), release-mode dropping of zero effect-size edges
(#95), the species_context_qualifier derivation fix, and the fix that
stops fabricating a supporting study for sections with no publication and
nothing to preserve (#99).