## genomoncology/biomcp — v0.8.20…v0.8.21

_319+ commits._

### Features
- **Apply code-review fixes: tighten fence closing, strengthen payload assertions, add discover prose** (6bb4fbc)
- **Add mustmatch lint for bash sections** (dd88d3a)
- **Merge Add date range filter to article search** (bf548ce)
- **Add --year-max/--date-to conflict test and spec assertion** (f85f67d)
- **Add date range filter to article search** (c8d3221)
- **Add article year-range CLI contract** (6aff304)
- **Merge Consolidate EnvVarGuard and TempDirGuard into central test support** (8ad14e0)
- **Tighten Python contract test: use regex patterns and add import/comment fixture** (f34f9af)
- **Merge Add article search fallback suggestion when discover resolves no entities** (52786d9)
- **Add discover article search fallbacks** (a175812)
- **Merge Disambiguate FAERS 404 and add ClinicalTrials gov AE fallback** (699d4aa)
- **spec: add search adverse-event disambiguation fixture spec** (770b0ed)
- **Disambiguate FAERS 404 and add CTGov AE fallback** (75b8d66)
- **Merge Add docs-only validation profile to biomcp** (c7420ba)
- **Add docs-only validation profile to biomcp** (5ac5dec)
- **Merge Add EMA regulatory region for European drug approvals** (9ea4f6a)
- **Add EMA region support for European drug approvals** (c34e629)
- **Merge Add entity-aware HATEOAS suggestions to article search** (37f69d4)
- **Add missing test coverage from code review** (9275fb3)
- **Add entity-aware article follow-up suggestions** (f27e8e7)
- **Add study CLI help descriptions** (0f18d57)
- **Merge Add meta next commands to search JSON output** (7951cab)
- **Add search JSON next-command metadata** (8365cc0)
- **Add self-update tar extraction tests** (eab1009)
- **Add mustmatch anchors to counts-only JSON spec block** (3df5475)
- **Add code-review repairs: root API smoke test and stricter layout assertion** (861e34b)
- **Add blog article: Daraxonrasib in 6 BioMCP Commands** (2a47a0d)
- **Add owner-local dispatch smoke tests for extracted family runtimes** (94097ac)
- **Add validation profile contract surfaces** (96db1db)
- **Merge Add NIH Reporter funding data integration** (692d6a0)
- **Add NIH Reporter funding data integration** (1ff05f6)

### Fixes
- **Fix PubMed EDAT extraction: read from history array not top-level field** (7040eb7)
- **Fix stale spec summary table and add discover fallback parser-validity tests** (478a401)
- **fix: strengthen short mustmatch pattern in study download error spec** (9159be7)
- **Fix study-download fixture cleanup to verify PID ownership before kill** (30b39fb)
- **Fix ema.md: --region all includes WHO in description** (1455f2f)
- **Fix spec: make phantom tests collectable and fix backtick shell quoting** (bf19977)
- **Fix spec ratchet: strengthen short RMC-6236 mustmatch patterns** (5b2ae90)
- **Merge Fix make test-contracts 7 failures** (45471b7)
- **Fix MCP allowlist ratchet fixture** (661536a)
- **Merge Fix documentation drift: README sources, CHANGELOG WHO, root help count** (e0b9ed7)
- **Fix documentation drift: README sources, CHANGELOG WHO, root help count** (9bbdef7)
- **Fix source inventory documentation drift** (fd37f65)
- **Merge Add study CLI help descriptions and regression test** (4d6b771)
- **Fix short mustmatch pattern in download help spec (quality ratchet)** (546278c)
- **Fix spec collection: add mustmatch pipe to search JSON next_commands sections** (b70416f)
- **Apply code-review repairs: drug EU active_substance fix, WHO test upgrade, disease spec assertion, recall/device-event unit coverage** (a2da248)
- **Merge Fix search all --counts-only JSON contract and performance** (290ee91)
- **Fix daraxonrasib install block: biomcp-python -> biomcp-cli** (0d1663d)
- **Fix Age Filter Count Stability spec to be collected by mustmatch** (0209ea6)
- **Fix stale spec path reference after trial.rs decomposition** (dd456f1)
- **Fix TBD lint false positive in anti-placeholder assertion** (4cff088)
- **fix: wrap disease mock-server tests in with_no_http_cache to prevent cache interference** (c72d64f)

