Eridian

Changelog

Weekly releases from January 2024 through Eridian 3.0. The public record of the control plane: majors, minors, and patches.

100 releases · January 2024 to September 2026

2026

24 releases

September

v3.8.1Patch

Console: desk cost CSV for month-end close

Usage export now includes desk, project, route family (GPT or Gemini), and residency region on every row. Finance can close the month without a warehouse join. See Usage.

v3.8.0Minor

Retention clocks on the signed record

Deletion is a control action. Retention clocks, legal hold, and dual-control purge now share the same signed record as the original inference. Expired objects emit retention.elapsed. Holds block purge until the second operator clears them.

August

v3.7.2Patch

Webhook signing: reject skew above five minutes

Deliveries whose timestamp skew exceeds 300 seconds are now rejected and retried. Consumers must verify v1 HMAC before acting. See Webhook signing.

v3.7.1Patch

TypeScript SDK 3.7: Idempotency-Key helper

@eridian/sdk now stamps Idempotency-Key on mutating inference and governance calls unless you pass one. Retries reuse the same key for 24 hours. See Idempotency.

v3.7.0Minor

Evaluations: committee-readable PDF pack

Eval runs export a signed PDF plus JSON: suite version, dataset pin, GPT and Gemini scores, pii_leak, and the actor who promoted the template. Built for a model-risk committee that will not open a notebook. See Evaluations.

v3.6.1Patch

PII: IBAN entity in eu-west-1

Added iban to the default PII entity list for EU-West. Masks persist into the audit event as entity counts, not values. Existing projects can opt out via pii_config.entities.

July

v3.6.0Minor

Evidence export: examiner bundle

Enterprise tenants can export a dated examiner pack: policy version, route, redaction proof, approvers, and retained output. Packs are residency-pinned and SHA-256 checksummed. See Evidence export.

v3.5.2Patch

Go SDK: stream cancel on context.Done

sdk-go now cancels the upstream stream when the caller context ends. Partial tokens are not written to the cache. See Go SDK.

v3.5.1Patch

Cache: me-central-1 region key collision

Semantic cache keys omitted region on a subset of Dubai pins after a 2.17 rollout. EU and US keys were never mixed. We invalidated the affected me-central-1 entries and included region in the key schema. Hit rate in Dubai returned to baseline within six hours.

June

v3.5.0Minor

Dual control on template high_risk tools

Templates marked high_risk now return 403 dual_control_required with an approval_id until a second operator approves. Ordinary POST /v1/inference is unchanged. See Dual control.

v3.4.1Patch

Docs: cursor pagination examples

List endpoints document starting_after, ending_before, and has_more with copy-paste examples for keys, audit events, and eval runs. See Pagination.

v3.4.0Minor

Region: Johannesburg af-south-1 pin

Enterprise can pin Customer Data at rest and primary inference to af-south-1. GPT and Gemini are in the pool. Fail-closed is the default. Johannesburg covers the African morning overlap with Dubai. See Regions.

May

v3.3.0Minor

Routing: quality_floor is a control

quality_floor is now versioned with the routing policy. Edits require dual control on Enterprise. Fallback events below the floor emit route.quality_breach. See Routing.

v3.2.2Patch

Console: on-call runbook deep links

Incident banners in the console link to the matching runbook, the last approval, and the region that served the call. See Runbooks.

April

v3.2.1Patch

Python SDK: X-Eridian-Region on retry

eridian-sdk retries now preserve X-Eridian-Region and X-Eridian-Residency-Pin. A fail-closed pin no longer silently retargets US-East. See Python SDK.

v3.2.0Minor

Terraform 1.6: eridian_approval

The Eridian Terraform provider waits on dual-control gates during apply. eridian_approval can be referenced from CI. Changing allowed_models still requires a second operator. See Terraform.

March

v3.1.1Patch

Incident: GPT eu-west-1 timeout, 11 March 2026

GPT in EU-West returned 503s for 14 minutes. Fallback to Gemini held for eligible policies. Two legal workflows paused on dual control. No prompts were written outside eu-west-1. Customer notice went out at 16:40 UTC.

v3.1.0Minor

Budgets: hard stop per desk

