v0.6.2 - Patch release
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 serveOpen 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.replaceinstead ofrouter.replace, so the freshly-setidun_sessioncookie actually attaches to the next request underoutput:"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 reactiveusePathname()hook. No more "No spans recorded" until refresh. - Sidebar Traces and post-delete redirects use hard nav. Soft
router.push("/admin/traces/")underoutput:"export"withdynamicParams:falsesometimes mounts the sibling[traceId]route component at the list URL (Next.js router cache collision).window.location.assignbypasses it.
Fixed
- AuthGuard
?next=preservation.api.me()returns200 {authenticated:false}under password mode, so the global 401 redirect doesn't fire for theme()probe itself. AuthGuard's redirect now builds?next=<current path>(#682). - Hard-nav after login. Replaced
router.replacewithwindow.location.replaceon 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 reactiveusePathname()— fixes "No spans recorded" until refresh (#682). - Sidebar Traces hard-nav. Sidebar Traces link uses
window.location.assignto dodge the router-cache +dynamicParams:falsecollision (#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). goBackToListno-history fallback gets the same hard-nav treatment (#682).
Tests
- New
AuthGuard.test.tsxcovering authenticated / unauthenticated / loading / loading-to-resolved / hash-drop / query-string preservation. - New
readTraceIdFromPathname.test.tsfor 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 theusePathnameintroduction (test mocks ofnext/navigationdidn't includeusePathname).
Upgrading from 0.6.1
No config changes required. Plain in-place upgrade:
pip install --upgrade idun-agent-engine==0.6.2If 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