> ## Documentation Index
> Fetch the complete documentation index at: https://docs.idun-group.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> Latest updates and releases for Idun Engine.

Track the latest changes, improvements, and bug fixes. The canonical per-package changelogs live in the repo: [`idun-agent-engine`](https://github.com/Idun-Group/idun-agent-platform/blob/main/libs/idun_agent_engine/CHANGELOG.md), [`idun-agent-standalone`](https://github.com/Idun-Group/idun-agent-platform/blob/main/libs/idun_agent_standalone/CHANGELOG.md).

<Update label="v0.6.3" description="2026-06-08">
  Patch release. Hardens the standalone reload path under concurrency, makes config-from-API async for enrolled-mode boot, and adds a central telemetry sink so enrolled agents report traces to the manager instead of a local DB.

  ### Added

  * **Central telemetry sink (enrolled mode).** When `IDUN_MANAGER_HOST` and `IDUN_AGENT_API_KEY` are both set, the standalone trace writer ships span/trace batches over HTTP to the manager's `/collect` endpoint instead of writing to the local database. Bootstrap selects between local-DB and manager-HTTP modes from settings, and the local retention scheduler is skipped in manager mode.

  ### Fixed

  * **Reload concurrency.** `POST /reload` now serializes on a per-app lock, builds the new agent **before** tearing down the old one, and swaps it in atomically. Two HIGH-severity bugs are resolved: a deadlock when reloads overlapped, and a mid-run `'NoneType' object is not a mapping` crash when a run was in flight during a swap. In-flight streaming runs are now drained before the old agent is closed — and counted at stream construction rather than first iteration, closing the residual window where a fast reload could shut an agent down out from under a run whose stream hadn't started yet.

  ### Changed

  * **`with_config_from_api` is now async**, built on `httpx`, with trailing-slash normalization and consistent error handling — supporting the enrolled-mode boot flow.

  ### Maintenance

  * The optional `idun-agent-engine[guardrails]` extra installs cleanly from PyPI again now that the upstream `guardrails-ai` project was restored from quarantine. The published engine wheel is unchanged; only the dev/CI install path was affected.
</Update>

<Update label="v0.6.2" description="2026-05-21">
  Patch release. No engine code changes — the engine wheel just bundles the standalone UI at 0.6.2, which fixes a cluster of SPA-navigation bugs in the admin surface under Next.js 15 `output: "export"` + FastAPI SPA-rewrite.

  ### Fixed

  * **AuthGuard `?next=` preservation.** Login now round-trips back to the admin page the operator tried to reach instead of defaulting to chat.
  * **Hard-nav after login.** The success path forces a full navigation so the next request reissues with the freshly-set session cookie.
  * **Trace detail on soft nav.** Switched trace-id resolution to the reactive `usePathname()` hook so `<Link>` clicks load the right trace instead of rendering "No spans recorded" until refresh.
  * **Sidebar Traces & post-delete hard-nav.** Avoids a Next.js router-cache collision that could mount the trace-detail component at the list URL.
</Update>

<Update label="v0.6.1" description="2026-05-20">
  Patch release. Opens the password-mode chat surface that the v0.6.0 hardening accidentally locked behind `/login`, and propagates a stable per-session user identity end-to-end.

  ### Added

  * **Per-user scoping under password auth.** The engine accepts a per-request `X-Idun-User-Id` header and binds it to a `current_user_id` ContextVar that adapters and the standalone trace writer read at the start of every `/agent/*` invocation, so chat history and traces can be scoped per user without a full OIDC ladder.

  ### Fixed

  * **Password-mode chat.** The chat shell is reachable again under password mode instead of being gated behind `/login`.
</Update>

<Update label="v0.6.0" description="2026-05-17">
  The release where Idun Engine becomes **the third path between LangGraph Cloud and DIY**. One `pip install` ships your LangGraph or Google ADK agent as a production-ready FastAPI service with a bundled Next.js chat / admin / traces UI, 15+ guardrails, multi-provider observability via OpenTelemetry, MCP tool governance, 5 memory backends, and OIDC. Self-hosted, open source, no vendor lock-in.

  [Read the launch post →](https://idun-group.com/blog/2026-05-17-third-path-engine-v0.6)

  ### Highlights

  * **One wheel, three services collapsed.** `pip install idun-agent-engine` bundles the Next.js admin / chat / traces UI and the `idun` CLI. The separate `idun-agent-manager` (FastAPI) and `idun-agent-web` (React) services are gone — \~151,000 lines removed in one cut so the install path is `pip` + `idun setup` + `idun serve`, nothing else.
  * **Standards composed, not invented.** AG-UI streaming (CopilotKit-compatible), OpenTelemetry tracing across 5 providers, MCP tool servers (Linux Foundation governance since 2025), OIDC auth (Google + Microsoft). Pick Idun and your investment moves with you.
  * **Traces v1 lands.** Trace store (asyncpg COPY), REST endpoints, list + detail UI with span tree and waterfall views. ADK spans projected to OpenInference attributes so they flow through the same pipeline as LangGraph spans.
  * **Brand + docs rebrand.** "Idun Platform" → **Idun Engine** across the public surface. Docs moved to [docs.idun-group.com](https://docs.idun-group.com) with a paper/ink editorial design that matches the website.

  ### Added

  * Standalone trace store: schema, asyncpg writer, REST endpoints, list + detail UI.
  * ADK adapter spans projected onto OpenInference attributes so they flow through the same trace pipeline as LangGraph spans.
  * `GoogleGenAIInstrumentor` auto-attached for Gemini cache-bucket capture.
  * `BaseAgent.register_run_event_observer(observer)`: async callbacks receive every AG-UI event from `/agent/run` before SSE encoding.
  * `/health` now reflects engine assembly state, returning `agent_ready: bool` and `status: "degraded"` when configured agents failed to come online.
  * `IDUN_UI_DIR` env var: mount a custom static UI at `/`; previous JSON info payload moves to `/_engine/info`.
  * `create_app(..., reload_auth=...)`: pluggable FastAPI dependency for the `POST /reload` endpoint.
  * Admin dashboard counters now sourced from the trace store (session count, run count, recent activity timeline).
  * Standalone seeder persists all top-level YAML config blocks (agent, guardrails, mcp, prompts, integrations, observability) on first boot.
  * Admin link surfaced on chat layouts; new Developer sidebar group links to `/docs` and `/redoc`.
  * PostHog tracking + masked session replay (opt-in) in the chat UI.
  * LangGraph auto-detection scanner: detects agents built via known factories and `CompiledStateGraph` annotations, so the `graph_definition` config can be inferred rather than hand-written.
  * `/admin` activity dashboard: traces-driven KPIs across 24h / 7d / 30d, requests-per-minute sparkline, p50 / p95 latency dual-line chart, top-errors table.
  * `get_langchain_tools_sync()` for module-load callers: makes MCP tools available in synchronous import-time contexts (e.g. `create_deep_agent` factories) that can't `await`.
  * Microsoft OIDC alongside Google for SSO. Multi-provider auth, multi-tenant support.
  * Google Chat integration joins WhatsApp, Discord, Slack, and Microsoft Teams.
  * SSE / HTTP transport for ADK MCP toolsets, alongside the existing stdio.
  * Real-LLM end-to-end test suite (`pytest-e2e`): LangGraph + ADK adapter coverage with real LLM calls in CI, plus Playwright specs for chat and admin reload flows.
  * Coding-guidelines drift advisory CI: rules-as-YAML pipeline, headless-Claude review check.

  ### Changed

  * **The engine wheel bundles standalone + schema.** `pip install idun-agent-engine` ships the `idun` console script (mapped to `idun_agent_standalone.cli:main`), the chat/admin/traces Next.js bundle, alembic migrations, and `idun-agent-schema` as a runtime dependency.
  * **`guardrails-ai` is now an optional extra (`[guardrails]`)**. Install with `pip install idun-agent-engine[guardrails]` if you use the Guardrails-AI integration.
  * **Standalone admin DB rework.** Run `idun setup` after upgrade to apply the new migrations.
  * **Secure-by-default host binding.** `idun serve` no longer binds `0.0.0.0` by default; bind-all requires explicit opt-in.
  * **Standalone "admin-only mode" fails loud** instead of logging a single WARNING and serving 503s silently.
  * **Catch-all 404 for `/admin/api/v1/<unmapped>`** returns JSON 404 instead of falling through to the chat UI HTML.
  * **Rebrand: "Idun Platform" → "Idun Engine"** across `docs.json`, OG metadata, navbar, search prompt, and the docs naming guidelines. The GitHub repo name (`idun-agent-platform`) is unchanged.
  * **Docs moved from MkDocs to Mintlify** at `docs.idun-group.com`. New paper / ink editorial design matches the website's Engine product page.
  * **`ObservabilityConfig` schema restructured.** The discriminated union now stamps a `provider` literal onto each inner provider config; legacy YAML keeps working because validators auto-sync the parent and inner fields.
  * **`AdkAgentConfig.app_name` now optional.** When omitted, it auto-derives from `name` (lowercase + non-alphanumeric → underscore). Non-breaking; explicit values still win.
  * **BREAKING: `RestrictToTopicConfig.topics`** is split into `valid_topics` and `invalid_topics`. v0.5.x configs using `topics:` will fail validation; rename the key in your YAML.

  ### Deprecated

  * **`/agent/invoke`** is marked `deprecated=True` in OpenAPI. Migrate to `POST /agent/run` (AG-UI SSE stream). Removal targeted for 0.7.

  ### Removed

  * **`services/idun_agent_manager/`** + **`services/idun_agent_web/`** — the FastAPI manager service and React admin UI. \~90,219 lines across 367 files. Replaced by the bundled Next.js admin / chat / traces UI at `services/idun_agent_standalone_ui/`, served by the engine wheel.
  * **TUI (`idun init` Textual UI) and the Streamlit demo.** 4,093 lines across 26 files. Replaced by the setup wizard inside the bundled Next.js admin at `/admin`.
  * **MkDocs site (`old-docs/`, `mkdocs.yml`).** 11,638 lines across 160 files. Replaced by Mintlify at `docs.idun-group.com`.
  * **Haystack agent adapter, `HaystackAgentConfig` schema, `langfuse-haystack` runtime dependency, and all related tests, docs, and UI surfaces.** Migrate Haystack agents to LangGraph or ADK before upgrading.
  * Total: \~151,820 lines deleted in one commit (`9a54145d`, "finalize standalone migration"); 712 file deletions; net reduction of 150,883 lines.

  ### Fixed

  * MCP tool calls wrapped so AG-UI can serialize event payloads end-to-end.
  * Guardrail install failures surface to the reload pipeline instead of silently degrading the running agent.
  * Trace pipeline no longer drops trace rows when the runtime OTel context leaks a parent.
  * Prompts resolve from the `EngineConfig` snapshot in standalone, mirroring the MCP registry pattern.
  * Tool calls in the chat UI render their args and result instead of the literal string `"null"`.
  * Chat history sidebar auto-refreshes after a run and sorts newest first.

  ### Security

  * Third-party GitHub Actions pinned to SHAs; dep-audit job; `SECURITY.md` hardened.
  * Socket security gates wired into PRs and both publish workflows.
  * Next.js and aiohttp CVE patches; `pinact` pre-commit hook.
  * `guardrails-ai` moved out of the default install footprint.

  ### Standards composed

  Idun Engine composes open standards rather than inventing new protocols. Your investment in any of these moves with you if you ever leave:

  * **LangGraph** and **Google ADK** — agent frameworks
  * **AG-UI** — streaming protocol, compatible with any CopilotKit client
  * **OpenTelemetry** — tracing, exported to Langfuse, Phoenix, LangSmith, or GCP Trace
  * **MCP** — tool servers, under Linux Foundation governance since 2025
  * **OIDC** — auth (Google, Microsoft, any compliant provider)
  * **FastAPI**, **Pydantic** — HTTP layer and config models

  ### Upgrading from 0.5.x

  1. Uninstall any separate `idun-agent-standalone` wheel, since it is now bundled in the engine wheel.
  2. Install with `pip install idun-agent-engine[guardrails]==0.6.0` if you use Guardrails-AI; otherwise plain `pip install idun-agent-engine==0.6.0`.
  3. Migrate Haystack agent configs to LangGraph or ADK.
  4. **Update `RestrictToTopicConfig` YAML**: rename `topics:` to either `valid_topics:` or `invalid_topics:` (or both). The old key is no longer accepted by the schema.
  5. Switch smoke checks from `curl /health` to `POST /agent/run` (the deprecated `/agent/invoke` still works but will be removed in 0.7).
  6. Run `idun setup` after upgrade so the new standalone admin DB migrations apply.
  7. If you wrote scripts against `docs.idunplatform.com`, point them at `docs.idun-group.com` (the old domain redirects until further notice).
</Update>

<Update label="v0.5.1" description="March 2026">
  * Mintlify docs migration and UI rework
  * Guardrails hub URL fixes
  * LangSmith run name support for LangGraph and ADK agents
  * Check connection for observability and memory providers
  * MCP discover tools timeout
</Update>

<Update label="v0.5.0" description="March 2026">
  * ADK database session service support
  * Observability V2 configuration schema
  * Multi-provider observability support
  * Prompt management system
  * MCP servers
</Update>

<Update label="v0.4.8" description="February 2026">
  * Initial public release
  * LangGraph and ADK framework support
  * Guardrails AI integration
  * Langfuse and Phoenix observability
  * SQLite and PostgreSQL checkpointing
  * Discord, Slack, and WhatsApp integrations
  * SSO/OIDC authentication
  * Docker Compose deployment
</Update>

For full details on any release, see the [GitHub releases](https://github.com/Idun-Group/idun-agent-platform/releases).
