BioNexus v1.0.0-rc.1
Pre-release
Pre-release
·
37 commits
to main
since this release
[1.0.0-rc.1] - 2026-08-20
π‘οΈ Added (Data Governance & Data Egress Contract β BNS-SEC-001..010)
-
Runtime Egress Guard Engine (
src/bionexus/egress_guard.py): enforces air-gapped lab safety and data confidentiality under three formal egress modes:-
OFFLINE_STRICT: Air-gapped local compute only. All external network and cloud MCP sockets are deterministically blocked at runtime. -
ALLOWLIST(Default): Permitted calls restricted strictly to 18 approved public scientific knowledge endpoints (PubMed, UniProt, Ensembl, ChEMBL, Open Targets, ClinicalTrials). Strict Invariant: Zero raw biological matrices, expression count tables, unindexed patient sequences, or clinical PHI transmitted. Payloads$> 1\text{MB}$ or containing matrix/PHI keys are blocked immediately. -
CONNECTED: External calls permitted with mandatory cryptographic audit logging.
-
-
Cryptographic Audit Ledger (
logs/egress_audit.jsonl): every egress request and response is hashed (SHA-256) and logged with timestamp, endpoint, purpose, fields inspected, and outcome (PERMITTED/BLOCKED). -
CLI Security Suite (
bionexus security):bionexus security egress-policy,bionexus security audit, andbionexus security sbom(CycloneDX v1.5 JSON). -
Institutional Security Documentation Surface:
-
SECURITY.md: Vulnerability reporting (48h response), supported versions, and security architecture. -
docs/security/THREAT_MODEL.md: High-value assets, threat actors, prompt injection, MCP poisoning, and supply-chain mitigations. -
docs/security/DATA_CLASSIFICATION.md: 4-tier data classification (PUBLIC_BENCHMARK,PROPRIETARY_UNPUBLISHED,CONTROLLED_ACCESS_GENOMIC,RESTRICTED_CLINICAL_PHI). -
docs/security/SECRET_HANDLING.md: Zero hardcoded secrets invariant and pre-commit scanning. -
docs/security/SBOM.md&scripts/generate_sbom.py: CycloneDX SBOM generator. -
docs/security/RELEASE_SIGNING.md: Sigstore Cosign keyless release signing & GitHub Artifact Attestations.
-
π§ Changed (Context-Conditioned Epistemic Ladder β Rejecting "Magic Number" Refusals)
-
6-Stage Epistemic Decision Ladder: replaced simplistic
$N < 3 \to \text{refuse}$heuristics with a rigorous statistical ladder:
Design Identifiability?$\to$ Dispersion Estimability?$\to$ Uncertainty Quantified?$\to$ Power & Effect-Size Regime?$\to$ Claim Class Evaluated?$\to$ Evidence Ceiling Assigned. -
Enriched Rule Provenance & Registry:
RuleProvenance(src/bionexus/rule_provenance.py),src/bionexus/data/rule_registry.json, andreview/SCIENTIFIC_RULE_CATALOG.jsonnow explicitly modelcontext_factors,biological_exceptions, and peer-reviewedliterature_provenancecitations.
π¬ Added (Flagship Capabilities Empirical Credibility Closed Loop β 12/14 Criteria / VALIDATED Tier)
-
10-Dimensional Spatial Validity Confounder Benchmark (
evals/spatial_stress_test.py): actively tests 10 spatial confounder mechanisms: baseline, segmentation leakage, cell density, cell area morphology, nuclear eccentricity, tissue boundary effects, neighborhood radius sweep (15β100$\mu m$ ), transcript spillover, FOV batch confounding, and coordinate permutation null. -
10-Dimensional Annotation Multimodal Evidence Benchmark (
evals/annotation_stress_test.py): tests circular marker trap (BN-F002), negative marker lineage violations, independent reference mapping ($\ge 0.70$ ), CITE-seq surface protein concordance ($\ge 0.75 \to \text{ROBUST}$ ), discordant modalities (CONFLICTED), open-set gating (ABSTAIN), doublet artifacts, clustering resolution sweep, and adversarial overclaim interception. -
Elevation to VALIDATED Tier: elevated
scrna.annotation_evidenceandspatial.inference_validityalongsidescrna.pseudobulk_detoVALIDATEDtier with 12/14 criteria satisfied.
π¦ Changed (CI Matrix Overhaul β Zero || true, Explicit Reliability Tiers)
-
Eliminated all
|| trueerror suppression in.github/workflows/ci.yml. -
Three Structured Matrix Tiers:
-
core-matrix: Python 3.10β3.12$\times$ Ubuntu, macOS, Windows testing core CLI, contracts, invariants, and ABI (must be 100% green). -
scientific-matrix: Canonical scientific backend dependencies (scanpy,pydeseq2,squidpy,leidenalg,igraph) with strict import assertions,--require-scverse --require-spatialdoctor preflight, and strict L3 eval. -
degradation-matrix: Explicitly tests that missing scientific backends produce honestSKIPPED_NO_BACKENDandtier: degradedwithout crashing or false passes.
-
ποΈ Added (Community Governance & 7-Stage Closed-Loop Rule Challenge Lifecycle)
-
7-Stage Closed-Loop Rule Challenge Lifecycle (
docs/governance/RULE_CHALLENGE_LIFECYCLE.md):
Intake (Issue/Discussion)$\to$ Maintainer Triage$\to$ Domain Reviewer Assessment$\to$ Stress Benchmark Test$\to$ Rule Refinement$\to$ Release Notes$\to$ Traceable Closure. -
Cleaned all
file:///local paths acrossCONTRIBUTING.md,README.md, anddocs/plugin-development.mdinto repository-relative links.
βοΈ Added (Evidence Model β Evidence Strength β Intended Use Requirement)
- Third warrant-engine decoupling (
src/bionexus/evidence_model.py): purpose decides the evidence requirement, never the evidence value. A study with 10 donors/group, pre-registration, adequate power, and an independent replication carries ROBUST evidence whether the researcher calls it exploratory or confirmatory; weak data does not acquire a REPLICATED standing because someone declares a clinical purpose. - Three explicit objects:
EvidenceAssessment(how strong the evidence IS β computed only from declared evidence factorsreplication / sample_design / effect_stability / external_validation / sensitivity_analysis / confound_controls / backend_fidelity / provenanceand active violations; purpose- and policy-independent by construction),ClaimContext(nine claim classes, descriptive β clinical_actionability, each with its own minimum bar viaCLAIM_REQUIREMENTS), andUseRequirement(purpose + claim class composed β the only place purpose enters). evaluate_sufficiency()compares evidence against the composed bar:WARRANTEDΒ·WARRANTED_WITH_LIMITS(documented ack; the bar never moves) Β·NOT_SUFFICIENT_FOR_INTENDED_USEwith an explicit gap list. Undeclared intended use is never sufficient for any use.research_purpose.py:PURPOSE_EVIDENCE_CEILINGis reinterpreted asPURPOSE_EVIDENCE_REQUIREMENT(same numbers, new semantics; the old name survives as a deprecated alias).PurposeContext.required_evidencereplacesevidence_ceiling(deprecated).assess_warrant()accepts anEvidenceAssessmentand starts the ceiling from what the evidence is worth;evaluate_viability_with_purpose()threadsevidence_factors/claim_context/documented_extrasand attachesevidence_assessment+sufficiencyto the EvidenceCard.- 16 new theory-invariant tests (
tests/unit/test_evidence_model.py), including the two canonical examples: ROBUST + population_effect + confirmatory β WARRANTED; SUPPORTED + clinical β NOT_SUFFICIENT_FOR_INTENDED_USE.
π‘οΈ Added (Backend Identity Conformance β BNS-EF-012..016 / BN-F010)
src/bionexus/backend_conformance.py+ CLIbionexus backend-identity: every canonical capability now answers a machine-checkable identity audit β claimed backend, observed executed backend, entry points, version, execution fingerprint, and fallback flag.declared_backend == observed_backendis verified via the installed-distribution witness (importlib.metadata.packages_distributions).
π Changed (Release Pipeline Automation & Dynamic Pre-Release Tagging)
-
.github/workflows/release.ymlautomatically detects-rc,-alpha,-betatags and setsprerelease: trueon GitHub Releases. - Verified clean-venv wheel execution gate: Version SSOT
$\to$ ruff$\to$ unit tests$\to$ full scientific backend$\to$ strict benchmark$\to$ build$\to$ clean venv$\to$ wheel install$\to$ doctor$\to$ registry check$\to$ backend identity$\to$ strict eval$\to$ manifest validation$\to$ SHA256$\to$ GitHub Release.