From 1c5c7f5ee803c6cef6a878a0ff7705d03c828814 Mon Sep 17 00:00:00 2001 From: Howard Enos Date: Wed, 27 May 2026 16:45:07 -0700 Subject: [PATCH] sync: auto-sync from HOWARD-HOME at 2026-05-27 16:45:01 Author: Howard Enos Machine: HOWARD-HOME Timestamp: 2026-05-27 16:45:01 --- session-logs/2026-05-27-howard-session.md | 85 +++++++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/session-logs/2026-05-27-howard-session.md b/session-logs/2026-05-27-howard-session.md index 63b2528..68d0003 100644 --- a/session-logs/2026-05-27-howard-session.md +++ b/session-logs/2026-05-27-howard-session.md @@ -415,3 +415,88 @@ Invoice 67661 (id 1650436338): 4 line items, prepay deducted 3.5hrs - Emergency product: `26184` (Labor - Emergency or After Hours Business, $262.50) - Onsite product: `26118` (Labor - Onsite Business, $175.00) - Remote product: `1190473` (Labor - Remote Business, $150.00) + +--- + +## Update: 16:44 PT — GuruRMM Feature Requests (SPEC-010) + +## User +- **User:** Howard Enos (howard) +- **Machine:** Howard-Home +- **Role:** tech + +### Session Summary + +Howard submitted six GuruRMM feedback items via the `/feature-request` skill. The session classified each item, conducted full codebase research across `agent/src/`, `server/src/`, and `dashboard/src/`, and produced a comprehensive batch specification covering all six items. + +Two items were classified as bugs and filed under the Known Bugs section of `FEATURE_ROADMAP.md`. BUG-013 identifies that `logged_in_username()` in `agent/src/metrics/mod.rs:538` uses `sysinfo::Users::new_with_refreshed_list().iter().next()`, which returns the first enumerated OS account rather than the active console session user. On Windows this consistently returns the built-in Administrator account. The fix requires using the Windows WTS API (`WTSGetActiveConsoleSessionId` + `WTSQuerySessionInformation`) to resolve the actual interactive user. BUG-014 identifies that the Site Detail page's agent table has no search/filter input, unlike every other list page in the app — a 30-minute dashboard-only fix. + +Four items were classified as P2/P3 features. SPEC-010-C (process kill from Top Processes modal) requires a new `kill_process` command type in the agent WebSocket protocol, a new `POST /api/agents/:id/processes/:pid/kill` endpoint, and hover-reveal End/Kill buttons in the `ProcessListDialog` component. SPEC-010-D (logged-in user + domain on agent cards) requires extending `AgentWithDetails` in `server/src/db/agents.rs` with LEFT JOINs to `agent_status` and `user_inventory`, and a minor UI change in `SiteDetail.tsx`. SPEC-010-E (alert severity badges on agent cards) requires a new `GET /api/sites/:id/agents/alert-counts` endpoint and a `useQuery` + dot-badge render in `SiteDetail.tsx`. SPEC-010-F (inline notes edit) is a dashboard-only state change reusing the existing `PUT /api/sites/:id` partial update. + +The spec was committed to the GuruRMM submodule repo, the ClaudeTools submodule pointer was advanced, both were pushed to Gitea, and a coord message was sent to Mike with the full summary and recommended sprint order. + +### Key Decisions + +- Treated all six items as a single batch spec (SPEC-010) rather than six individual specs, because they share overlapping subsystems (SiteDetail, agent card rendering, metrics collection) and can be sprint-planned together. +- Item D (user+domain display) explicitly depends on Item A (BUG-013 fix) being live first; otherwise the display would still show "administrator" — noted in both the spec and roadmap. +- Chose Option A (separate `GET /api/sites/:id/agents/alert-counts` endpoint) over embedding alert counts in `AgentWithDetails`, to avoid bloating the universal agent list endpoint used on the global Agents page. +- Process kill (Item C) flagged for a security review gate before merge: auth required, system PID rejection, rate limiting, audit logging. +- No feature flag needed for Items A, B, D, F (fixes/minor UX). Feature flag `feature.process_kill.enabled` recommended for Item C only. + +### Problems Encountered + +- Ollama `qwen3.6:latest` model (the configured classification model) was not installed on Howard-Home. Available models: `qwen3-coder:30b`, `codestral:22b`, `qwen3:14b`, `nomic-embed-text`. Performed classification directly without Ollama; all research and spec generation done in-session. +- `sysinfo::Users` parity matrix in `CODING_GUIDELINES.md` incorrectly marks Windows logged-in user detection as `[OK]`. The spec notes this should be updated to `[FIXED]` once BUG-013 is patched. + +### Configuration Changes + +- **Created:** `projects/msp-tools/guru-rmm/docs/specs/SPEC-010-agent-ux-improvements.md` +- **Modified:** `projects/msp-tools/guru-rmm/docs/FEATURE_ROADMAP.md` — added BUG-013, BUG-014, and 4 feature entries under Dashboard Features > Views and Core Agent Features > Monitoring & Metrics + +### Credentials & Secrets + +None. + +### Infrastructure & Servers + +- GuruRMM server: `172.16.3.30:3001` (Rust/Axum) +- Dashboard: `https://rmm.azcomputerguru.com` +- Coord API: `http://172.16.3.30:8001/api/coord` + +### Commands & Outputs + +``` +# Spec committed and pushed to guru-rmm +git commit -m "spec: add SPEC-010 agent UX improvements & bug fixes (batch)" +# Push: a58a871..495575d main -> main + +# ClaudeTools submodule pointer advanced +git commit -m "chore: update guru-rmm submodule (SPEC-010 agent UX improvements)" +# Push: 04684e8..9e06c0b main -> main + +# Coord message sent +POST http://172.16.3.30:8001/api/coord/messages +id: 3fe667e1-4392-42a7-84d4-3d2c2712f474 +``` + +### Pending / Incomplete Tasks + +- **BUG-013 (P1):** Implement WTS-based `logged_in_username()` fix in `agent/src/metrics/mod.rs`. Windows-only code path. +- **BUG-014 (P1):** Add `agentSearch` state + filter to `SiteDetail.tsx` agent table. 30-min fix. +- **SPEC-010-D (P2):** Extend `AgentWithDetails` with `logged_in_user` + `domain_name` JOINs; update SiteDetail hostname cell. Ship with or after BUG-013. +- **SPEC-010-E (P2):** New `GET /api/sites/:id/agents/alert-counts` endpoint + SiteDetail alert badge rendering. +- **SPEC-010-C (P2):** Process kill command — requires security review before merge. +- **SPEC-010-F (P3):** Inline notes edit on SiteDetail — dashboard-only. +- **Parity matrix update:** After BUG-013 ships, change `User detection (logged-in user): [OK] Windows` to `[FIXED]` in `CODING_GUIDELINES.md`. + +### Reference Information + +- Spec file: `projects/msp-tools/guru-rmm/docs/specs/SPEC-010-agent-ux-improvements.md` +- Roadmap: `projects/msp-tools/guru-rmm/docs/FEATURE_ROADMAP.md` +- Guru-RMM commit: `495575d` +- ClaudeTools commit: `9e06c0b` +- Coord message ID: `3fe667e1-4392-42a7-84d4-3d2c2712f474` +- Bug root cause: `agent/src/metrics/mod.rs:538` — `sysinfo::Users::iter().next()` vs WTS API +- AgentWithDetails struct: `server/src/db/agents.rs:284` +- ProcessListDialog component: `dashboard/src/pages/AgentDetail.tsx:205` +- SiteDetail agent table: `dashboard/src/pages/SiteDetail.tsx:1308`