Desks can now set a monthly hard_stop independent of the project ceiling. Crossing it returns 429 budget_exceeded and emits budget.exceeded. Raises above the desk threshold require dual control. See Budgets.

v3.0.0Major

Eridian 3.0: Control plane as code

Eridian 3.0 is the governance release. Dual control, eval gates, Terraform, evidence export, and residency fail-closed are first-class objects, not add-ons. Routing policy is a versioned control. GPT and Gemini remain the production families. Breaking: cache_config.scope global is removed; use region or project.

February

v2.18.1Patch

Keys: rotation notice at T-14 days

Keys with an expiry emit key.expiring_soon fourteen days out, then daily. The console lists last_used_at. Prefix remains eridian_sk_. See API keys.

v2.18.0Minor

Region: Hong Kong ap-east-1

ap-east-1 is generally available for Enterprise residency pins. Inference and cache stay in region when inference_pin is true. GPT and Gemini are in the pool. See Regions.

January

v2.17.1Patch

Gemini long-context window in the active pool

Gemini long-context is now selectable via family gemini where the order form authorizes it. Do not pin provider SKU strings. Version rolls appear on the audit event as eridian.provider_revision.

v2.17.0Minor

Residency: fail_closed default on Enterprise

New Enterprise projects default inference_pin and fail_closed to true. A region disagreement returns 403 residency_violation. It does not silently re-route. See Regions.

v2.16.2Patch

Audit: eridian.provider_revision on every route

Every inference.completed event now includes eridian.route (gpt or gemini) and eridian.provider_revision. Committees can reconstruct which revision served a live matter. See Audit log.

2025

40 releases

December

v2.16.1Patch

Console: project membership CSV

Owners can export project members, roles, and last SSO assertion. The file is an audit artifact, not a convenience dump. Changes to governance:manage still require dual control.

v2.16.0Minor

Webhooks: approval.approved and policy.updated

Webhook subscriptions can now include approval.approved, approval.rejected, and policy.updated. Delivery is at-least-once for 24 hours. See Webhooks.

v2.15.0Minor

PDPL addendum for me-central-1

UAE PDPL mapping is now attached to the project residency record for Dubai pins. Customer Data at rest and primary inference stay in me-central-1 when inference_pin is true. The DPA subsection is dated 15 December 2025.

v2.14.0Minor

Evals: pii_leak metric on every suite

New eval suites include pii_leak by default. A non-zero score blocks template.publish when evals_required is true. See Evaluations.

November

v2.13.0Minor

Terraform 1.4: projects, keys, residency

Provider eridian-ai/eridian manages projects, routing policies, budgets, residency, and webhooks. Terraform does not send prompts to GPT or Gemini. See Terraform.

v2.12.0Minor

Eridian Risk: model-risk committee view

Risk now has a read-only committee view: policy version, eval pack, open approvals, and residency pin. No prompt text. Built for second-line review, not for operators.

v2.11.1Patch

Incident: provider timeout, 14 November 2025

A GPT region returned 503s for 11 minutes. Fallback held. Two legal workflows paused on dual control. No cache writes during the window. Customer incident report published the same day.

v2.11.0Minor

Dual control: residency and budget raises

Changing project residency or raising a budget above the desk threshold now requires a second authenticated operator on Enterprise. The proposer cannot approve. See Dual control.

October

v2.10.1Patch

Go SDK 1.2: retry budget on 429

sdk-go honors Retry-After on 429 budget_exceeded and 429 rate_limited. It does not retry 403 residency_violation or dual_control_required.

v2.10.0Minor

Keys: scoped eridian_sk_ with budgets

API keys can now be budget-scoped and project-scoped at creation. governance:manage keys still require dual control in production. See API keys.

September

v2.9.1Patch

Cache: TTL clamp at 24 hours on global scope

global cache scope now clamps TTL at 24 hours. Entries still include project and org in the key. Default scope remains project.

v2.9.0Minor

Docs: TypeScript, Python, and Go cookbooks

SDK pages now share the same first-call example: create a project, pin a region, run inference with model auto. See SDKs.

August

v2.8.1Patch

Structured output: nested array 500

Fixed a 500 when structured_output schemas contained nested arrays deeper than two levels. Parse retries still cap at three.

