From 138d8333119b841745f3cc5b11f5a824b9b6f72c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 14 Apr 2026 00:49:29 +0000 Subject: [PATCH 1/3] chore: plan page.yml implementation for playwright-mcp Agent-Logs-Url: https://github.com/hoangsonww/Claude-Code-Agent-Monitor/sessions/d7cc1e51-ef9e-4216-99d8-ac823768a42d Co-authored-by: hoangsonww <124531104+hoangsonww@users.noreply.github.com> --- mcp/package-lock.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mcp/package-lock.json b/mcp/package-lock.json index 92f52cb8..0e6059ea 100644 --- a/mcp/package-lock.json +++ b/mcp/package-lock.json @@ -28,9 +28,11 @@ "..": { "name": "agent-dashboard", "version": "1.0.0", + "license": "MIT", "dependencies": { "cors": "^2.8.5", "express": "^4.21.2", + "swagger-ui-express": "^5.0.1", "uuid": "^11.1.0", "ws": "^8.18.0" }, From 99b8b1df9e133288ea205ee16d8a6a74a02d0ca2 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 14 Apr 2026 00:50:09 +0000 Subject: [PATCH 2/3] feat: fully implement playwright-mcp page.yml with substantial route and flow config Agent-Logs-Url: https://github.com/hoangsonww/Claude-Code-Agent-Monitor/sessions/d7cc1e51-ef9e-4216-99d8-ac823768a42d Co-authored-by: hoangsonww <124531104+hoangsonww@users.noreply.github.com> --- .playwright-mcp/page.yml | 224 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 224 insertions(+) diff --git a/.playwright-mcp/page.yml b/.playwright-mcp/page.yml index 8b137891..d2027ca7 100644 --- a/.playwright-mcp/page.yml +++ b/.playwright-mcp/page.yml @@ -1 +1,225 @@ +version: 1 +name: claude-code-agent-monitor +description: > + Playwright MCP page model for the Claude Code Agent Monitor dashboard. + This file defines stable navigation targets, readiness checks, and + high-value interaction flows for browser automation and validation. +app: + base_url: http://localhost:5173 + production_url: http://localhost:4820 + shell: + sidebar_brand: Agent Dashboard + nav_items: + - Dashboard + - Agent Board + - Sessions + - Activity Feed + - Analytics + - Workflows + - Settings + websocket_indicators: + live: Live + disconnected: Disconnected + +readiness: + default_timeout_ms: 15000 + checks: + - type: text + value: Agent Dashboard + required: true + - type: text_any + values: [Live, Disconnected] + required: true + - type: nav_labels + values: [Dashboard, Agent Board, Sessions, Activity Feed, Analytics, Workflows, Settings] + +pages: + dashboard: + route: / + title_text: Dashboard + summary_text: Real-time overview of Claude Code agent activity + primary_actions: + - Refresh + - View Board + key_blocks: + - Total Sessions + - Active Agents + - Active Subagents + - Events Today + - Total Events + - Total Cost + - Active Agents + - Recent Activity + empty_states: + - No active agents + - No activity yet + + agent_board: + route: /kanban + title_text: Agent Board + expected_columns: + - Working + - Connected + - Idle + - Completed + - Error + empty_state: No agents tracked yet + + sessions: + route: /sessions + title_text: Sessions + search_placeholder: Search sessions... + filters: + - All + - Active + - Completed + - Error + - Abandoned + row_navigation: /sessions/:id + empty_state: No sessions found + + session_detail: + route_pattern: /sessions/:id + expected_sections: + - Session Overview + - Agent Hierarchy + - Event Timeline + interactions: + - Expand nested agent tree when present + - Verify timeline entries are ordered newest-first + + activity_feed: + route: /activity + title_text: Activity Feed + stream_text: Real-time stream of all agent events + controls: + - Pause + - Resume + - Refresh + - Previous + - Next + empty_state: No activity yet + + analytics: + route: /analytics + title_text: Analytics + primary_actions: + - Refresh + - Export JSON + expected_cards: + - Total Tokens + - Input Tokens + - Output Tokens + - Estimated Cost + - Total Sessions + - Total Agents + + workflows: + route: /workflows + title_text: Workflows + status_tabs: + - Active Only + - Completed + - All + primary_actions: + - Refresh data + - Export as JSON + expected_sections: + - Agent Orchestration Graph + - Tool Execution Flow + - Agent Pipeline Graph + - Subagent Effectiveness + - Detected Workflow Patterns + - Model Delegation Flow + - Error Propagation Map + - Agent Concurrency Timeline + - Session Complexity Scatter + - Compaction Impact Analysis + - Session Drill-In + + settings: + route: /settings + title_text: Settings + expected_sections: + - Model Pricing + - Hook Configuration + - Data Export + - Session Cleanup + - Clear All Data + - About + key_inputs: + - model_filter: claude-opus-4% + - model_name: Claude Opus 4 + dangerous_actions_require_confirmation: + - Clear All Data + + not_found: + route: /__playwright_mcp_invalid_route__ + expected_text: + - 404 + - Page Not Found + +flows: + smoke_navigation: + description: Validate shell and every primary route. + steps: + - open / + - assert readiness checks + - click sidebar item Dashboard and assert title Dashboard + - click sidebar item Agent Board and assert title Agent Board + - click sidebar item Sessions and assert title Sessions + - click sidebar item Activity Feed and assert title Activity Feed + - click sidebar item Analytics and assert title Analytics + - click sidebar item Workflows and assert title Workflows + - click sidebar item Settings and assert title Settings + + sessions_search_and_open: + description: Validate sessions page controls and row navigation. + steps: + - open /sessions + - fill Search sessions... with session + - toggle filters Active then All + - if a table row exists, click first row and assert route matches /sessions/:id + + activity_pause_resume: + description: Validate feed buffering control UX. + steps: + - open /activity + - click Pause + - wait 2s + - click Resume + - assert Pause button becomes visible again + + workflows_refresh_and_export: + description: Validate workflows controls and major sections. + steps: + - open /workflows + - assert all expected section titles are visible + - click Refresh data + - click Export as JSON + + settings_safety: + description: Validate access to settings and destructive gate visibility. + steps: + - open /settings + - assert sections Model Pricing and Hook Configuration are visible + - verify Clear All Data action is present and requires explicit confirmation + +stability: + preferred_locators: + - role + accessible name + - visible heading text + - stable button text + discouraged_locators: + - autogenerated class names + - brittle nth-child selectors + waits: + navigation_idle: networkidle + post_action_ms: 150 + websocket_settle_ms: 3000 + +notes: + - Use `app.base_url` in local dev and `app.production_url` for production smoke checks. + - Prefer validating both populated and empty-state UI where seed data is unavailable. + - Keep assertions content-focused so minor style changes do not break automation. From 4058006cfb602630b94c6676cf962d8798aa0a3f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 14 Apr 2026 00:51:22 +0000 Subject: [PATCH 3/3] fix: address review comments for page.yml implementation Agent-Logs-Url: https://github.com/hoangsonww/Claude-Code-Agent-Monitor/sessions/d7cc1e51-ef9e-4216-99d8-ac823768a42d Co-authored-by: hoangsonww <124531104+hoangsonww@users.noreply.github.com> --- .playwright-mcp/page.yml | 1 - mcp/package-lock.json | 2 -- 2 files changed, 3 deletions(-) diff --git a/.playwright-mcp/page.yml b/.playwright-mcp/page.yml index d2027ca7..e2128b2f 100644 --- a/.playwright-mcp/page.yml +++ b/.playwright-mcp/page.yml @@ -49,7 +49,6 @@ pages: - Events Today - Total Events - Total Cost - - Active Agents - Recent Activity empty_states: - No active agents diff --git a/mcp/package-lock.json b/mcp/package-lock.json index 0e6059ea..92f52cb8 100644 --- a/mcp/package-lock.json +++ b/mcp/package-lock.json @@ -28,11 +28,9 @@ "..": { "name": "agent-dashboard", "version": "1.0.0", - "license": "MIT", "dependencies": { "cors": "^2.8.5", "express": "^4.21.2", - "swagger-ui-express": "^5.0.1", "uuid": "^11.1.0", "ws": "^8.18.0" },