### Backend
- **Release v0.8.21: version bump, CHANGELOG, and release contract tests** (d7861b0)
- **Merge Lint: spec bash blocks without mustmatch pipe are silently uncollected** (ba0ae4d)
- **Wire article year filters through backends** (1a4d7e3)
- **Centralize shared test guards** (9aa1975)
- **Merge Surface Europe PMC and PubMed first index date in article search** (8d846d5)
- **Clamp footer day delta to 0 for future-indexed dates** (10bc964)
- **Surface article first index date** (7e558a4)
- **Merge Collect Compact Approval Fields spec block** (ae5447d)
- **Collect Compact Approval Fields spec block** (d60c17c)
- **Disambiguate FAERS adverse event fallbacks** (fa24804)
- **Merge Refresh architecture docs for post-decomposition state** (af32527)
- **Merge Improve error messages for study download 403 and DisGeNET 403** (1b76c05)
- **Improve 403 guidance for study download and DisGeNET** (70685b4)
- **Document article and discover suggestion contracts** (f606bc3)
- **Merge Expand trial search with drug alias union** (de33605)
- **Code review fixes: tighten alias cache, validation, specs** (cb19681)
- **Expand CTGov trial search alias union** (666b823)
- **Tighten source-integration contract assertions to section scope** (e5b678f)
- **Align source integration contract checks** (4e2bdbb)
- **Merge Untrack .march artifacts from git** (1f1c390)
- **Untrack March artifacts from git** (ac39151)
- **Tighten proof assertions for WHO changelog and MCP initialize contracts** (88326b2)
- **Strengthen study help test assertions per code-review fixes** (6e6ad4a)
- **Merge Surface opt-in sections in disease and gene base card discovery** (e3d17ce)
- **Surface opt-in sections in disease and gene base card discovery** (5e211a2)
- **Apply code-review spec repairs: move gene/disease next-command assertions to ungated spec/11 heading** (760bd49)
- **Surface disease and gene section follow-ups** (091521f)
- **Define disease/gene discovery contract** (d7d1369)
- **Merge Update tar and rustls-webpki for RustSec advisories** (2aba9af)
- **Update tar and rustls-webpki for RustSec advisories** (f067ff9)
- **Update lockfile for tar and rustls advisories** (e68aafe)
- **Strengthen counts-only JSON spec anchors to pass quality ratchet** (4097519)
- **Implement search-all counts-only JSON projection** (e80e490)
- **Define search-all counts-only contract** (0ee2ba4)
- **Merge Decompose transform article.rs into ranking submodule** (609590b)
- **Refactor transform article module** (3ede0a0)
- **Merge Scrub biomcp-python from daraxonrasib blog article** (e6587e6)
- **Merge Decompose variant.rs into variant submodule** (9bbb04b)
- **Decompose variant.rs into variant submodule** (95c22b7)
- **Decompose variant entity into submodules** (cb26bc8)
- **Merge Publish daraxonrasib six-commands article to biomcp.org** (9b7f1ae)
- **Merge Decompose trial.rs into trial submodule** (7220d38)
- **Decompose trial entity into submodules** (deb976d)
- **Merge Move CLI tests to sidecars and finalize mod.rs facade** (8343d0b)
- **Move CLI tests to sidecars and finalize mod.rs facade** (f503b5c)
- **Split oversized CLI sidecar test modules** (dc04e7c)
- **Finalize CLI sidecar moves and mod.rs facade** (45c8b4c)
- **Move variant and trial CLI tests to sidecars** (aa3c236)
- **Extract shared CLI helpers** (93ac89f)
- **Move top-level CLI tests into sidecars** (c2c2aa7)
- **Merge Relocate CLI runtime and outcome into family modules** (982eeae)
- **Relocate CLI runtime and outcome into family modules** (7f8cb28)
- **refactor cli runtime into family modules** (94a9d22)
- **Merge Extract CLI family payloads into per-entity modules** (c78e054)
- **Extract CLI family payloads into per-entity modules** (c2e4d5f)
- **Move CLI family parse/help tests into owner modules** (4bf988c)
- **Stabilize spec and ratchet checks** (ca0b600)
- **Extract CLI family payload modules** (44fbcf1)
- **Merge Audit spec-pr lane and trim or nightly-move slow headings** (ef7bf8c)
- **Apply code-review fixes: strengthen timing assertions and update RUN.md** (2342228)
- **Audit spec-pr lane timing and document smoke inventory** (99f8564)
- **Merge Adopt cargo-nextest and pytest-xdist for parallel test execution** (5947f21)
- **Adopt cargo-nextest and pytest-xdist for parallel test execution** (3530a7b)
- **Apply code-review fixes: strengthen timing assertions and update RUN.md** (366150a)
- **Record parallel test timing gains** (6647733)
- **Adopt nextest and xdist for repo-local tests** (c92f180)
- **Merge Declare biomcp validation profiles and standardize the local pre-commit hook** (d17fc46)
- **Strengthen validation-tier doc-contract assertions from code review** (36a9c23)
- **Record profile timings and align remaining contracts** (e30b2d2)
- **Merge Decompose render/markdown.rs into markdown submodule** (a778c73)
- **Code review fixes: doc comments, file sizes, test sidecars, dropped disease test** (16f6ef3)
- **Stabilize discover executable specs** (761f890)
- **Extract remaining markdown renderer modules** (0a95934)
- **Extract markdown renderer submodules** (475eed2)
- **Extract markdown shared helper modules** (8e224bd)
- **Scaffold markdown directory module** (011aad7)
- **Extract shared CLI types and test helpers (partial from 180)** (469ae41)
- **Extract shared CLI types and test helpers** (243056e)
- **Temporarily ignore flaky EMA stale refresh validator header test** (9fbccce)
- **Merge Decompose disease.rs into disease submodule** (7f13418)
- **Refactor disease entity into submodules** (c37e9a3)
- **Merge Decompose drug.rs into drug submodule** (d11dc2c)
- **Merge Decompose article.rs into article submodule** (ecdbf9a)
- **Move article inline tests into module-owned sidecar test files** (17f02db)
- **Refactor article detail batch and graph modules** (878136d)
- **Refactor article search pipeline modules** (fe2f999)
- **Refactor article candidate and ranking modules** (082554b)
- **Refactor article filters planner and query modules** (5f835ee)
- **Merge Port eval how-to guide table to production skill** (7dea706)
- **Port eval how-to guide table and anti-patterns to production skill** (e7ca6a1)
- **Apply code-review repairs: funding gate, summary wording, docs, specs (174)** (19421b5)

### Docs
- **docs: refresh post-decomposition architecture refs** (8fe1c85)

### Chore
- **build: align March validation profiles** (b8ab917)
- **refactor: extract drug search and get** (026584d)
- **refactor: extract drug label and metadata** (a076e7c)
- **refactor: extract drug query and targets** (00a69de)
- **refactor: scaffold drug submodule** (02d219f)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/genomoncology/biomcp?utm_source=github-action)._