feat(webui): AI-provider connections and evidence-backed insights (Closes #650)

Add Phase 4 advisory surfaces for declared AI-provider connection status
(no secrets, no live probe claims) and operational insights derived only
from durable traffic, health, provider, and analytics evidence.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
This commit is contained in:
2026-07-25 16:53:36 -04:00
co-authored by Claude Opus 4.8
parent 76f293eb28
commit 983e8ac2c7
6 changed files with 1412 additions and 11 deletions
+6 -10
View File
@@ -4,11 +4,11 @@ Single source of truth for the console navigation so ``webui/layout.py`` and
the ``webui/app.py`` route table stay aligned with epic #631. Read-only: every
destination is a GET view or a Phase 1 placeholder. No mutation links.
Nav groups follow the #631 Phase 1 information architecture: Health, Traffic,
Nav groups follow the #631 information architecture: Health, Traffic,
Runtime/Sessions, Projects, Inventory, Timeline, Policy (placeholder), and
Insights (placeholder). Later-phase surfaces are declared as ``stub`` items and
backed by ``STUB_PAGES`` so their nav links resolve to a graceful placeholder
instead of a 404.
Insights (Phase 4 providers + evidence-backed insights via #650). Later-phase
surfaces are declared as ``stub`` items and backed by ``STUB_PAGES`` so their
nav links resolve to a graceful placeholder instead of a 404.
"""
from __future__ import annotations
@@ -65,7 +65,8 @@ NAV_GROUPS: tuple[NavGroup, ...] = (
NavItem("/prompts", "Prompts"),
)),
NavGroup("Insights", (
NavItem("/insights", "Insights", "stub"),
NavItem("/insights", "Insights"),
NavItem("/providers", "Providers"),
NavItem("/analytics", "Analytics"),
NavItem("/audit", "Audit"),
)),
@@ -89,11 +90,6 @@ STUB_PAGES: dict[str, tuple[str, str]] = {
"Policy",
"Capability and role policy surface. Placeholder until a later phase.",
),
"/insights": (
"Insights",
"Aggregate operational insights and trends. Placeholder until a later "
"phase.",
),
}