feat(web): Unified Insights dashboard — replaces the Overview/Cost/Pipeline apps - #145
Merged
Conversation
…s dashboard The desktop had three overlapping surfaces for "what did the agents do": an Overview KPI page, a standalone admin Cost page, and an "Agents" (PipelineStudio) window that ran a story through the 5 agents — a second run surface next to the Workflow app, which already runs the same agents as a graph. That redundancy read as confusing UX. Fold all three into one observability dashboard, "Insights" (the pinned landing app): - Headline KPIs: pipeline runs, success rate, avg QA rounds, LLM cost (billed) with the "≈ $X API" would-be estimate carried over from PipelineStudio's status bar — so the $0 RemoteAgent path still shows a meaningful metered-API cost of the tokens. - Four token-styled bar charts (no chart lib, no SVG — pure divs, all var(--…)): runs over time, per-agent calls + cost, spend by model (≈ API), and avg latency per agent + QA-round distribution. - The budget cap/enforce control (moved from the deleted Cost app), admin-gated. Running the pipeline now lives only in the Workflow app (Board's "Open in Pipeline" ticket action repoints there). Removes PipelineStudio/OverviewApp/CostApp + their AppCatalog entries + the Settings "Cost" tab; pinned apps drop 7 → 6. Data: reuse IPipelineRunRepository.GetCostSummaryForTenantAsync; add a sibling GetInsightsExtraForTenantAsync (avg-latency-by-agent, QA-iteration distribution, runs-per-day) with the same Dapper fast-path + EF fallback + no-op-repo shape — no schema change (LatencyMs/Iteration columns already exist and are indexed). Verified: Release build clean (0 warn), 847 unit tests pass; E2E on the full Aspire stack with seeded runs — Insights renders 12 runs, 75% success, 1.8 avg QA rounds, $0 billed / ≈$0.6662 API, and the runs-over-time + by-agent charts populate. E2E dock + budget-gate tests updated (Overview→Insights, Cost tab → Insights budget panel). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…lifiable-boolean-expression) The only open code-scanning alert on main — a note-level simplifiable-boolean in the Workflow node-library empty-state check. No behaviour change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The desktop app lineup changed: Overview + Cost folded into a single Insights dashboard, and running the pipeline now lives only in the Workflow app (the old "Agents"/PipelineStudio run window is gone). Update the screenshot gallery + hero caption to match — Insights described in text (promo PNG refresh pending), the three stale image cells (app-overview/app-pipeline/app-cost) dropped, Workflow reframed as the run surface. The rest of the README (module table, gateway, setup) is unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ts"/Cost apps CI's dev-auth UI E2E (RUN_AGENTOS_E2E=true) exercises the standalone Web and caught two WindowLifecycleTests still driving the deleted "Agents" (pipeline) window — Window_Lifecycle_* and TopBar_Center_* timed out waiting for a dock item that no longer exists. Repoint them to Insights. Also drop the removed "Cost" Settings tab from RoleIsolationRealAuthTests' admin-category list and rename the budget-gate test (…_CostApp_… → …_Insights_…) to match where the cap control moved. Verified locally against the standalone Web the same way CI does (RUN_AGENTOS_E2E=true, AGENTOS_URL=http://localhost:5199): 18 passed / 0 failed (10 real-auth gated-skipped) — previously 16 passed / 2 failed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
6 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Change description
The desktop had three overlapping "what did the agents do" surfaces — an Overview KPI page, a standalone admin Cost page, and an "Agents" (PipelineStudio) window that ran a story through the 5 agents, i.e. a second run surface next to the Workflow app (which already runs the same agents as a graph). That redundancy read as confusing UX.
This folds all three into one observability dashboard,
Insights(the pinned landing app), and makes Workflow the single run surface.Insights (
src/AgentOs.Web/Components/Pages/InsightsApp.razor):≈ $X APIwould-be estimate carried over from PipelineStudio's status bar — so the $0 dev-runner path still shows a meaningful metered-API cost of the tokens.<div>s, allvar(--…)): runs over time, per-agent calls + cost, spend by model (≈ API), avg latency per agent + QA-round distribution.Removed:
PipelineStudio/OverviewApp/CostApp+ theirAppCatalogentries + the Settings "Cost" tab. Pinned apps 7 → 6 (Insights · Workflow · Board · Settings · Terminal · Files). Board's ticket "Open in Pipeline" action repoints to Workflow.Data: reuse
GetCostSummaryForTenantAsync; add a siblingGetInsightsExtraForTenantAsync(avg-latency-by-agent, QA-iteration distribution, runs-per-day) with the same Dapper fast-path + EF fallback + no-op-repo shape. No schema change —LatencyMs/Iterationcolumns already exist and are indexed.Also folds in the one open CodeQL alert (
cs/simplifiable-boolean-expression) and a README app-gallery refresh.Type of change
Related issues
—
Checklist
dotnet buildpasses locally in Release mode (0 warnings,TreatWarningsAsErrors)dotnet testpasses — 847 unit tests, 0 failuresTest plan
dotnet build AgentOs.slnx -c Release→ clean, 0 warnings.dotnet test AgentOs.slnx -c Release→ 847 passed / 0 failed (28 E2E gated-skipped).defaultacross 6 days. Verified live:≈ APIsub-line all functional; no phantom-CSS, no circuit crash.LoginAndDesktopTests+WindowLifecycleTests(Overview→Insights, drop "Agents");BudgetGateRealAuthTestsrepointed Settings→Cost tab → the Insights budget panel.