v2.8.0Minor

Webhook signing generally available

Every delivery includes X-Eridian-Signature (t, v1). Secrets are shown once at create. Rotate via POST /v1/webhooks/:id/rotate. See Webhook signing.

July

v2.7.1Patch

Console: latency chart p99 overlay

The inference chart now overlays p50, p95, and p99 for the selected project and region. Colors match the rest of the console: violet, sky, mint.

v2.7.0Minor

Rate limits: documented headers

Responses include X-RateLimit-Limit, Remaining, and Reset. Burst is per project, not per key. See Rate limits.

v2.6.1Patch

Incident: webhook retry backlog, 19 May follow-up

A consumer restart in May delayed inference.completed deliveries. We added duplicate-suppression on X-Eridian-Delivery-Id and a console backlog gauge. No events were dropped in the original window.

June

v2.6.0Minor

Errors: stable error.code catalog

error.code is now a closed catalog: model_unavailable, residency_violation, dual_control_required, budget_exceeded, and the existing auth codes. See Errors.

v2.5.1Patch

TypeScript SDK: stream abort on page hide

Browser clients abort the inference stream when the document is hidden for more than 30 seconds. Server-side cache writes are skipped for aborted streams.

v2.5.0Minor

Projects: residency defaults at create

POST /v1/projects now accepts region, inference_pin, and cache_scope. Changing region after data exists still requires a later dual-control gate. See Projects.

v2.4.1Patch

PII Redaction: Added IP Address Entity

Added `ip_address` to the default PII entity list. IP addresses are now detected and masked by default. Existing customers can opt out via `pii_config.entities`. Also fixed a bug where `structured_output` with nested arrays caused a 500 error.

May

v2.4.0Minor

Eridian Ops: On-Call Assistant

The On-Call Assistant is now generally available. Your on-call engineer can query logs, check dashboards, and suggest mitigations in natural language. The assistant is powered by the Eridian inference pipeline and has full access to your observability stack. Available on all Enterprise tiers.

v2.3.0Minor

Semantic Caching: Global Scope

Added `global` cache scope. Cached responses can now be shared across projects within an organization. This is useful for multi-project deployments where the same prompts are used across teams. Opt in via `cache_config.scope: "global"`. Default remains `project`.

v2.2.0Minor

Routing Engine: Custom Policies

You can now define custom routing policies. Define your own cost/latency/quality weights, model preferences, and fallback chains. Policies are stored per-project and can be overridden per-request via `routing_policy`. See the Routing docs for the full reference.

v2.1.0Minor

Eridian Legal: Regulatory Mapping

The Regulatory Mapping feature is now generally available. Map your contracts to GDPR, SOX, Basel III, and MiFID II. The pipeline identifies which clauses are affected by which regulation and flags potential gaps. Available on all Enterprise tiers.

April

v2.0.0Major

Eridian 2.0: The Full Platform

Eridian 2.0 is our biggest release yet. The full inference orchestration layer is now available: semantic caching, multi-model routing, RAG pipeline, PII redaction, structured output parsing, full-stack observability, and enterprise governance. Plus three new verticals: Eridian Dev, Eridian Legal, and Eridian Ops. This is the release that makes Eridian a platform, not a tool.

v1.5.1Patch

RAG: hybrid search scoring clamp

Hybrid (vector + BM25) scores are now clamped to [0, 1] before fusion. Technical queries no longer drown semantic hits on long statutes.

v1.5.0Minor

RAG Pipeline: Hybrid Search

Added hybrid search (vector + BM25) to the RAG pipeline. Improves retrieval quality for technical queries where keyword matching outperforms semantic similarity. Configurable via `rag_config.search_mode: "hybrid"`. Default remains `"semantic"`.

v1.4.1Patch

Observability: OTLP header passthrough

OTLP export now forwards tenant-supplied authorization headers to the collector. Traces still exclude prompt text on ZDR projects.

March

v1.4.0Minor

Structured Output: Retry on Failure

Added automatic retry for structured output parsing. If the model's response doesn't match your JSON schema, Eridian retries up to 3 times with a corrective prompt. Reduces parse failure rate from 4.2% to 0.3% in our benchmarks.

v1.3.1Patch

PII: account number false positives

