- Extended WHO Prequalification drug coverage to include active pharmaceutical ingredients (APIs) via `search drug --region who --product-type api`
- Added CDC CVX/MVX vaccine identity bridge and VAERS adverse‑event source for default/EU vaccine searches
- Introduced local GTR‑backed `diagnostic` entity with multi‑source WHO IVD support, FDA 510(k)/PMA overlays, gene/disease pivots, clinical features from MedlinePlus/HPO, offline routing via `biomcp suggest`, workflow ladder sidecars, article full‑text fallback, and DDInter drug‑interaction workflows
Full changelog
0.8.22 — 2026-04-30
New features
- Extended WHO Prequalification drug coverage to include active pharmaceutical
ingredients (APIs) alongside finished pharmaceutical products;
search drug --region who --product-type apifilters explicit WHO searches
to API rows. (232) - Added the CDC CVX/MVX vaccine identity bridge for default and EU/all
vaccine-brand drug search, backed by local CDC bundle downloads and explicit
refresh viabiomcp cvx sync. (233) - Added CDC WONDER VAERS as the aggregate vaccine adverse-event source for
search adverse-event --source <faers|vaers|all>, including combined
vaccine search, health visibility, and source inventory/docs surfaces. (235) - Added the local GTR-backed
diagnosticentity withsearch/get diagnostic,
first-use bundle refresh, explicitbiomcp gtr sync, and the supporting
health/docs/spec contract. (236) - Expanded
diagnosticinto a local multi-source surface with WHO Prequalified IVD
infectious-disease products, source-aware search/get behavior, and explicit
biomcp who-ivd sync. (237) - Added FDA 510(k) and PMA regulatory overlays to
get diagnostic <id> regulatory, rendering source-aware FDA device status
when records match and a truthful empty regulatory section when they do not.
(238) - Added opt-in diagnostic pivots to gene and disease cards with
get gene <symbol> diagnosticsandget disease <name_or_id> diagnostics,
backed by local GTR and WHO IVD diagnostic search. (239) - Extended article search follow-up guidance with cross-entity keyword hints:
JSON_meta.next_commandsnow includes gene and drug pivots for recognizable
keyword patterns, while markdownSee also:addsdiscoverand
get diseaserecovery paths for short disease-like phrases. (242) - Added opt-in
clinical_featuresdisease output backed by MedlinePlus
clinical summaries, reviewed HPO phenotype mapping, source-native evidence
URLs, and unsupported-disease empty states via
get disease <name> clinical_features. (252, 253, 254) - Added offline routing via
biomcp suggest <question>so worked-example
prompts can resolve to structured_meta.workflowguidance without requiring
a live tool call. (279) - Added workflow-ladder sidecars and schema-backed
_meta.ladder[]payloads
so routed workflows can carry explicit ladder steps across the CLI/MCP
contract. (282) - Added richer CLI help examples for batch/variant-limit usage and preserved
the parser-level skill uninstall contract through current help and MCP guard
surfaces. (217, 224) - Added opt-in article fulltext source-boundary coverage and PDF fallback so
article retrieval can truthfully report source limits while recovering PDF
text when structured fulltext is unavailable. (255, 256) - Added DDInter-backed drug-drug interaction workflows with
biomcp drug interactions <name>,get drug <name> interactions, local
bundle health, source-scoped empty wording, andbiomcp ddinter sync.
(303)
Docs
- Added BioASQ-oriented how-to routing rows to
skills/SKILL.mdfor
gene-disease association, gene localization/protein-function, drug regulatory
date, and variant clinical-significance workflows, steering agents to
structured-data shortcuts before article search. (240) - Refreshed architecture, source-integration, and current-state docs so the
shipped architecture and CLI guidance match the post-decomposition repo
surface. (272, 273, 274, 275) - Repaired backtick quoting in the mustmatch study/spec contract, published
BioASQ benchmark guidance, and made the canonicalSKILL.mdrender/install
contract explicit for agents and operators. (276, 280, 281) - Aligned the public landing-copy contract with the shipped
suggestand
workflow landing bullets somake test-contractsaccepts the current README
and docs homepage feature counts. (286) - Refreshed source, licensing, versioning, CLI decomposition, diagnostic,
clinical-features, API-key, quality-bar, and staging-demo docs to match the
shipped v0.8.22 surface and current local-runtime key expectations. (222,
272, 292, 304, 306, 314, 318, 329, 332, 341, 358, 362)
Fixes
- Changed custom CLI validation failures (
BioMcpError::InvalidArgument) to exit
2, matching clap parser failures and separating bad usage from runtime
failures. (353) - Fixed
suggestso resistance-to-drug mechanism questions anchor starter
commands on the drug instead of filler text. (291) - Patched
rustls-webpkito the safe release line and mademake checkenforce
the cargo-deny advisory gate alongside the existing license gate. (290) - Fixed cargo-install compatibility, deterministic EMA freshness checks, OLS4
smoke routing, WHO drug JSON envelopes, and WHO API cache-limit wording so
install, health, and explicit WHO/API drug searches stay stable. (218, 220,
226, 232) - Added compact diagnostic rows and capped disease diagnostic pivots so
gene/disease diagnostic follow-ups stay scannable and bounded. (266, 267) - Replaced the stale GTR sample with a live-valid GTR example and added
zero-result recovery for the local diagnostic surface. (268, 269) - Tightened entity-aware article follow-ups with a same-session loop-breaker
for overlapping suggestions and PubMed ESearch cleanup for bounded
question-format filler words. (277, 278, 283) - Improved sparse drug research-code recovery, relational
discoverfiltering,
trial help example/flag consistency, and CTGov intervention alias preservation
so generated follow-up commands stay useful and shell-safe for degraded or
ambiguous inputs. (302, 310, 313, 338, 339, 340, 342, 351, 357) - Repaired the targeted
SPEC_SMOKE_ARGSlane so it stores stable smoke
section IDs and resolves them to current mustmatch pytest item IDs at runtime;
the quality ratchet now checks collectability before stale line-qualified
selectors can reachmake spec-smoke. (288) - Hardened update and machine-readable CLI contracts:
biomcp updatefails
closed when checksum sidecars are missing,biomcp --json versiondocuments
its plain-text exception,biomcp --json listremains parseable, and
short-literal update ratchets were replaced with structural behavior checks.
(331, 333, 352, 355) - Stabilized MCP stdio no-input guidance, cBioPortal study download idle/stall
handling, disease clinical-feature specs, OLS4 disease/discover fallback IDs,
WikiPathways parallel tests, and protein ComplexPortal specs with regression
coverage. (326, 336, 345, 346, 350, 354, 358) - Surfaced Semantic Scholar authentication/degradation status in article search
and honoredRetry-Afterduring authenticated retries so throttled searches
disclose source health and back off correctly. (364, 365, 366)
Internal
- Completed release/docs contract cleanup for the
0.8.22line so the latest
release notes, ticket inventory, and release metadata stay aligned. (264, 265) - Made
make checkinclude the public Python/docs contract lane and added
make release-gateas the named local release-blocking command, so
release-readiness docs and validation profiles share one contract. (287) - Reworked
SPEC_SMOKE_ARGShandling around stable smoke inventory and current
mustmatch pytest item IDs, and cleaned up.marchartifact handling for
repo submission paths. (270, 271) - Migrated the release gate to the spec-v2 corpus, made
spec-prself-contained
for March kickoff, restored release-gate reliability, and kept stable smoke,
canary, cache-warm, and test-contract lanes aligned with the current shipped
docs/spec surface. (294, 297, 298, 299, 300, 301, 307, 308, 344) - Decomposed oversized CLI modules, absorbed residual line-cap allowlists,
clarified the benchmark harness as internal, and added runtime-wiring/line-cap
ratchets so structural cleanup cannot reintroduce public-surface drift. (309,
319, 320, 321, 322, 323, 324, 325, 334, 335, 343, 347) - Strengthened release readiness with gene-all warm-budget coverage, local gate
uv-build fixes, leaked-artifact cleanup, binary asset attributes, CI wrapper
stale-binary warnings, Python 3.12/Rust 1.95 CI compatibility, self-contained
local-data spec fixtures, and final v0.8.22 readiness audits before publish.
(247, 258, 262, 263, 285, 289, 315, 316, 317, 327, 328, 330, 348, 363, 367) - Recorded the diagnostic-entity, HPO clinical-feature, Obsidian vault,
biomedical news, post-v0.8.21 shipped-surface, and neural-reranking reviews
as architecture or deferred work unless runtime wiring shipped in the bullets
above. (230, 243, 244, 245, 246, 284)