AI Agents

  • Fixed

    Full Changelog: https://github.com/giantswarm/klaus-operator/compare/v0.0.102...v0.0.103

  • Changed

    • (deps) Bump muster sub-chart 0.7.5 -> 0.8.0 in #145 by @teemow

    Full Changelog: https://github.com/giantswarm/agentic-platform/compare/v1.4.6...v1.4.7

  • Added

    • Workflow control flow (#865): four genuinely useful constructs are now implemented end to end (CRD types, internal API types, executor, structured create/validate path, and step JSON schema):
      • condition.template — a boolean Go-template gate evaluated in-process (e.g. condition: {template: "{{ eq .input.env \"production\" }}"}).
      • forEach — a sequential loop that runs a flat body of sub-steps once per item of a list, binding the current item to {{ .vars.<as> }} (default item) and the index to {{ .vars.<as>_index }}. A stored sub-step is addressable per iteration as {{ .results.<id>_<index> }} (the plain {{ .results.<id> }} keeps the last iteration’s result).
      • parallel — a group of sub-steps executed concurrently; siblings are independent (each resolves arguments from the pre-group state).
      • spec.onFailure — best-effort cleanup/rollback sub-steps run when the workflow fails on a step that does not allow failure.
      • The “exactly one of tool, forEach, or parallel” rule is enforced by the CRD itself via a CEL validation rule, so a malformed step is rejected at kubectl apply time, not only through the structured create path.
      • Step/sub-step conditions are now validated structurally on every authoring path: a condition must set exactly one of template, tool, or fromStep, and a tool/fromStep condition must declare expect or expectNot. Both rules are enforced at kubectl apply time via CEL on the Workflow CRD and in the structured workflow_create/workflow_validate path. Previously a tool/fromStep condition without an expectation silently fell back to “expect the call to fail”, and a kubectl-applied condition was not checked at all.

    Changed

    • Workflow field-name casing is now consistent across authoring surfaces (#865): the structured workflow_create/workflow_update/workflow_validate tool path now accepts the canonical camelCase names used by the CRD and the documentation (allowFailure, fromStep, expectNot, jsonPath) in addition to the previously released snake_case aliases (allow_failure, from_step, expect_not, json_path), and the advertised tool JSON schema now lists the camelCase names. Previously a workflow authored from the (camelCase) documentation was silently mis-parsed through the MCP tool path — e.g. allowFailure was dropped, so a step meant to tolerate failure halted the workflow.

    Removed

    • WorkflowStep.outputs (#865): the field was present on the CRD and copied by the adapter but never read by the executor (dead code). Removed from the CRD, internal types, conversion, and step JSON schema. Use store: true and reference the result as {{ .results.<step_id> }} instead.

    Fixed

    • Workflow documentation (#865): docs/how-to/workflow-creation.md and docs/how-to/ai-workflow-optimization.md were rewritten to describe only features the engine implements; all example templates now use the correct {{ .input.<arg> }} context (the engine renders with missingkey=error, so the previously documented {{ .<arg> }} form errored at runtime). docs/reference/crds.md template syntax was corrected, the stray spec.name removed from examples, and the dead outputs field replaced with store: true guidance.
    • Documentation: removed all references to a hallucinated muster configure ... CLI from docs/how-to/ai-troubleshooting.md and docs/how-to/ai-agent-integration.md. muster has no configuration CLI — configuration is file-based (~/.config/muster/config.yaml), entities are created with muster create, and debugging uses muster serve --debug. The invented context/tool-suggestion and alert/cache/limit configuration blocks built around that command were dropped.
    • Documentation: completed a repo-wide accuracy pass removing the remaining hallucinated CLI surface and config from the docs. docs/how-to/ai-troubleshooting.md and docs/how-to/troubleshooting.md were rewritten around the real command set; the invented muster status, muster logs, muster describe, muster validate, muster restart, muster metrics, muster backup/restore, muster support-bundle, muster config show, the fictional muster serve --port/--host flags, and the kind: Config logging CRD were replaced with the real equivalents (muster get/list/check/call, muster serve --debug/--silent, the /health endpoint, OpenTelemetry/OTLP for metrics and traces, and file-based config). The same fixes were applied in docs/how-to/mcp-server-management.md (muster metrics/muster logs mcpserver, and a Cursor mcpServers entry that used curl as the MCP command) and docs/reference/events.md (muster restart mcpserver).
    • Documentation: corrected workflow template/feature hallucinations beyond #865 in docs/how-to/advanced-scenarios.md, docs/how-to/ai-agent-integration.md, docs/reference/mcp-tools.md, docs/reference/configuration.md, docs/reference/api.md, docs/explanation/orchestration.md, and docs/explanation/design-principles.md: example templates now use the real {{ .input.<arg> }} / {{ .results.<step-id> }} context (engine renders with missingkey=error), the unsupported enum/examples/pattern arg keywords and stray spec.name/outputs fields were removed, and the fabricated spec.triggers event-driven workflows, custom TemplateFuncs map (templates use the Sprig library), invented muster_* metric names, and non-existent per-step retry/on_failure/error_handling fields were replaced with the real condition.template, workflow-level onFailure, and OpenTelemetry behaviour.
  • Changed

    Full Changelog: https://github.com/giantswarm/muster/compare/v0.7.7...v0.7.8

  • Changed

    Full Changelog: https://github.com/giantswarm/klaus-operator/compare/v0.0.101...v0.0.102

  • Changed

    Full Changelog: https://github.com/giantswarm/klaus/compare/v0.0.220...v0.0.221

  • Changed

    Full Changelog: https://github.com/giantswarm/klausctl/compare/v0.2.10...v0.2.11

  • Changed

    Full Changelog: https://github.com/giantswarm/agentic-platform/compare/v1.4.5...v1.4.6

  • Changed

    Full Changelog: https://github.com/giantswarm/klaus-oci/compare/v0.0.51...v0.0.52

  • Fixed

    Full Changelog: https://github.com/giantswarm/klaus/compare/v0.0.219...v0.0.220