Skip to content

BioNexus v1.0.0-rc.1

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Aug 10:12
· 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, and bionexus security sbom (CycloneDX v1.5 JSON).
  • Institutional Security Documentation Surface:

🧭 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, and review/SCIENTIFIC_RULE_CATALOG.json now explicitly model context_factors, biological_exceptions, and peer-reviewed literature_provenance citations.

πŸ”¬ 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_evidence and spatial.inference_validity alongside scrna.pseudobulk_de to VALIDATED tier with 12/14 criteria satisfied.

🚦 Changed (CI Matrix Overhaul β€” Zero || true, Explicit Reliability Tiers)

  • Eliminated all || true error 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-spatial doctor preflight, and strict L3 eval.
    • degradation-matrix: Explicitly tests that missing scientific backends produce honest SKIPPED_NO_BACKEND and tier: degraded without 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 across CONTRIBUTING.md, README.md, and docs/plugin-development.md into 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 factors replication / sample_design / effect_stability / external_validation / sensitivity_analysis / confound_controls / backend_fidelity / provenance and active violations; purpose- and policy-independent by construction), ClaimContext (nine claim classes, descriptive β†’ clinical_actionability, each with its own minimum bar via CLAIM_REQUIREMENTS), and UseRequirement (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_USE with an explicit gap list. Undeclared intended use is never sufficient for any use.
  • research_purpose.py: PURPOSE_EVIDENCE_CEILING is reinterpreted as PURPOSE_EVIDENCE_REQUIREMENT (same numbers, new semantics; the old name survives as a deprecated alias). PurposeContext.required_evidence replaces evidence_ceiling (deprecated). assess_warrant() accepts an EvidenceAssessment and starts the ceiling from what the evidence is worth; evaluate_viability_with_purpose() threads evidence_factors / claim_context / documented_extras and attaches evidence_assessment + sufficiency to 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 + CLI bionexus 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_backend is verified via the installed-distribution witness (importlib.metadata.packages_distributions).

πŸš€ Changed (Release Pipeline Automation & Dynamic Pre-Release Tagging)

  • .github/workflows/release.yml automatically detects -rc, -alpha, -beta tags and sets prerelease: true on 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.