You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## Summary
- **Logs tab**: Structured operational event viewer with filter chips,
error summary banner, live-tail auto-scroll, tool call/result visual
pairing, and a11y (semantic markup, aria-live, contrast fixes)
- **Operational event persistence**: Runner now pushes `tool_use`,
`tool_result`, `error`, and `lifecycle` events to the session messages
API via new `OperationalEventWriter` (previously only `user`/`assistant`
were persisted)
- **Auth simplification**: Removed oauth-proxy and none auth modes;
native-sso only via Keycloak OIDC
- **User menu**: Initials avatar + dropdown with sign-out in nav header
- **OOMKilled detection**: Control plane pod syncer now detects
OOMKilled/Error terminated containers
- **Runner OOM fix**: Pre-install `mcp-server-fetch` in Dockerfile
instead of downloading via `uvx` at runtime (eliminated 15GB memory
spike)
- **Smart polling**: Restored phase-aware polling — 1s transitioning, 3s
active, stopped for terminal sessions, 30s for projects
- **Dev experience**: `make dev COMPONENT=ambient-ui` handles
port-forwards, Keycloak hostname patching, `.env.local` generation
- **Test suite**: 23 files, 227 unit tests in 2.9s (vitest) + Playwright
e2e scaffold
## Runner changes (SDD-managed, warn mode)
The `.mcp.json` and `Dockerfile` changes fix a critical OOM issue: `uvx
mcp-server-fetch` was downloading and installing packages into a temp
venv at runtime, spiking memory to 15GB. Now pre-installed at build time
with a pinned version (`mcp-server-fetch==2025.4.7`).
## Test plan
- [x] `npx vitest run` — 227 tests pass
- [x] `npx tsc --noEmit` — zero type errors
- [x] Logs tab renders with filter chips, error banner, live tail
indicator
- [x] Runner pushes operational events visible in Logs tab (requires
rebuilt runner image)
- [x] SSO login flow works against Kind Keycloak
- [x] `make dev COMPONENT=ambient-ui` starts dev server with working
auth
- [x] Smart polling stops for terminal sessions
- [ ] Verify on staging with real agent sessions
🤖 Generated with [Claude Code](https://claude.com/claude-code)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Ambient UI added with SSO login, top-right user menu and sign-out,
session event log viewer (filters, live-tail, accessible announcements),
and a new /api/me endpoint.
* **Bug Fixes**
* Better pod crash detection (includes OOMKilled/Error) and increased
runner memory.
* **Developer Experience**
* Local dev improvements: new make targets and automatic port-forwards
for Ambient UI and Keycloak.
* **Tests**
* Added unit and Playwright E2E tests and test coverage scripts.
* **Documentation**
* Ambient UI development guide and architecture notes added.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
0 commit comments