7.3 KiB
User
- User: Mike Swanson (mike)
- Machine: GURU-5070
- Role: admin
Session Summary
Ran a /human-flow (mouse + keyboard ergonomics) scan on the GuruRMM dashboard and shipped two waves of fixes to the beta channel. The scan (delegated to a Sonnet subagent using the human-flow skill's scanner + heuristics) scored the dashboard 6.5/10 and flagged three compounding issues: tiny universal action targets (size="sm", 32px, used everywhere), a 12-tab AgentDetail strip with no keyboard arrow navigation, and modal/drawer surfaces missing Escape. It produced a prioritized report (P0/P1/P2) separating mouse, keyboard, and combined friction, with file:line citations.
Implemented the top 5 fixes first (Coding Agent), all localized: a labeled Terminal button + wider action column in the Agents table; a two-step inline Delete confirm for WatchdogAlerts across all 3 surfaces (was irreversible one-click); ARIA roving tabindex + Arrow/Home/End navigation on the Tabs component; auto-focus of the CommandTerminal input on mount; and Escape-to-close + a larger close button on the UserManagerTab slide-over. Code Review Agent approved (no CRITICAL/HIGH; 3 LOW optional notes). Gitea Agent committed (gururmm 9671c4b, ClaudeTools 8fb45e4), the push fired the webhook, and the dashboard auto-built to beta as v0.2.37.
Then executed the systemic P1 — the size="sm" sweep (human-flow Issue 5) — as a judgment pass, not a blind find/replace. The Coding Agent examined 99 instances and promoted 31 list-header/primary action buttons to size="default" (36px), converted 4 icon-only buttons to size="icon" (h-9 w-9, removing a cramped h-7 w-7 p-0 override), and intentionally left dense table-row groups, two-step Confirm/Cancel pairs, inline form controls, and compact/error-state buttons at sm. Code Review confirmed zero mismatched-height siblings — the promotions actually fixed pre-existing mismatches with adjacent h-9 selects — and proved scope discipline mechanically (only the size prop changed). Committed (gururmm d2d10e3, ClaudeTools 13f992c), auto-built to beta as v0.2.38.
Both passes are now on beta (rmm-beta.azcomputerguru.com); production is untouched and a single promote-dashboard.sh --confirm ships both. This was the first real exercise of the beta-first dashboard channel built the prior day, and it held end-to-end: scan -> Coding Agent -> Code Review -> Gitea push -> webhook auto-build to beta -> verified live, twice. The Gitea Agent cleanly rebased over the pipeline's [ci-version-bump] commit on the second push.
Key Decisions
- Treated the
size="sm"sweep as a per-instance judgment call rather than a blanket replace: promote header/primary actions, convert icon-only-with-overrides tosize="icon", and leave dense/inline/secondary contexts — to avoid breaking layouts. - Delegated the human-flow scan and both implementation passes to subagents (Sonnet scan; Coding Agent implement; Code Review Agent review; Gitea Agent commit) to preserve the long session's main context.
- Used the safer "label + spacing" version of the Agents table fix rather than a dropdown-menu refactor, to minimize regression risk on a first beta pass.
- Shipped to beta only; deferred promotion to Mike. The cosmetic P2 items (gauge-card click affordance, focus-ring/aria-label touch-ups) were left for a future pass.
Problems Encountered
- Local
npx tsc -breported twodate-fnsmodule-not-found errors (BackupDetailTab.tsx, BackupStatusCard.tsx). Root cause:date-fns@^4.2.1is in package.json but not installed in the local working tree. Not introduced by the changes and not in any modified file; the server build'snpm installresolves it, so the beta build succeeded. Left local node_modules untouched (out of scope). - Second push (size sweep) hit a non-fast-forward: the pipeline's server-side
[ci-version-bump](fa901e2) had advanced origin/main. Gitea Agent resolved with fetch + rebase (no force-push) and re-pushed.
Configuration Changes
GuruRMM dashboard (projects/msp-tools/guru-rmm/dashboard/src):
- Top-5 (commit
9671c4b, 7 files, +153/-36):pages/Agents.tsx,pages/AgentDetail.tsx,pages/Alerts.tsx,pages/WatchdogAlerts.tsx,components/Tabs.tsx,components/CommandTerminal.tsx,components/UserManagerTab.tsx. - Size sweep (commit
d2d10e3, 18 files): pages{AgentDetail, Agents, ClientDetail, Clients, Logs, MSPBackups, Organizations, SiteDetail, Sites, Updates, Users, WatchdogAlerts}.tsx; components{ChecksPanel, CredentialList, DiscoveryTab, InventoryTab, LogAnalysis, UserManagerTab}.tsx.
ClaudeTools submodule pointer bumps: 8fb45e4 (-> 9671c4b), 13f992c (-> d2d10e3).
No server/infra config changed this session; the dashboard build pipeline (build-dashboard.sh) auto-built both pushes to /var/www/gururmm/dashboard-beta/.
Credentials & Secrets
None discovered or created this session. (Prior-day note still stands: the MSP360 API password is leaked in plaintext across several committed logs and should be rotated — vault msp-tools/msp360-api.sops.yaml.)
Infrastructure & Servers
- Beta dashboard: https://rmm-beta.azcomputerguru.com (nginx vhost
gururmm-betaon 172.16.3.30, web root/var/www/gururmm/dashboard-beta/). Built v0.2.37 then v0.2.38 this session. - Prod dashboard: https://rmm.azcomputerguru.com — untouched (no promote run).
- Build pipeline: webhook (172.16.3.30:9000) -> build-shared.sh (auto version bump) -> build-dashboard.sh (npm install + vite build + rsync to dashboard-beta). Log
/var/log/gururmm-build-dashboard.log.
Commands & Outputs
- Beta build (top-5):
Dashboard beta build complete: v0.2.37 (fa901e28...) -- live at https://rmm-beta.azcomputerguru.com. - Beta build (size sweep):
Dashboard beta build complete: v0.2.38 (fc76b7fb...), built in 12.00s, deployed 13:20:03. - Live checks:
rmm-betaHTTP 200 with BETA banner;rmm(prod) HTTP 200, unchanged. - Promote (when ready):
sudo /opt/gururmm/promote-dashboard.sh --confirm(dry-run without--confirm;--rollbackto undo).
Pending / Incomplete Tasks
- Promote beta -> prod when Mike is satisfied with the human-flow changes (single promote ships both v0.2.37 + v0.2.38).
- Optional human-flow P2 polish (future beta pass): gauge-card click affordance (
AgentDetail.tsxGaugeCard), maintenance-toggle focus ring,Select.tsxaria-label, text-only toggle link hit-padding, sidebar-collapse keyboard shortcut, command-palette agent results. - 3 LOW code-review notes from the top-5 pass (non-blocking): shared
isMutatingdisabling Confirm on a newly-opened row;onClosere-subscribe churn; Confirm-disabled predicate inconsistency vs Agents.tsx. - Carried over from 2026-06-03 (unchanged): MSP360/B2 cleanup follow-ups (coord todos
2e50f388audit-first,dc3a6233post-purge verify,0fed5eb2decisions), Glaztech SBS portal removal (db03f8fe), rotate the leaked MSP360 API key.
Reference Information
- Beta: https://rmm-beta.azcomputerguru.com | Prod: https://rmm.azcomputerguru.com
- Commits: gururmm
9671c4b(top-5),d2d10e3(size sweep); ClaudeTools8fb45e4,13f992c; build SHAsfa901e28(v0.2.37),fc76b7fb(v0.2.38). - Human-flow skill:
.claude/skills/human-flow/(scannerscripts/scan.mjs, heuristicsreferences/mouse-keyboard-heuristics.md). - Prior-day session log:
session-logs/2026-06-03-session.md(beta channel + Grok post-mortem + MSP360/B2 cleanup).