AI Agents

  • Changed

    • (muster) Default versionRange 0.x -> 1.x (giantswarm#37164) in #207 by @paurosello

    Full Changelog: https://github.com/giantswarm/agentic-platform/compare/v2.2.0...v2.2.1

  • Fixed

    • SSO sessions on token-exchange backends no longer deauthenticate under a re-exchange rotation storm. A long-lived SSO session reconnecting after its login-time ID token expired re-inited SSO in initSSOForSession from the live request context but never persisted that token to the OAuth-proxy store, so muster’s background re-exchange (running on a detached context.Background() that can only read the store) fell back to the in-process refresher and rotated the client’s mcp refresh token on every ~1s continuous-listen retry (~56×/min for ~15 min); two rotations eventually collided and OAuth 2.1 reuse detection revoked the whole token family → deauth. initSSOForSession now persists the request-context ID token, and the background SSO refresher is routed to mcp-oauth’s provider-only RefreshSessionProvider, which repopulates the upstream provider token without rotating the client-facing refresh token. (#37164) Deploy note: the accompanying mcp-oauth bump (v1.0.10 → v1.2.0) changes the Valkey provider-token storage layout to a single shared entry per user with no legacy read-fallback, so every user re-authenticates exactly once on rollout (existing sessions do not carry over). Optionally flush the affected token keys (token:*, refresh:*, and related meta:* / family:* / user-client set keys under the configured prefix) for a clean cutover; skipping the flush is safe — leftover keys are never read and just linger until TTL.
  • Added

    • dicebear avatar renderer as a force-enabled meta-package component (umbrella values.yaml components.dicebear + a forwarded top-level dicebear: block, values.schema.json, examples/customer-bom.yaml pinned to 0.3.0). Wires the self-hosted giantswarm/dicebear chart into the bundle so the DiceBear avatar API is deployed on every cluster that runs the platform, per giantswarm/giantswarm#37211. Rendered as an OCIRepository + HelmRelease like every other component (injectGlobal: false — the chart’s strict schema consumes registry.domain, not global). Its public avatar HTTPRoute is on by default, so every installation must set dicebear.route.parentRefs (typically the same public Gateway as ingress.parentRefs) and dicebear.route.hostnames (e.g. avatars.<domain>) — the chart hard-fails otherwise, by design, matching the existing ingress.* per-cluster contract.
  • Fixed

    Full Changelog: https://github.com/giantswarm/muster/compare/v1.0.5...v1.0.6

  • Fixed

    Full Changelog: https://github.com/giantswarm/muster/compare/v1.0.4...v1.0.5

  • Changed

    Full Changelog: https://github.com/giantswarm/klausctl/compare/v0.2.32...v0.2.33

  • Changed

    • kagent.controller.auth.userIdClaim default changed from sub to email (umbrella + connectivity values.yaml). The kagent controller now keys sessions and identity on the dex email claim instead of dex’s opaque, connector-prefixed sub. This matches muster’s trusted-issuer subjectClaim: email and makes the UI path (oauth2-proxy forwards the same dex id_token) and the A2A path resolve to the same identity. Existing kagent sessions keyed by old sub values are orphaned by this change (session history resets); the claim falls back to sub in the controller when email is absent from the token.
  • Changed

    Full Changelog: https://github.com/giantswarm/muster/compare/v1.0.3...v1.0.4

  • Fixed

    • agentic-platform-connectivity: the kagent-srt-settings Kyverno policy now reads the existing srt-settings.json from the Secret’s data (base64-decoded) instead of stringData. The API server folds stringData into data before admission webhooks run (Convert_v1_Secret_To_core_Secret), so the policy’s merge source was always empty and the mutation replaced the controller-generated settings with {"enableWeakerNestedSandbox":true} alone. srt then rejected the file (network: Required, filesystem: Required), which broke sandboxed skill execution and left agents without their muster MCP tools (“Tool not found” on filter_tools/call_tool/describe_tool). The merged file now keeps the controller’s network and filesystem sections alongside the flag. Existing agent config Secrets are only re-mutated on their next write; restart the kagent controller after deploying to force a rewrite.
  • Fixed

    Full Changelog: https://github.com/giantswarm/muster/compare/v1.0.2...v1.0.3