v0.21.0A security release: what an agent or a client sends Iris is bounded before Iris reads it, and a tool argument can narrow what the operator allows but never widen it→

Releases

Iris 0.21.0A security release: what an agent or a client sends Iris is bounded before Iris reads it, and a tool argument can narrow what the operator allows but never widen it.

2026-10-25 · rendered from CHANGELOG.md · the same section is the GitHub release

A security release: what an agent or a client sends Iris is bounded before Iris reads it, and a tool argument can narrow what the operator allows but never widen it. 0.21.0:

- A tool call, a dashboard API body and an OTLP batch are each held to security.maxInputElements (100,000 array elements and object keys by default) before any schema reads them, and a validation error lists at most 20 issues and the total.

- verify_citations and evaluate_with_llm_judge take the operator's fetch setting, domain list and cost caps as ceilings; every judge call on a key draws on one daily budget; and stored text comes back inside a fence that marks it as text someone else wrote.

- With an allowlist set, the citation fetcher looks up only the hosts on it.

- The lowest versions Iris accepts are now @modelcontextprotocol/sdk 1.32.0, body-parser 2.4.0 and zod 4.6.7, and the Docker image runs Node.js 24.22.1.

- Also: npm run preflight, which runs what CI will run before you push, and proof measured on agent runs Iris did not write.

Check before upgrading. Three entries under Security are marked BREAKING. Read them if an agent passes allow_fetch, domain_allowlist, max_cost_usd or max_cost_usd_total to Iris's tools, if the judge tools spend more than 1 USD a day on your key (IRIS_LLM_JUDGE_DAILY_BUDGET_USD), or if a script reads stored text from get_traces, list_rules or a trace resource.

Added

Changed

Security

Earlier

One line per release, the bold lead of its changelog section; each links to the release notes built from that section.

VersionDateLeadEntries
0.20.02026-10-03Iris says what it checked. A verdict tells a pass from a check that never ran, names who recorded the evidence it judged, and cannot be replaced by the agent it judges119
0.19.02026-09-25Verdicts that say how sure they are, detectors that see through disguises, and one command to set up any client9
0.18.02026-09-24Honest numbers, a lighter footprint, nothing done silently15
0.17.02026-09-23Hostile input, honest verdicts, a harder release path11
0.16.02026-09-22Earn the comparison26
0.15.02026-09-21Reach, honestly26
0.14.02026-09-20The dashboard is a product25
0.13.02026-09-08Found and fed31
0.12.12026-09-07Truth patch 310
0.12.02026-09-07Compare17
0.11.02026-09-06The act layer24
0.10.02026-09-05The verdict18
0.9.02026-09-05Iris explains its verdicts12
0.8.22026-09-05The truth patch5
0.8.12026-09-04The honest-surfaces patch0
0.8.02026-09-04The trajectory release10
0.7.02026-09-04The proof release21
0.6.02026-09-03The correctness release47
0.5.12026-09-03The verdict-integrity patch9
0.5.02026-08-12The acceptance-test release19
0.4.62026-08-10Security and data-integrity release14
0.4.52026-08-07Security release12
0.4.42026-06-12—2
0.4.32026-05-21—5
0.4.3-rc.02026-05-16—0
0.4.22026-05-06—3
0.4.12026-05-06WITHDRAWN—12
0.4.02026-04-24—28
0.3.12026-04-22—9
0.3.02026-04-21—9
0.2.42026-04-17—9
0.2.32026-04-16—5
0.2.22026-04-16—7
0.2.12026-04-16—16
0.2.02026-04-14—29
0.1.92026-04-07—7
0.1.82026-03-25—10
0.1.72026-03-25—8
0.1.62026-03-23—3
0.1.52026-03-21—21
0.1.42026-03-20—19
0.1.32026-03-15—3
0.1.22026-03-14—13
0.1.02026-03-13—35