Files
claudetools/session-logs/2026-06-05-rmm-dashboard-redesign-cdp.md
Mike Swanson 47b71b7b3a rmm dashboard redesign (Gemini live review) + CDP Chrome driver
- .claude/scripts/cdp.py: drive Chrome via DevTools Protocol; screenshots to disk
  (so Gemini/Grok can see the live site). Fixes invisible-window + no-disk-screenshot.
- reference_cdp_chrome_driver.md (+ MEMORY index)
- gururmm submodule pointer -> dashboard redesign docs (local 3cef6ba)
- session log

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 13:10:37 -07:00

3.1 KiB

User

  • User: Mike Swanson (mike)
  • Machine: GURU-5070
  • Role: admin

GuruRMM dashboard redesign (Gemini live review) + CDP Chrome driver

Session Summary

Ran an interactive, Gemini-driven redesign review of the LIVE GuruRMM dashboard (Claude as eyes/hands over 5 rounds), producing a final proposal + a round-by-round session log in the gururmm submodule docs/. Then solved the underlying "can't drive/see Chrome" problem by building a CDP (Chrome DevTools Protocol) driver, so screenshots now hit disk and can be fed to Gemini/Grok image tools.

Key Decisions

  • Gemini drove the redesign (design brain w/ full docs incl. 2302-line roadmap + source); Claude transcribed live views + ran non-destructive interaction tests. No app code changed; no live-site changes. Proposal: context-spine IA, unified omnibox, triage inbox, AgentDetail vertical sub-nav, reuse existing primitives (tri-state inheritance, vertical sub-nav, RBAC banners, dark terminal).
  • CDP over the MCP extension: launch visible Chrome with --remote-debugging-port on a DEDICATED profile; drive via .claude/scripts/cdp.py (websocket-client + urllib). Fixes invisible-window + screenshots-not-on-disk. Use localhost (not 127.0.0.1) for the debug endpoint.
  • Password rule unchanged: Claude does NOT type passwords into fields even with CDP / even when asked.

Problems Encountered

  • MCP browser windows opened on a Chrome instance Mike couldn't see; save_to_disk screenshots never landed on a findable path -> blocked feeding images to Gemini. Solved with CDP (captureScreenshot returns bytes -> real PNG file -> Gemini image-analyze verified reading it).
  • CDP /json 404 on 127.0.0.1 (DNS-rebinding guard) -> switched to localhost.

Live UX bugs found during testing (candidates for UI_GAPS.md)

  1. "Search everything" bar dead on Dashboard (per-route local filter bound to nothing). 2. Ctrl+K palette collides with Chrome's native shortcut + no on-screen trigger. 3. Alerts: no grouping/dedup, no bulk actions, no remediation link from an alert. 4. AgentDetail Overview leads with Maintenance Mode, burying live metrics. 5. App defaults to light despite "dark is native" (theme is per-profile localStorage).

Configuration Changes

  • NEW .claude/scripts/cdp.py (CDP driver). NEW .claude/memory/reference_cdp_chrome_driver.md (+ index).
  • gururmm submodule (local commit 3cef6ba): docs/dashboard-redesign-{brief,proposal-gemini,session}.md
  • pip: websocket-client 1.9.0 installed (py 3.14).

Pending / Next

  • Decide: push gururmm submodule docs to the gururmm repo (may hit build webhook) — held local for now.
  • Optional: re-run the redesign loop feeding Gemini REAL CDP screenshots (now possible); file bugs 1-5 into UI_GAPS.md; triangulate with Grok; start Phase 1.
  • Decide whether to grant Gemini/Grok direct cdp.py driving (security caveat: drives authed sessions).

Reference

  • CDP driver: .claude/scripts/cdp.py (launch/status/nav/shot/click/type/key/eval). Port 9222, profile ~/.claude/cdp-chrome-profile. Screenshots: .claude/tmp/cdp/.
  • Redesign docs: projects/msp-tools/guru-rmm/docs/dashboard-redesign-*.md