Changelog
Changelog
Kairos product versions, newest first. The single source of truth is kairos.__version__ (exposed at /kairos-api/health). Engine version: v0.1.0.
Honest scope across all versions: Kairos ranks dry-lab design quality (within-protein host-fidelity vs real titers, ρ≈+0.35) — it does NOT predict absolute expression/titer.
v0.19.6 — 2026-09-02 "a wider retrieval net"
- Retrieval recall boost. The candidate pool widened — 4→8 candidates per query in rewrite rounds, 6→12 in the main round — after a recall experiment showed a large share of retrieval failures came from a too-small candidate pool, not from index coverage.
v0.19.5 — 2026-09-02 "LLM fallback chain"
- Reasoning that survives a vendor outage. If the primary reasoning provider is unreachable, Kairos automatically falls back to its in-house Mac-hosted MLX model served through a private tunnel — and the dossier honestly labels which model answered (
llm:kairos-local-mlx (fallback)), so provenance extends to the reasoning layer itself.
v0.19.4 — 2026-09-01 "ANSWER-FIRST reports"
- The answer comes first. Report synthesis now opens by directly answering the question asked (with citations) instead of discussing around it, and declaring “no evidence” requires re-reading the full source scope first. Driven by failure attribution: reports that discussed but never answered were a top failure class.
v0.19.3 — 2026-09-01 "hypothesis quality: CORE-ANCHOR + fairer verdicts"
- Hypotheses must name what you asked. Hypothesis generation now carries a hard CORE-ANCHOR rule — every hypothesis must name the entity, mechanism, or comparison the question is about; generic template hypotheses are filtered programmatically and retried. Blind A/B judging preferred the new prompts overwhelmingly.
- Fairer verdicts. Adjudication criteria were recalibrated: “supported” means the evidence directionally supports the core claim (exact numbers or protocols not required); “insufficient” is reserved for evidence that is unrelated or absent.
v0.19.1 — 2026-08-31 "cross-turn world memory"
- Verified conclusions persist across turns. Hypotheses already adjudicated in an earlier turn are snapshotted into the conversation: the same hypothesis is not re-verified, and its verdict carries into later reports — follow-ups build on settled ground. Memory lives in process RAM, the same privacy tier as the conversation itself.
- Hypothesis events are persisted to the event stream (proposed / verified / memory-reused), so monitoring can consume them; plan-card wording was cleaned up in the same pass (v0.19.2).
v0.19.0 — 2026-08-29 "hypothesis-native research ledger"
- Every answer now runs on a hypothesis ledger. Research questions are decomposed into explicit scientific hypotheses; each is retrieved against and independently verified, and the report renders a verification card per hypothesis — supported / contested / unproven / insufficient — with its evidence count.
- Sparse-evidence adjudication + unsourced badges. Fewer than two usable sources, or evidence that is mostly non-numeric reporting, now yields an honest “insufficient” instead of a stretched verdict; findings without an inline [n] citation get a warning badge.
- Report layer, rebuilt around readings. Claim-conditioned evidence summaries and reranking (behind a flag); opinionated finding titles; bolded values; collapsed EVIDENCE/References; Build Plan moved to the end; calibrated negative assertions; report language follows the question language; bilingual follow-up suggestions; knowledge-graph identifiers cleaned from rendered output.
v0.18.5 — 2026-08-28 "chat summary + evidence manifest"
- Answers open with a summary bubble. Each report renders a 1–2 screen chat summary first (key findings, what doesn’t help, build plan, follow-ups); the full report stays one tap away, folded.
- A provenance manifest on every answer. Sources are deduplicated into a persistent manifest — grouped by PMID / DOI / patent / knowledge-graph counts, each with an outbound link, a cited-count badge, and a full-text flag.
v0.18.2 — 2026-08-28 "Stop button + hard time limits"
- You can cancel a run. A Stop button cancels an in-flight research job (the stream ends with a terminal cancelled event); generation runs under hard time limits, and a watchdog clears stalled jobs.
v0.18.1 — 2026-08-28 "fast path: cited answers in seconds"
- Covered questions skip the queue. Short questions already covered by the knowledge graph + literature get a directly cited answer in seconds, skipping the planning gate; strong tasks keep the full pipeline, and the deployment self-check always exercises the full path.
- Multi-query rewrite. Retrieval probes several rewrites of the question and merges the results, with the original question as fallback.
v0.18.0 — 2026-08-21 "three-layer conversation routing"
- Chat got a routing brain. Layer 0: deterministic small talk, instant. Layer 1: a fast conversational model (1–3 s) that also decides whether research is needed — a “yes, go ahead” on the next turn launches the full pipeline with the original question remembered. Layer 2: strong research tasks go straight in.
- Dual-model routing. A heavyweight reasoning model answers research; a fast model handles conversation and cheap sub-tasks. Unsourced claims get a fallback pass: the fast model must find a citation within the existing evidence pool, or the claim is dropped.
v0.17.2 — 2026-08-21 "the reviewer learned to say 'wrong organism'"
- Cross-host evidence is flagged. Cite an E. coli, S. cerevisiae, CHO, HEK, or insect-cell study for a Pichia claim and you get a WARN, not silent acceptance.
- Over-assertion detection. Wording like "guarantee" or "prove" that the evidence does not entail is flagged unsupported. A wider protein-name vocabulary means fewer false target mismatches.
v0.17.1 — 2026-08-14 "host-likeness collapse fix + panel i18n"
- Long proteins got their scores back. A codon-pair factor multiplication collapse had zeroed host-likeness for long proteins (every HSA candidate scored 0.0, taking the composite score down with it); the factor now acts as a [0.5, 1.0] reward and winners’ host-likeness recovered.
- The manufacturing panel follows the question’s language, and the ranking winner now has an absolute manufacturability floor (0.95) — a fidelity re-rank can never hand you a design you cannot build.
v0.17.0 — 2026-08-14 "precision-fermentation manufacturability panel"
- A fifth panel — manufacturability. Every /research dossier now carries a downstream-process panel: fermentation, DSP sequence, step-wise recovery (multiplicative), and directional cost vs the benchmark, in 4 parity tiers. Every number is cited; absolute titer/recovery/scale-up/cleaning stay WARN (wet-lab required).
- Design is now two-dimensional. Candidates rank on host-fidelity × total recovery, so a high-fidelity intracellular design can lose to a slightly lower-fidelity secreted one when the latter is far cheaper to purify.
v0.16.2 — 2026-08-14 "protein-name resolution must never design for the wrong protein"
- Names now resolve to the right protein. “HSA” used to resolve to Glycophorin-A, then Afamin, then FBF1; it now resolves to Albumin (P02768) via gene-level queries with weighted verification. Zero-confidence names fail honestly instead of designing for the wrong protein.
- The linear audit backend is live again. /research now runs build_dossier (D-099), so asking by protein NAME generates the ranked design panel. The orchestrator stays as the rollback path.
v0.16.1 — 2026-07-29 "source_db category labels are not libraries"
- A category label is not a database. The retrieval-transparency strip’s “Data sources queried” would have shown a document-class label like “literature” as if it were a library. New
_library_name() + _NON_LIBRARY_SOURCE_DB guards give category labels no pill, and source_dbs is omitted entirely when no real library is named.
- Fixed before it ever reached a user. Found while
KAIROS_RETRIEVAL_REPORT was still off in prod; verified against the live retrieval service (source_dbs: {"EuropePMC": 2}, passage counts unchanged — only the attribution was wrong) and locked with 8 new tests.
v0.16.0 — 2026-07-29 "retrieval transparency: which libraries answered"
- The dossier can now say what retrieval actually did. A
retrieval_report rides along on the evidence step: how many rounds ran, which literature libraries answered, and how many passages each returned. Every number is counted out of the response the retriever already parses — no new network calls and no new storage.
- “Returned” vs “kept” is shown as an honest gap. Passages whose provenance yields no citable source are dropped — no source, no claim — and the report shows how many were dropped rather than hiding the difference. Counts accumulate across multi-round retrieval and are deduped by source, so repeated hits are not double-counted.
- Absence stays absent. When the feature is off, or the retrieval service names no library, the field is omitted entirely and the website hides the whole strip — it never shows a fabricated “0” or a guessed library name. Privacy is unchanged: nothing new is written to disk, so the in-memory-only promise holds word for word.
v0.15.0 — 2026-07-29 "email sign-in is live"
- Sign in with an email address. Enter an email, receive a 6-digit code, and go straight to chat. Codes are valid for 10 minutes, single-use, capped at 5 attempts, and stored only as hashes — the code itself is never kept.
- Abuse controls on both sides. Rate limits apply per email and per IP, disposable-domain addresses are refused, and logs record hashes only. Sign-in emails are sent in Chinese or English to match the requester.
v0.14.0 — 2026-07-28 "name a protein in plain language, get a designed answer"
- Questions that name a protein now get a real design panel. A deterministic extractor recognises a UniProt accession or exactly one protein from a curated Chinese/English lexicon, then runs resolution and design without requiring you to fill a separate field. If a question names several different proteins, it picks none — it never guesses.
- Secretion questions get a secretion leader. Asking about secretion or signal peptides without choosing a leader now defaults to the α-MF first-line option, with the alternatives named in the output. An explicitly chosen protein or leader always wins over the extractor.
v0.13.0 — 2026-07-28 "small talk gets an answer, not a research job"
- A greeting no longer triggers the full research pipeline. A deterministic, zero-LLM intent gate recognises short greetings, thanks, and who-are-you messages in Chinese and English, and replies conversationally in milliseconds instead of spending two minutes producing a dossier about signal peptides.
- Anything with real task content still runs in full. A protein name, a design verb, or a sequence — including “你好,帮我设计 HSA” — goes through the complete pipeline unchanged.
v0.12.0 — 2026-07-28 "the audit now asks whether a citation supports the claim"
- Support assessment, not just existence. For every citation the reviewer already verified as real, it now also judges — deterministically, with no LLM involved — whether the source plausibly backs the claim: same organism, same target protein, same expression-system aspect, and whether the wording is entailed, partially supported, or contradicted.
- Conflicts are surfaced, silence is not punished. A claim about Pichia citing an E. coli study, or an HSA claim citing a VRC01 study, is flagged instead of quietly passing. When neither side names an organism or target, nothing is flagged — absence of signal is never treated as a fault. Each audit row carries its compact assessment for drill-down.
- Verdicts stay conservative. All support issues, including contradictions, are WARN. FAIL remains reserved for the one thing that is unambiguous: a citation that does not exist.
v0.12.1 — 2026-07-28 "answers follow the language of the question"
- Ask in Chinese, get Chinese. The synthesis, strategies, plan, and open questions are now written in the same language as your question. Previously an all-English internal template pushed the model toward English answers even for Chinese questions. Verified live before and after, and locked by a test.
v0.11.0 — 2026-07-27 "the structure tab lights up"
- Real 3D structure, looked up rather than guessed. Once a protein resolves, the pipeline retrieves its predicted structure from AlphaFold DB and serves the coordinates to the workbench — so the structure tab shows measured confidence from a public database, not a number we invented.
- Structure is never allowed to be fatal. Any external failure degrades to “no structure” and the rest of the dossier proceeds normally. When there is no structure, the panel says so plainly instead of showing a placeholder confidence score.
v0.10.1 — 2026-07-27 "one audit backend, stated plainly"
- A single production audit path. The public research endpoint now has exactly one audit backend, so what you see in the audit tab always comes from the same code path. The older orchestrator route remains available purely as a rollback option and announces itself in the logs when used.
v0.10.0 — 2026-07-27 "cross-organism evidence gets flagged"
- The first support checks land on the reviewer. A claim about Pichia backed by a study in a different organism is now flagged as cross-organism evidence, and a claim whose wording barely overlaps its cited source is flagged as weak support — both deterministic, both WARN-only. Claims with too little signal to judge are left alone.
v0.9.0 — 2026-07-27 "operational signals survive a restart"
- Health counters no longer die with the process. Completed and failed job counts and the recent error history are persisted and restored on startup, so the public health endpoint reflects real cumulative history rather than the current process's uptime. Corrupt state degrades to a fresh start and never breaks the service.
- Alerts fire on real thresholds. Consecutive job failures and an elevated hourly error rate now raise explicit alerts that survive restarts and reset on success.
v0.8.0 — 2026-07-26 "you can always build the winner"
- Candidates are repaired, not just ranked. Every generated coding sequence now passes a synonymous-codon repair pass that removes restriction sites and forbidden motifs without changing the encoded protein and without introducing new problems. Sites that cannot be fixed are named honestly in the notes rather than quietly left in.
- Buildability now outranks paper-optimality. A candidate carrying a synthesis blocker ranks below every buildable candidate — a slightly less optimal design that the vendor can actually synthesise beats an optimal one that fails at ordering. Both changes were accepted by regenerating the benchmark baseline, and the winners did change.
v0.7.0 — 2026-07-26 "ranking honours synthesis blockers"
- A design you cannot order is not a winner. Synthesis blockers are now weighed across the whole candidate pool instead of only within a tier, which is what allowed a blocked design to be presented first. On the benchmark this changed the top pick for two proteins, and the cost is stated plainly: on one of them, buildability came at the price of host-likeness.
v0.6.1 — 2026-07-26 "the audit sees how the model actually cites"
- Parenthetical citations are now recognised. The production model cites sources as
(PMID:…) rather than in bracketed numbers, so genuinely evidence-backed claims were being misfiled as unsupported reasoning — and, more seriously, any fabricated citation in that form was invisible to the reviewer. Both citation styles are now read, so the hallucination check actually sees these claims.
v0.6.0 — 2026-07-26 "every new capability ships behind a switch"
- New capabilities ship off by default. Every feature added from this version on is controlled by its own switch that starts in the off position, so merging code and turning a feature on for users became two separate decisions. A default deployment behaves exactly as the previous version did.
- Multi-round evidence retrieval, conversation memory, and the claims layer. The research path can now retrieve in several rounds when the first pass leaves a gap, carry context across turns in a conversation, and emit reasoning as explicit claims with their sources — which is what makes the audit layer possible.
v0.5.0 — 2026-07-24 "review + artifact live on /research"
- Review layer active on the public
/research. The reviewer introduced in v0.4.0 now runs live on the public path: each reasoning claim is cross-checked against retrieved evidence and design numbers, emitting a PASS/WARN/FAIL verdict with per-claim grounding and evidence references. Verified end-to-end on the live endpoint (verdict PASS, 4 claims, 12 cited sources).
- Auditable artifact. Pipeline output is restructured into an explicit claim → evidence → verification trace — provenance you can follow, not just a narrative.
- Reviewer 2.1 shadow. A next-gen reviewer runs side-by-side in non-mutating shadow mode; it never alters the live verdict.
- Honest scope unchanged: Kairos still ranks dry-lab design quality (within-protein host-fidelity vs real titers, ρ≈+0.35). The reviewer checks traceability and consistency — not scientific truth. No absolute expression/titer prediction.
v0.4.0 — 2026-07-09 "auditable research workbench + patent-brief"
- Automated review layer (Reviewer).
/research now runs retrieve→resolve→design→reason→review→artifact. Verifies citation traceability, number consistency, and claim grounding → verdict PASS/WARN/FAIL. Claim-by-claim audit rendered in the chat frontend.
- Patent-brief product surface.
evolrix.bio/patent-brief: bilingual landing + async job→PDF + lead form. Runs always-on on Aliyun.
- Research articles sorted newest-first; kairos-reviewer-layer case published with PubMed-verified references.
v0.3.0 — 2026-07-01 "chat UX: clean reasoning + design-panel from a name"
- Clean reasoning stream. Strategy section shows structured dossier, not raw token stream.
<think> tags stripped.
- Stale cache purge. Outdated conversations cleared from localStorage on load.
- Target-protein input. Send a protein name or UniProt accession to unlock the design panel (resolved via UniProt REST API).
v0.2.1 — 2026-07-01 "target-protein resolution"
- UniProt name→sequence resolution.
target_protein accepts a name or accession, resolves to a reviewed Swiss-Prot sequence. Unresolved → design skipped honestly, never fabricated.
v0.2.0 — 2026-07-01 "host-faithful reward + clean reasoning"
- Host-aware retrieval rerank. Off-target evidence fixed (generic promoter query 0/6 → 4/6 on-target).
- Within-protein reward recalibration. CAI 0.45 + genome-LM 0.45. Within-protein real-titer ρ +0.169 → +0.314.
- Anti-hack host-fidelity guardrail. An E. coli-table optimizer can no longer beat honest Pichia (5/5).
- Host-fidelity ranker on the design panel. ρ +0.35 (~2.7× the old Pareto panel).
- U3 RL line closed as a rigorous null — durable value landed in the reward.
v0.1.0 — baseline "explainable Pichia CDS design"
- Modular candidate-design stack: CDS validation, host-aware synonymous panels, manufacturability / host-likeness / 5′ initiation / developability scorecards, secretion signal-peptide fusion, research copilot (3-tier provenance), async job + SSE.
Every version ships with its scope stated. Try the current one
Kairos v0.17.0 is live — deterministic design panels, cited evidence, and an auditable review layer now active on /research.