NEXO Brain 5.1.0 release

5.1.0 is the output of a single audit: NEXO-AUDIT-2026-04-11. It walked every subsystem introduced between 4.x and 5.0 looking for loops that had been opened but not closed — adaptive signals that got computed but never surfaced, evolution proposals that got accepted but never applied, skills that got promoted but never composed, hook runs that could drop silently, and so on. About 46% of the originally-flagged items turned out to be false positives under empirical verification. What remained is what actually shipped in this release.

Evolution, adaptive, skills, and cortex now close their own loops

Cognitive subsystems get externally observable

Bitemporal Knowledge Graph exports

NEXO's knowledge graph has been bitemporal since 4.x — every edge carries valid_from / valid_until, and the upsert/delete helpers maintain them. What it was missing was a way to emit the graph in a format external tools could ingest. 5.1.0 fixes that with nexo_kg_export:

OpenTelemetry, opt-in

A new src/observability.py module soft-imports opentelemetry and only activates when OTEL_EXPORTER_OTLP_ENDPOINT or OTEL_SERVICE_NAME is set. tool_span() is a no-op context manager when OTEL is disabled and a real span with ai.tool.* semantic attributes when enabled. The result: NEXO can be wired into any OTEL backend (Honeycomb, Jaeger, Tempo, Grafana Cloud, Dash0, Signoz, etc) without taking a hard dependency on OTEL for users who don't want it.

CI gates on every PR

The operational gap 5.0.x left open was not in the runtime — it was in the release pipeline. A PR could break the release contract and nobody would notice until tag push. 5.1.0 closes that:

Safer update path

Two long-standing footguns are gone in 5.1.0:

Honest feature matrix vs peers

The new benchmarks/results/comparison-vs-competition-2026-04.md lays out where NEXO wins, where it is on par, and where peers lead — across Letta, Mem0, Zep, Graphiti, Cognee, and DSPy. No cherry-picking. The defensible differentiators end up being the bitemporal knowledge graph, the metacognitive guard, trust scoring, Atkinson-Shiffrin decay, and the native MCP surface.

What did not change

5.1.0 does not replace the 5.0.0 story. Goal profiles, Decision Cortex v2, outcome-backed skill evolution, and the broader runtime pack are still the backbone. This release makes that backbone observable and maintainable under itself instead of relying on the operator to remember to look at every subsystem.

If you want the exact release record, open the 5.1.0 changelog section. If you want to dig into the new graph exports and observability paths, start from Features or the docs map. If you are on an older install, nexo update will handle the migration and cron reload automatically.