Tightened account-number detectors against IBAN-like strings in EU-West. False positive rate on legal corpora dropped from 1.8% to 0.4% in the eval set.

v1.3.0Minor

Observability: OpenTelemetry Export

Added OpenTelemetry OTLP export. Your Eridian inference traces can now be exported to any OTLP-compatible backend (Jaeger, Grafana Tempo, Datadog, Honeycomb). Configure via `observability.otlp_endpoint`.

v1.2.1Patch

Dev: Bitbucket webhook signature check

Codebase Q&A now verifies Bitbucket webhook signatures before re-indexing. Failed signatures are dropped and logged as ingest.rejected.

v1.2.0Minor

Eridian Dev: Codebase Q&A

Codebase Q&A is now generally available. Ask your codebase questions in natural language. Our RAG pipeline indexes your repo, retrieves relevant code, and generates grounded answers. Supports GitHub, GitLab, and Bitbucket.

February

v1.1.1Patch

Routing: fallback event missing model id

Fallback events now always include the family that failed and the family that served. Empty model fields on route.fallback are closed.

v1.1.0Minor

Routing Engine: Fallback Chains

Added configurable fallback chains. Define up to 5 fallback models per routing policy. If the primary model is down, over budget, or returns an error, the routing engine automatically fails over to the next model in the chain. Full observability for each fallback event.

v1.0.1Patch

GA: unified schema field aliases

POST /v1/inference accepts messages and input as aliases during the 90-day window. input is documented as deprecated. Removal date: 12 May 2025.

v1.0.0Major

Eridian 1.0: General Availability

Eridian 1.0 is our first stable release. The core inference orchestration layer is GA: unified schema, multi-model routing, semantic caching, PII redaction, full-stack observability, and enterprise governance. Plus Eridian Dev (code completion, code review, test generation). We've processed 800B+ tokens in beta. Time to go GA.

January

v0.12.1Patch

SSO assertion clock skew

Login now rejects SSO assertions with skew above 120 seconds. Customers with drifting IdP clocks were failing open. They now fail closed.

v0.12.0Minor

Versioned prompt templates

Prompt templates are now first-class objects with versions. Production traffic pins a version. Drafts cannot serve until a later eval gate exists.

2024

36 releases

December

v0.11.5Minor

SOC 2 Type I report available under NDA

Type I is complete. Type II observation window starts January 2025. The report is not a marketing PDF. Request it from the security page.

v0.11.4Patch

Cache: embedding dimension mismatch on reindex

A December reindex wrote 1536-d vectors into a 768-d collection for one customer. Queries failed closed. We rebuilt the collection and added a dimension check before upsert.

v0.11.3Patch

Console: project switcher keyboard

Cmd/Ctrl+K now switches projects in the console. The palette lists project id, region, and pin status.

November

v0.11.2Patch

Docs: authentication and inference pages

Public docs now cover Bearer keys, X-Eridian-Project, and POST /v1/inference. See Quickstart.

v0.11.1Patch

Routing: Llama and Mistral in the routing pool

Routing policies may include Llama and Mistral behind GPT and Gemini. Documented production families remain GPT and Gemini.

v0.11.0Minor

Routing: first fallback chain

Customers can define a two-step fallback: GPT then Gemini, or the reverse. Each hop is logged. There is no quality_floor yet.

October

v0.10.2Patch

Observability: trace id on every 4xx

4xx and 5xx responses now include request_id (axm_req_...). Support asks for that id before anything else.

v0.10.1Patch

Cache: TTL default 1 hour

Semantic cache default TTL is 3600 seconds. Customers that set 30 days were retaining completions past the stated window. We clamped and notified.

v0.10.0Minor

Observability dashboard

The console shows request rate, p99, cache hit ratio, and cost by family. It is not yet an OTLP exporter.

September

v0.9.2Patch

Webhook HMAC: v1 canonical string

Signing now uses t + '.' + body bytes. Earlier builds hashed JSON with unstable key order. Rotate secrets after upgrade.

v0.9.1Patch

Go SDK 0.3: context on every call

sdk-go requires context.Context on inference. Background context is not implied.

v0.9.0Minor

Go SDK 0.3 and signed webhooks

