Every version is a date. The chain doesn't change.
ISO 8601 dates, Stripe-style. Chain formula stays fixed; schema gets a new date when behaviour changes. One dated, eleven queued.
Four with detail. Eight queued below.
- UNRELEASEDPhase 0.7MongoDB-backed Idempotency Store
Trace idempotency moved from in-memory Map() to MongoDB-backed IdempotencyKey documents with a compound (key, organizationId) unique index. Customers can now provide their own Idempotency-Key request header (UUID, up to 256 chars); when missing, the server hashes agentId + organizationId + body deterministically. Duplicate requests within the 24-hour TTL return the cached response, not a new chain entry. Fail-open: idempotency-store crashes never block trace ingestion. Multi-instance safe.
- UNRELEASEDPhase 0.6Standardized Error Codes
75+ error codes consolidated in utils/errorCodes.js with Object.freeze() immutability. Twelve categories covering AUTH (20 codes), VALIDATION, TRACE, POLICY, RATE_LIMIT/QUOTA, FEATURE_GATE, SECURITY, and the SERVER bucket. Every fail() call across 14 controllers + 5 middleware now passes an explicit code; previously-defaulted INTERNAL_ERROR returns now carry their correct codes (VALIDATION_ERROR, INVALID_CREDENTIALS, INVALID_TOKEN). SDK clients can react programmatically to any error via the code field. Zero breaking-change — existing API responses still include the same code strings.
- UNRELEASEDPhase 0.5API Versioning (/api/v1/)
All 26 API route groups now mount under /api/v1/ as the primary path. Every /api/v1/* response carries the X-Adjudon-API-Version: v1 header; the legacy /api/* paths gain Deprecation: true, Sunset: 2027-04-12, and Link headers per RFC 8594 — twelve-month runway, no surprise breakage. Both /api/traces and /api/v1/traces reach the same handler, so existing integrations continue working unchanged. Stripe webhook and /health stay outside the versioning ladder. 38 tests across versioning + deprecation middleware.
- DATED2026-04-11Initial Public Schema
The first dated release. Every DecisionTrace now carries a schemaVersion field (required, indexed); SDKs pin a version via the X-Adjudon-Version request header, and the server echoes the resolved version back on every response. Unknown versions return 400 ADJ_UNKNOWN_SCHEMA_VERSION. Existing traces backfilled with 2026-04-11 via the idempotent migration script — safe to run on live MongoDB clusters. Schema version registry (utils/schemaVersions.js) carries the canonical list. Missing header defaults to the latest published version.
- Phase 5Framework Coverage — CrewAI · AutoGen · PydanticAI · Anthropic Python
- Phase 4No-Code Reach — n8n · Zapier · Make.com
- Phase 3Node SDK + Native Wrappers
- Phase 2OpenTelemetry GenAI Exporter
- Phase 1Python SDK + LangChain + LlamaIndex
- Phase 0.4User-Agent Tracking
- Phase 0.3Agent-scoped API Keys
- Phase 0.2Trace Payload Validation
No RSS yet. Email works.
The RSS feed is on the roadmap, no published timeline. Until then, two paths: read the versioning page at docs.adjudon.com, or email [email protected] to be told when a version is dated.
An RSS feed (one item per dated release) and an email-subscribe form. Both are sitting on the roadmap with no published date. We name them here because every other vendor's changelog implies both — and we don't.