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
developintomain: 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;mainis identical todevelopat 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_ENABLEDswitch. -
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(defaulttrue, unchanged behaviour): whenfalse, the agent accepts chats without a bearer token and the MCP server calls OEG without one. Needed for platforms deployed withglobal.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_usedefaults a server'sauthto{}, which makes it probe/.well-knownOAuth endpoints on every connection and log "Failed to discover OAuth/OIDC metadata". The agent now sets"auth": None; the token still travels inheaders. The unuseduse-oauth2/use-oidckeys are removed.
Tests
- New tests for both layers with
AUTH_ENABLED=false; existing 401 tests unchanged. - ruff, format, mypy and pytest (143) pass. ``