Go client plus webhook signatures. Events in this cut: inference.completed and budget.warning. See Webhooks.

August

v0.8.2Patch

PDPL: me-central-1 disk encryption evidence

Dubai pins now record KMS key id and region on the residency object. This is evidence for PDPL reviews, not a new region.

v0.8.1Patch

RAG: PDF table chunker

Uploaded PDFs with ruling tables no longer split mid-row. Chunk ids are stable across re-upload of the same hash.

v0.8.0Minor

Region: Dubai me-central-1 and RAG chunking

Customers can pin to me-central-1 (Dubai) for PDPL-aligned processing. RAG upload, chunk, and retrieve land in the same pin. GPT and Gemini are offered in-region.

July

v0.7.2Patch

TypeScript SDK: ESM and CJS dual publish

@eridian/sdk ships both ESM and CJS. Node 18 is the floor.

v0.7.1Patch

Webhooks: unsigned deliveries paused

We stopped sending unsigned webhook bodies. Tenants must complete signing onboarding or poll the audit log.

v0.7.0Minor

TypeScript SDK 0.4 and webhooks

TypeScript client for POST /v1/inference. Webhook endpoints accepted HTTPS URLs; signatures land in 0.9.0.

June

v0.6.2Patch

Structured output: $ref in JSON Schema

structured_output now resolves local $ref. Remote $ref is rejected.

v0.6.1Patch

Audit: actor on every call

inference.completed includes actor (user or service key). Anonymous keys are retired.

v0.6.0Minor

Audit log and structured JSON output

Audit log is queryable for 30 days. Structured output parsing is opt-in via response_format. Failures return 422 parse_failed, not a 200 with a string.

May

v0.5.2Patch

Console: SSO-only login for named institutions

Password login is off for named institutions. SSO is the path. Break-glass remains a hardware-backed owner key.

v0.5.1Patch

Python SDK: retries on 503 only

eridian-sdk retries 503 and 429. It does not retry 401, 403, or 422.

v0.5.0Minor

Python SDK 0.2 and the console

First Python client and a read-only console: keys, request log, cost by day. No self-serve upgrades.

April

v0.4.2Patch

Cache: skip writes on PII redaction miss

If PII redaction fails open, we do not write the completion to the semantic cache. Fail-open is removed.

v0.4.1Patch

EU-West: residency header on responses

X-Eridian-Region is set on every EU-West completion. Clients that ignored it were mixing US and EU logs. Parse the header before you join regional telemetry.

v0.4.0Minor

Region: EU-West and semantic cache prototype

eu-west-1 is available to customers with a GDPR processing record. Semantic cache is similarity-based, project-scoped, and off by default.

March

v0.3.2Patch

PII: SSN detector over-match on CUSIP

US SSN patterns no longer mask CUSIPs in risk memos. Eval set updated. False positives on the gold set fell from 3.1% to 0.6%.

v0.3.1Patch

US-East: TLS 1.2 floor

Inference endpoints reject TLS 1.1. Corporate proxies that pinned 1.1 were cut over the same week.

v0.3.0Minor

PII redaction and US-East pin

Names and US SSNs are masked by default. us-east-1 is the first published region. Prompts are not used to train GPT or Gemini.

February

v0.2.2Patch

Rate limit: 60 rpm per key

Burst is 60 requests per minute per key. 429 includes Retry-After. This is the launch rate limit, not the later catalog.

v0.2.1Patch

Gemini: first production-shaped route

Gemini joins GPT in the routing pool. Family ids are gpt and gemini. Do not send provider SKU strings.

v0.2.0Minor

Multi-model routing

auto selects GPT or Gemini per request using latency and availability only. There are no custom weights yet. Pinning a family is supported.

January

v0.1.2Patch

Keys: eridian_sk_ prefix and hash-at-rest

API keys use eridian_sk_. Secrets are hashed at rest. The full token is shown once.

v0.1.1Patch

Inference: streaming token events

Streaming uses SSE. The final event includes usage. Incomplete streams are not billed as complete.

v0.1.0Major

Eridian launches: unified inference schema

Eridian opens in Dubai. One POST /v1/inference schema, Bearer keys, and a GPT route. First customers are named, NDAed, and on us-east-1 only.