Skip to content

v0.6.2 - Patch release

Choose a tag to compare

@Freezaa9 Freezaa9 released this 21 May 08:41
· 10 commits to main since this release
9df1ae3

Idun Engine v0.6.2 — Admin UI SPA-navigation fixes

Patch release. Fixes a cluster of SPA-navigation bugs in the standalone admin UI under Next.js 15 output: "export" + FastAPI SPA-rewrite, where soft client-side navigation and cookie handling do not behave as they would in a standard server-rendered Next.js app. No engine code changes — the engine wheel just bundles the updated standalone UI.

📋 Full changelog: docs.idun-group.com/changelog

Install

pip install --upgrade idun-agent-engine==0.6.2
idun setup
idun serve

Open http://localhost:8000 — your agent runs at /, admin at /admin, traces at /admin/traces.

Highlights

  • Login round-trips correctly under password auth. AuthGuard now preserves ?next=<current path> so the operator lands back on the admin page they tried to reach, not on the chat surface.
  • Session cookie travels after login. The login form hard-navs via window.location.replace instead of router.replace, so the freshly-set idun_session cookie actually attaches to the next request under output:"export" + trailingSlash:true.
  • Trace detail loads on first click. Switched the trace-id resolver from a stale useMemo(readLocation, []) (which captured the previous page's pathname on <Link> clicks) to the reactive usePathname() hook. No more "No spans recorded" until refresh.
  • Sidebar Traces and post-delete redirects use hard nav. Soft router.push("/admin/traces/") under output:"export" with dynamicParams:false sometimes mounts the sibling [traceId] route component at the list URL (Next.js router cache collision). window.location.assign bypasses it.

Fixed

  • AuthGuard ?next= preservation. api.me() returns 200 {authenticated:false} under password mode, so the global 401 redirect doesn't fire for the me() probe itself. AuthGuard's redirect now builds ?next=<current path> (#682).
  • Hard-nav after login. Replaced router.replace with window.location.replace on the login form's success path so the freshly-set session cookie travels with the next request (#682).
  • Trace detail data fetch on soft nav. Switched from useMemo(readLocation, []) to reactive usePathname() — fixes "No spans recorded" until refresh (#682).
  • Sidebar Traces hard-nav. Sidebar Traces link uses window.location.assign to dodge the router-cache + dynamicParams:false collision (#682).
  • Post-delete hard-nav. Delete-success no longer soft-navs to /admin/traces — same router-cache bug, worse UX after a destructive action (#682).
  • goBackToList no-history fallback gets the same hard-nav treatment (#682).

Tests

  • New AuthGuard.test.tsx covering authenticated / unauthenticated / loading / loading-to-resolved / hash-drop / query-string preservation.
  • New readTraceIdFromPathname.test.ts for the now-exported pure resolver.
  • Repaired pre-existing broken tests (detail-page.test.tsx, detail-page-url-parser.test.tsx) that were silently broken on develop after the usePathname introduction (test mocks of next/navigation didn't include usePathname).

Upgrading from 0.6.1

No config changes required. Plain in-place upgrade:

pip install --upgrade idun-agent-engine==0.6.2

If you use the [guardrails] extra, upgrade with the extra preserved:

pip install --upgrade 'idun-agent-engine[guardrails]==0.6.2'

idun setup is not required for this patch (no migration changes). Existing sessions and traces are preserved.

Standards composed

LangGraph · Google ADK · AG-UI · OpenTelemetry · MCP · OIDC · FastAPI · Pydantic


Source: GitHub · Docs: docs.idun-group.com · Community: Discord · Book a call: calendar.app.google

🤖 Release notes prepared with Claude Code