Files
claudetools/.claude/memory/project_gururmm_software_removal_pr58.md
Howard Enos 67822d5ca8 sync: auto-sync from HOWARD-HOME at 2026-07-05 00:45:20
Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-07-05 00:45:20
2026-07-05 00:45:47 -07:00

2.0 KiB

name, description, metadata
name description metadata
project_gururmm_software_removal_pr58 SPEC-030 software-removal hardening (driver exclusion, lingering-process sweep, job list/reaper) is on PR
type
project

GuruRMM SPEC-030 software removal (Assets -> Inventory tab): the 2026-06-24 session's open requests were implemented 2026-07-05 and sit on branch feat/software-removal-hardening, PR #58 (azcomputerguru/gururmm#58), NOT merged — merge deploys to beta. Live testing planned 2026-07-06 on the test box DESKTOP-MS42HNC (agent 0de89b88-b21d-4647-ab64-96157ba87cc5).

What PR #58 contains:

  • Engine -List emits is_driver (heuristic: driver/chipset/firmware name words, or hw-vendor publisher + device words; junkware like "Driver Booster" deliberately excluded). Dashboard hides drivers by default, keeps them out of select-all, deselects on re-hide.
  • End-of-run lingering-uninstaller sweep in uninstall-engine.ps1: 45s budget-aware grace, then taskkill of started trees (StartTime PID-reuse guard, same-session only, null CreationDate excluded) + late re-verify that flips async-finisher false-failures to success. This is the chosen resolution of the Launchy/AIMP "failed / no usable result" open decision.
  • GET /agents/:id/software/uninstall/jobs (list, results omitted), stale-running-job reaper (900s no-progress -> failed), finish_job guarded WHERE status='running', UI 100-target cap.

Verified pre-merge: engine live tests on Howard-Home (driver flags, sweep kill/no-kill, orphaned/refused paths), heuristic unit cases, verify.sh server --check + dashboard PASS, high-effort workflow code review with all confirmed findings fixed.

Remaining after this: recipe catalog (P3, project_gururmm_av_removal_recipes if created), dashboard UI for the new job-list endpoint (client binding softwareApi.uninstallJobs exists, unused), and TeamViewer retry-verify still not re-validated live.