Currently v0.8.7. Engine updates surface here as they ship.
What's changed in the engine's user-visible output, in reverse chronological order. Pre-1.0 versioning convention:
0.x.0 — feature additions, output-shape changes0.x.Y — quality fixes, prompt refinements, copy updates1.0.0 — reserved for first paid Tier 1 customer signing a contractDCFN-Bio is the newest member of the DCFN portfolio (announced 2026-04-29). It applies the same engine substrate that powers DCFN-Patents and DCFN-Research to bio-literature: PubMed corpus, KEGG / Reactome pathway data, structural gap detection in biomarker / mechanism research. Engine pipeline is in active development; current state is the Tier 0 try-me scaffolding with payment + delivery infrastructure live and the substantive engine pipeline pending.
The Paper anchor now analyzes exactly the papers you list — it no longer expands the corpus around them via PubMed related-articles. A real 3-DOI run (three tumor-microenvironment / myeloid-immunology papers) had drifted into HIV, glioblastoma, and drug-resistance clusters because ~36 engine-chosen papers were scooped in around the 3 you picked. That broke the whole point of a curated set: determinism — you know exactly what went in, and the corpus is auditable.
Now: paper mode reads only your DOIs/titles (cap raised 15 → 40, the intended set size); the citation graph still wires cross-paper edges between them, but no outside papers enter the corpus. A thin set yields a thin read — the corpus-confidence banner says so and, in paper mode, tells you to add more DOIs (not "broaden a query"). For convergence and contradiction signals, provide ~15-40 papers from independent labs, mostly primary research, with some that disagree. The run page now states this up front.
The Landscape Briefing now leads its findings with Structural Voids + Recommended Trajectory — the "here's the white space, here's where to point a program" payload — instead of the convergence detail. The convergence anchors (What Emerged) and the severity-ranked gaps (What's Missing) drop to the support tier directly below; the descriptive Landscape (communities, foundations, frontiers) stays behind them; the honesty section (How to Read / Limitations) stays last.
Sequencing only — no section added or cut. This reprioritizes the earlier convergence-first order for the Briefing toward the engine's most decision-relevant output for a program lead. (The Methodology Audit's program-first order — Executive Finding → Actions → Experiments, with the Filing Blueprint as the end hand-off — is unchanged.)
The Paper anchor now accepts multiple DOIs or titles (one per line, up to 15) instead of a single paper. Each becomes a seed: the engine resolves it to PubMed, then expands the corpus around it via PubMed related-articles (pooled round-robin so no one paper dominates), guaranteeing the seeds are present and tagged.
Why: a single paper is a thin corpus — convergence is a size problem and contradiction a composition problem, so one anchor gives the engine almost nothing to triangulate across. Seed-and-expand keeps the run centred on the papers you care about while giving the engine real cross-paper structure to read. DOIs match on PubMed's article-identifier index; titles fall back to a best-match search. A clear error now distinguishes "none of your papers resolved" from a generic empty query.
The cross-build artifact standard (Bio first; Research + Patents to follow). Header on page 1:
document title + DCFN Engine v{version} (left), Living Eden Frameworks LLC · DBA Co Creators /
Domain Cognitive Foresight Network / {build}.livingedenframeworks.com (right). Running footer on
every page: DCFN-{Build} · {doc type} · {build}.livingedenframeworks.com with
© {year} Living Eden Frameworks LLC · All rights reserved · v{version} engine build beneath it
(left), Page N of M (right). The provisional/continuation-memo variant appends the attorney-review
disclaimer to the footer. No patent-attribution block on the deliverable.
The recurring critique line: "let the practitioner encounter the void and its survivability posture first, because it is already in the documents — you just aren't letting it lead." Taken literally that means moving the Filing Blueprint to the front, which re-centers the audit on the IP reader (the program lead is the primary reader; that ordering is locked). This honors the line without reopening the lock: the Executive Finding — which already leads the document — now leads with the void and its survival math. It states, in order, (1) the structural exposure / broken thesis, (2) the void that exposure opens, and (3) the void's survivability posture (the falsification- integrity figure when computable, or honest "indeterminate pending validation"). The full Filing Blueprint stays at the end with the detail; the practitioner now encounters the void and whether it survives in the first breath, and the document stays program-lead-first.
{run_id} — {run_mode} — {Landscape Briefing|Methodology
Audit} — {run-name}.pdf (run_mode = biomarker / mechanism / pathway / paper).DCFN-Bio · {doc type} ·
bio.livingedenframeworks.com, right-aligned Page N..docx is still produced and offered as a secondary download;
PDF is primary. Soft-fail: if WeasyPrint is unavailable the run still ships the .docx.{run_id} — Landscape Briefing — {run-name}.pdf and
{run_id} — Methodology Audit — {run-name}.pdf, where the run-name is a clean summary of the
query (e.g. KEAP1-NRF2 activation in KRAS-mutant NSCLC) — replacing the generic
bio_{id}_article.docx / methodology_audit_memo.docx.Three fixes from the v0.7.2 run session.
PI3K-AKT-mTOR signaling (KEGG hsa04151) pathway — returned ZERO
PubMed articles because the ID was AND-conjoined and matches no abstract. The search now strips
(KEGG …) / (Reactome …) / hsa##### / R-HSA-… / GO:… before querying PubMed (10 hits
instead of 0); the ID still feeds pathway enrichment via the original query. Class fix, not just
the one phrasing.Multi-model critique of the v0.7.0 Blueprint converged: the close works, the architecture is ahead of the output's legibility. These are the reader-neutral fixes (the IP-register asks — teach-away naming, PHOSITA-first sequencing, moving the Blueprint to position 2 — were pulled: they optimize for the patent attorney, and Bio's primary reader is the drug-discovery lead; that rendering belongs to the Discovery/Patents handoff, not Bio).
max_tokens 7500 → 12000 so the survival judgment lands.Two runtime fixes surfaced by live testing.
Run no longer crashes with "Cannot copy out of meta tensor." Newer torch/accelerate could
leave the Sentence-BERT model on the meta device (a shape-only placeholder), so a later move to
CPU threw and killed the whole run (seen on a paper/DOI run). The model now loads with an explicit
device="cpu", which materializes the weights at load time and avoids the meta path. Belt-and-
suspenders: if SBERT fails for any reason, the run now degrades to the TF-IDF backend instead of
crashing — a worse embedding, but a completed audit beats a dead run.
Over-constrained guided queries self-rescue. The guided intake assembles natural language ("KRAS as a predictive biomarker in NSCLC"), which PubMed AND-conjoins and can over-constrain to zero. On a zero-result search the engine now retries once with the scaffolding stripped to core terms ("KRAS NSCLC") before returning the "no articles" message — so a query that's merely phrased too tightly no longer dead-ends.
The recurring critique: the engine "sees the hard outward edges more clearly than the inward edges, and names the void without yet addressing what the void demands from a filing." It saw the void; it didn't say what occupying it requires. This closes that loop at the output level — the sensing layers (v0.4.0–0.6.0) made it possible to.
Filing Blueprint — what the void demands (new Methodology Audit section). After Contested Claims, the audit now closes from "here is the structural void" to "here is what a claim occupying it must recite, and whether that claim survives examination." For the single highest-value void (the Golden Trajectory target — one defensible target, not a ranked list), it states: what a claim must affirmatively recite (the non-obvious mechanism, from the deep-read methods evidence), what it must distinguish (the prior-art perimeter in the corpus), a survival judgment as a named number (the falsification-integrity score + refutation density from the adversarial pass — quantified, not "high refutation density"), and prior occupancy (the nearest existing instantiation, so a void is never presented as virgin territory).
Boundaries held, by design: - Ceiling — the blueprint is a STRUCTURAL characterization, never drafted claim text. The attorney writes the claim from it; the engine never does (rubber-stamp, not filing-ready). - PHOSITA residual — where occupying the void needs judgment the corpus can't supply, the engine names that gap as the point requiring practitioner input rather than asserting past it (the QECO human-at-low-confidence seat). - Routing, at delivery — the section closes with the explicit handoff: this is Bio's structural conclusion; take it to DCFN-Patents to map against existing claims / FTO / prosecution history. Bio names what the void demands; it does not search the patent corpus or evaluate claim construction. (Both surfaces, with a routing signal — not a handoff.)
Structural Readiness moved to the front (L1 Landscape Briefing). The compact "is this research-ready territory" verdict was buried in the audit appendix; it now sits at position 2, right after the abstract — distinct from the Capability Envelope (how-to-read orientation), which correctly stays in the appendix. Convergence anchors / what's-missing / where-to-go already lead from the prior reorders.
Not addressed here, by scope: cross-domain structural-fingerprint transfer (the "this corpus is ~95% similar to X, so the method ports" filing implication) needs ≥2 corpora compared, which a single-session Bio run cannot do — it belongs to the LEF Ai.E / Discovery cross-run layer and is the next build after Bio's walk-away point.
Widens ingestion beyond PubMed so the breadth lever reaches the literature PubMed under-represents, and corrects source claims the engine was making but not backing.
Preprints (bioRxiv/medRxiv) via Europe PMC — ingest_preprints.py. Negative / null /
failed-replication results surface first and disproportionately in preprints; the within-PubMed
dissent reserve (v0.5.0) couldn't reach them. Pulled through Europe PMC's SRC:PPR filter — the
keyword-searchable gateway to bioRxiv/medRxiv (their native API is date/DOI-based and can't
keyword-search). Tagged source_type=preprint → weighted 0.75, so they enter for breadth without
being over-trusted.
DOAJ open-access journals — ingest_doaj.py. Peer-reviewed OA venues (incl. regional, smaller,
non-English) that PubMed/MEDLINE may not index — long-tail coverage where OA journals carry a
share of the null findings high-impact subscription journals decline.
Breadth supplement — ingest_breadth.py. After the PubMed pull, a relevance slice AND a
dissent-targeted slice of each new source are deduped (by DOI + normalized title) and merged;
dissent-slice papers are tagged. Soft-fails per source.
Honest source attribution (integrity fix). The article previously claimed its corpus came from "Semantic Scholar, arXiv, PubMed, OpenAlex, GitHub, Hugging Face" and "seven databases" — stale copy ported from DCFN-Research; the live Bio engine reads none of those except PubMed. Corrected across the Method, How-to-Read, and Limitations sections to name the ACTUAL sources: PubMed/PMC (+ BioC-PMC full text), bioRxiv/medRxiv (Europe PMC), DOAJ, and KEGG/Reactome. The engine no longer names sources it does not read.
Three changes that complete the contradiction stack v0.4.0 began. Together they take a contradiction from "the audit can quote it" to "the engine can reason over it, stress-test it, and is structurally biased to find it."
Typed edges installed into the graph (not just a sidecar). v0.4.0 emitted replication edges
as a side-file the synthesizer read. Now the resolved edges (contradicts → CONTRADICTS, confirms
→ PROVES, extends → EXTENDS) are installed as real edges in the concept graph, so the CTE entropy
detector and SVW traverse them. Dangling claims (no resolved target paper) stay in the sidecar as
evidence. The connector universal projection (connector/graph_schema.py) also gains
CONTRADICTS/CONFIRMS/EXTENDS so a contradiction is a first-class relationship there too.
Adversarial falsification — Bundle A (64/061,710) Mechanism 2, reduced to practice. The sixth
CTE cognitive mode, run inward on the engine's own findings: each contested thesis (a claim
challenged by ≥1 installed CONTRADICTS edge) is run across the contradiction subgraph under a
five-skeptic panel (dissent / corroboration / independence / staleness / depth) → a survival
verdict (REFUTED / CONTESTED / CONFIRMED) and a falsification-integrity score (0..1, low = exposed).
The Methodology Audit now anchors its Contested Claims section on these verdicts: a REFUTED thesis
— dissent corroborated by independent, deep-read challengers — is the strongest "do not advance on
this claim" signal the engine produces. (Self-contained adversarial.py, vendored per-build like
the ledger; voting structure faithful to connector/contradiction.py, integrity semantics mirror
connector/falsification.py.)
Dissent-inclusive ingestion — the breadth lever. A relevance-ranked pull skews toward the
consensus/additive literature, which is why Contested Claims stayed empty on additive corpora. The
ingestion now reserves part of the corpus budget for the field's dissent — null / refutation /
failed-replication papers on the SAME query (appended with AND, so on-topic) — guaranteeing the
skeptic camp enters the corpus when it exists. Reserved papers are tagged; the audit reports the
count and, crucially, treats "dissent was pulled and still no contradiction formed" as meaningfully
stronger consensus evidence than a relevance-only pull. This is the breadth lever (whether a
contradiction exists to find), complementary to v0.4.0's depth lever (explaining why one
exists). Toggle with DCFN_BIO_DISSENT_INCLUSIVE=0.
The engine no longer reads abstracts only. This is the reduction-to-practice of Bundle A (App. No. 64/061,710), Mechanism 5 — Replication-Statement Extraction as Typed Contradiction Edges — the capability every prior Bio audit caveated as missing ("did not inspect full-text methods sections"). It changes what the deliverable can say: the audit can now ground a contradiction in the actual asserting sentence, not infer dispute from abstract framing.
Full-text, section-aware ingestion. For the papers available in PMC Open Access, the engine now fetches full text and tags passages by section (methods / results / discussion / intro), keeping the methods and discussion sections specifically — that is where pre-analytical handling, assay thresholds, and replication claims live. Coverage is a subset (PMC OA only); the engine reports how many papers were full-text read and the synthesizers state that depth honestly.
Typed replication edges. A new deterministic extractor scans the methods/discussion text for replication-signal phrasings and installs typed edges — contradicts / confirms / extends / inconclusive — each carrying the asserting paper, the sentence, the section, and (where an author-year token resolves to a paper in the corpus) the prior work it points at. Extraction is free (no API call); the LLM-grade adjudication of why papers conflict happens in the audit synthesizer, which now reads these edges as evidence.
What the reader sees. The Methodology Audit grounds its Contested Claims and reproducibility reads in the real text for the deep-read subset; the scope note, pre-analytical reads, and "what the engine could not see" are now coverage-aware (full-text for N of M papers, abstract-only for the rest) rather than blanket "abstract-only." The L1 Landscape Brief's how-to-read and limitations sections state the same coverage honestly.
This addresses the two-orthogonal-levers finding from the 2026-06-10 critique thread: depth (this change — explain why papers conflict + grade reproducibility on real methods) is distinct from breadth (ingesting the field's dissent — null/refutation/grey-lit, which decides whether a contradiction surfaces at all). Breadth is the next ingestion upgrade; this ships depth.
Two changes, both porting forward what DCFN-Research just proved and completing the locked BuildMe-DCFN-Bio L2 deliverable that the v0.3.0 memo (ported from Research's structure) never fully realized. No engine logic changed; reading order and the audit's structured sections did.
L1 Landscape Brief — findings-first reading order. The article opened with methodology (Structural Readiness + Capability Envelope) and buried the severity-ranked gaps below the landscape. Now the gaps lead, convergence anchors sit directly under them (elevated above the landscape mapping), and the audit/orientation material moves to an appendix below the findings. Demonstrate first, disclose second. (Ports DCFN-Research's 2026-06-09 Tier-1 legibility fix.)
L2 Methodology Audit — the locked spec's structured elements, now present. The audit memo gains what the BuildMe spec locked but the port never built: - Foundation health is called out explicitly (load-bearing papers vs. citation-inherited noise), and the audit now carries the obliteration-by-incorporation discipline: it must distinguish a foundation that is stale because abandoned (a genuine reproducibility risk) from one that is stale because so universally adopted that nobody cites it anymore (settled infrastructure, not a risk). Flagging the second as risky is exactly what loses a bench biologist's trust. - A per-load-bearing-paper methodology risk profile: a pre-analytical-handling read (sample storage, fasting, freeze-thaw, batch controls), a plain reproducibility-risk read with the structural reasoning behind it, and a recommended methodological alternative where the evidence supports one. Honest about granularity throughout — the engine reads abstracts and citation structure, not full-text methods, so a missing pre-analytical detail is flagged as "not reported at the granularity available," never asserted as omitted. - A translational-readiness read: TPP alignment, T1–T4 stage placement, and a mechanism- evidence-quality grade, framed as a research-structure read rather than a regulatory call. - A scope note in the header stating up front that this reads the published evidence base at abstract granularity, is not a clinical tool, and routes patent/FTO questions to DCFN-Patents.
Polish pass on top of v0.3.0's first end-to-end engine pipeline run. Four targeted fixes; no engine-substrate changes.
event svw_001 reference into customer prose. The translation-pass block in decision_memo_synth.py now carries an absolute-prohibition list (no svw_NNN, entropy_node_id, h_001, paperId, pmid:NNNNN, kegg:hsaNNNNN, raw composite=/severity=/confidence= parentheticals, or verbatim use of "entropy node," "golden trajectory," "SVW event," "apriori rule," "bridge node"). Mirrors DCFN-Research v0.5.1's discipline; orphan-year rule already in place.fetch_pathways_for_terms() now fans out across terms with a ThreadPoolExecutor (max_workers=6, one per term in the typical fan-out). Soft-fail per-term preserved. v0.3.0 smoke had pathway latency at ~167s of 207s total; expected ~30-40s post-fix._fetch_links() now retries 3× with 1s/2s/4s backoff on transient NCBI errors (Response ended prematurely, connection resets, 5xx). After 3 attempts the batch returns empty and the main pipeline continues (citation graph degrades gracefully; CTE/SVW handle empty edge sets).attribution.py and app.py → 0.3.1. Footer + engine_version surface the new build.run_l1_pipeline() is real, not a stubBio crosses from "substrate-with-stub" to "demoable engine." /analyze now invokes the full DCFN engine substrate against the user's biomarker / mechanism / pathway query, mirroring the proven DCFN-Research orchestration: PubMed corpus + KEGG/Reactome pathway anchoring → QEB encoding → concept graph construction → CTE five-operation traversal → apriori + SVW convergence detection → hypothesis generation → Article + Tech Report + Methodology Audit memo.
Engine substrate mirrored from DCFN-Research (proven code, no need to reinvent — every module is domain-agnostic except for the config.py parameters, which Bio adopts as-is for v0.3.0 since the embedding / graph / traversal thresholds are calibrated for static literature corpus analysis):
config.py — copied from Research; QEB / CTE / Apriori / SVW thresholds, embedding dim, temporal-decay constants, golden-token pathfinding weights. PubMed env vars already shared. Bio-specific overrides land in v0.3.x as we measure where bio corpora diverge from the cross-domain corpora Research runs against.qeb.py — QECO Module 1: Sentence-BERT (or TF-IDF fallback) encoding with three-signal adaptive confidence and epistemic grounding scoring.concept_graph.py — CTE typed concept graph: 16 node types, 14 edge types, temporal decay, domain tagging, OBI canonical-vs-stale resolution, hidden-citation detection, tooling-OBI signals.cte_operations.py — CTE five operations (Backward / Forward / Entropy / Branch / Golden Token) plus generate_hypotheses() for the DeepMind Generation gap.apriori.py — QECO Module 2: Apriori co-occurrence pattern discovery on semantic attributes.svw.py — QECO Module 3 / DeepMind Social Cognition gap: convergence clusters + convergence anchors.report_generator.py — Article + Technical Report renderers (markdown + .docx).New Bio-specific module:
decision_memo_synth.py — Methodology Audit + Hypothesis Validation Protocol + Lead Compound Recommendation memo synthesizer (Charter §19 prescriptive artifact). Persona: drug-discovery program lead at biotech / pharma R&D ($5M-$50M lead-compound bets). Mirrors DCFN-Research's decision_memo_synth.py structure (PersonaSpec dataclass, formatter helpers, .docx renderer with shared brand palette, soft-fail on Claude unavailability) with eight section structure: Executive Finding · Methodology Audit · Hypothesis Validation Protocol · Lead Compound Recommendations · Emerging Consensus · Contested Claims · Recommended Actions Ranked · What the Engine Could Not See. Same prompt-discipline scaffolding as Research v0.5.1 (paired-year-with-paper-title rule, translation-pass for engine jargon, action-led prose paragraphs).app.py orchestration (run_l1_pipeline()):
update_session() calls with stage field so the report-page poller can show progress (ingestion_pubmed → ingestion_pathways → qeb_encoding → concept_graph → cte_traversal → apriori → svw → hypotheses → render_reports → methodology_audit_memo → done).DCFN_BIO_MAX_ARTICLES (default 150) — bounded for sampler-tier latency. Citation-graph enrichment via PubMed ELink runs in-line.ANTHROPIC_API_KEY, Claude rate-limit, render error — Article + Tech Report still produced, session marked ready, memo_skipped_reason carries the explanation.pubmed_articles.json, pathways.json, dcfn_report.json, Article (.md + .docx + .txt), Tech Report (.md), Methodology Audit memo (.docx + .md sidecar) into data/sessions/{session_id}/.Pathway adapter:
ingest_pathways.py — added fetch_pathways_for_terms(terms, max_per_term=3) — heuristic-term fan-out (full query + bigrams + standalone tokens) with dedupe by pathway_id. Used by the orchestrator to anchor mechanism claims against pathway topology without forcing the caller to do its own NER.Version: app.py and attribution.py VERSION 0.2.1 → 0.3.0. Engine version exposed in dcfn_report.json meta as 0.3.0-prototype.
End-to-end smoke test (alpha-synuclein neurodegeneration, 60 articles): 207s wall-clock on local CPU (32s PubMed, 167s pathways, 2.5s QEB, sub-second graph + CTE + apriori + SVW, 100s methodology audit Claude call). Generated 5 hypotheses, 1 convergence event, 30 convergence anchors, 58 entropy nodes, 7 pathways, 2500-word memo. No tracebacks; soft-fails behaved correctly when ANTHROPIC_API_KEY was the gate.
tier_manager.py (dead code on Cloud Run)tier_manager.py deleted. Module polled Render's API to swap the service plan from "starter" to "pro" mid-payment. Cloud Run autoscales per service revision config (CPU/memory/GPU all defined statically), so per-plan swapping is N/A.app.py refactored:tier_ready now always True (no Render API to consult)/run Stripe-confirm handler — dropped record_payment + upgrade_to_active; verified-Stripe-cookie set is the only persistence layer/tier-status endpoint — short-circuits to {"plan":"pro","ready":true}, mirroring Patents v0.7.4's patternattribution.VERSION 0.2.0 → 0.2.1.Mirrors the DCFN-Patents (v0.8.0 → v0.9.0 → v0.6.0) and DCFN-Research (v0.4.0) playbook. Bio's Render URL was never shared publicly, so this is a one-shot cutover (no redirect-branch parallel run). Lays the substrate for Cloud Run deploy + GCS-backed sessions; engine pipeline (PubMed → KEGG/Reactome → concept graph → CTE → Methodology Audit) still pending per CHANGELOG v0.1.0.
Dockerfile base swap. python:3.11-slim → pytorch/pytorch:2.4.0-cuda12.1-cudnn9-runtime. SentenceTransformer auto-detects torch.cuda.is_available() and uses GPU when present (Cloud Run with --gpu=1 --gpu-type=nvidia-l4 gets ~50-100x speedup on SBERT-heavy steps); falls back to CPU transparently when no GPU is attached. v0.2.0 Cloud Run deploy runs CPU-only (engine pipeline doesn't yet make SBERT load-bearing); GPU attachment follows when concept-graph + CTE traversal land. COPY . . instead of selective copies so new modules land automatically.session_storage.py. LocalSessionStorage / GCSSessionStorage adapter behind a single session_store singleton. Backend selected via DCFN_SESSION_BACKEND={local,gcs}; gcs requires DCFN_SESSION_BUCKET. Defaults to local (no behavior change for local dev). Cloud Run sets DCFN_SESSION_BACKEND=gcs DCFN_SESSION_BUCKET=lef-ai-dcfn-bio-sessions.tier_config.py. Per-tier engine knob overrides (Tier 0 / 1 / 2). Tier 0 baseline preserves existing scaffolding behavior (pubmed_max_results=200 matches ingest_pubmed.DEFAULT_MAX_RESULTS). Tier 1 / 2 cap values are PLACEHOLDERS until the engine pipeline lands and we know which knobs are actually load-bearing for tier differentiation. Resolution: DCFN_TIER env → session_state["tier"] → dcfn_tier cookie → fallback tier_0.attribution.py. Single source of truth for footer attribution: BUILD_NAME, VERSION, LLC_NAME, LLC_DBA, NV_BUSINESS_LICENSE, PATENT_ATTRIBUTIONS, plus render functions. Patent attribution list matches the v0.1.1 site footer copy (CTE / QECO / Consolidated Supplemental / Tesseract Composition).compute_portfolio_topic.py. Tiny Claude call at end of L1 that infers a 1-3 word biotech topic label (e.g. "CRISPR Off-Target", "p53 Pathway") from pubmed_articles.json + pathways.json for use in Drive filenames. Mirrors Patents compute_portfolio_domain.py.requirements.txt. Added google-cloud-storage>=2.18,<3.0 for GCSSessionStorage (lazy import; LocalSessionStorage doesn't depend on it)..github/workflows/docker-publish.yml. WIF-authenticated GitHub Actions workflow that builds the Bio image and pushes to BOTH GHCR (ghcr.io/syntaricodex/lef-dcfn-bio) and Google Artifact Registry (us-central1-docker.pkg.dev/lef-ai/dcfn-bio/dcfn-bio) on every push to main + every v*.*.* tag.Bio doesn't yet ship a prescriptive deliverable: the engine pipeline that would generate one (Methodology Audit synth, "Hypothesis Validation Protocol" or "Lead Compound Recommendation Memo") isn't built. Bio cannot be marketed at customer-facing volume until that artifact exists per Charter §19. v0.2.0 closes the infra gap; the artifact gap is the next blocker.
attribution.py, tier_config.py, session_storage.py, compute_portfolio_topic.py exist but app.py still uses local data/sessions/ directly. Wiring follows when the engine pipeline lands.accounts.py / auth_session.py / usage_tracker.py — Phase 5+ work, gated on engine pipeline shipping.The v0.1.0 ship had no patent attribution in the footer — gap caught during a portfolio-wide audit. Bio rides the same substrate as Research and Patents (CTE + QECO + Consolidated Supplemental). Footer now matches the unified attribution shape used by the other DCFN-deployed sites:
"Built on the LEF Ai Engine — patented CTE cognitive traversal (App. No. 64/002,205), QECO optimization (App. No. 63/993,979), and structural-discovery substrate (Consolidated Supplemental, App. No. 64/043,294) · 8 U.S. Patents Pending"
Same correction applied to the Firebase brand site's DCFN-Bio card.
$85 / 30-day Pro tier access window unlocks unlimited Methodology Audit runs during the window. Stripe checkout via verify-on-demand callback (no webhooks). Render API integration auto-upgrades to Pro tier on payment, with a tier-status polling banner during the 2-5 min container rebuild.
Domain-Wide Delegation Drive publishing — generated artifacts upload to a dedicated Drive folder under the configured Workspace user's storage. No service-account quota burden.
PubMed E-utilities adapter (ingest_pubmed.py) — per-session PubMed ingest with citation graph enrichment. Pulls papers + abstracts + MeSH terms; uses ELink to populate references and citations PMID lists for each paper, supporting load-bearing-foundation detection in the Methodology Audit. Schema matches DCFN-Research's adapter so any shared downstream module reads it unchanged.
KEGG + Reactome pathway adapter (ingest_pathways.py) — pulls validated pathway topology (gene/protein members, pathway labels, source URLs) from both sources. Anchors mechanism evidence quality grading to actual pathway structure rather than prose claims.
/analyze returns a placeholder generating page; the substantive engine pipeline (concept graph → CTE traversal → Methodology Audit synthesis in biotech-regulatory vocabulary) is in active development. Phase 0 fruit-test target: 2026-05-11 against the p53 response pathway.Not a clinical tool. Public + research-grade data only. No identified patient samples. No diagnostic or prognostic claims. The engine's job is gap-surfacing for labs, funders, and regulators — not direct care.
Sampler scope by design. Each Methodology Audit produces a structural read of the user's specific biomarker / mechanism query — not an exhaustive landscape. The cap is a product choice, not a capacity limit.