Merge develop into main: AI² 2.0 (agent, MCP tools, CI, Helm), develop @ de66ac36

``> Correction (22 Oct 2026): this MR was opened with the title and description of a single fix

(AUTH_ENABLED / mcp_use OAuth discovery, kept below). It actually merged all of develop into main: 84 commits from 13 Mar to 21 Oct 2026 (Kostas Chartsias 51, Natalia Grigoriadou 29, Dimitrios Gogos 4), 63 files, +2803/−583. The merge commit 3cc859b1 keeps the original message; main is identical to develop at de66ac36. No history was rewritten.

What this merge brought into main

  • Agent: moved from Quart to FastAPI; agent memory with Redis; prompt types; multi-step agentic operations; OEG errors surfaced through ToolError; user token forwarded to OEG; AUTH_ENABLED switch.

  • MCP tools: edge application definitions, zones, instantiation and required resources (typed to the OEG schema); Traffic Influence; Location retrieval; QoD fixes; legacy tools removed; OEG base URL defaults for CAMARA.

  • Quality: pytest suite, static type checks, lint and format, GitLab SAST.

  • Build and deploy: CI image build and push with buildx on the docker runner (no provenance attestation); base-image and dependency fixes (langchain, mcp); Helm chart with Redis; vendored Helm dependencies untracked.

  • Docs: README updates.``

  • AUTH_ENABLED (default true, unchanged behaviour): when false, the agent accepts chats without a bearer token and the MCP server calls OEG without one. Needed for platforms deployed with global.auth.enabled=false, where the portal sends no token and the chat failed with 401. A token that is present is still forwarded.

  • No more OAuth discovery per chat: mcp_use defaults a server's auth to {}, which makes it probe /.well-known OAuth endpoints on every connection and log "Failed to discover OAuth/OIDC metadata". The agent now sets "auth": None; the token still travels in headers. The unused use-oauth2/use-oidc keys are removed.

Tests

  • New tests for both layers with AUTH_ENABLED=false; existing 401 tests unchanged.
  • ruff, format, mypy and pytest (143) pass. ``
Edited by Dimitrios Gogos

Merge request reports

Loading
Loading