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
This commit is contained in:
2026-05-27 16:45:07 -07:00
parent 70aa4c484b
commit 1c5c7f5ee8

View File

@@ -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`