From 30e3dbf219dc38cc98e9ea52396ac144a2d85c34 Mon Sep 17 00:00:00 2001 From: Howard Enos Date: Wed, 27 May 2026 17:28:26 -0700 Subject: [PATCH] sync: auto-sync from HOWARD-HOME at 2026-05-27 17:28:19 Author: Howard Enos Machine: HOWARD-HOME Timestamp: 2026-05-27 17:28:19 --- session-logs/2026-05-27-howard-session.md | 78 +++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/session-logs/2026-05-27-howard-session.md b/session-logs/2026-05-27-howard-session.md index 68d00037..56a0369d 100644 --- a/session-logs/2026-05-27-howard-session.md +++ b/session-logs/2026-05-27-howard-session.md @@ -500,3 +500,81 @@ id: 3fe667e1-4392-42a7-84d4-3d2c2712f474 - 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` + +--- + +## Update: 17:27 PT — GuruRMM BUG-015 Programs and Features (SPEC-011) + +## User +- **User:** Howard Enos (howard) +- **Machine:** Howard-Home +- **Role:** tech + +### Session Summary + +Howard reported that the GuruRMM agent does not appear in Windows "Programs and Features" or the Windows 11 "Apps & features" Settings page after installation. The session conducted a full root cause analysis of the WiX v4 installer source (`installer/gururmm-agent.wxs`) and produced SPEC-011 covering the fix. + +The root cause was identified as a missing set of ARP (Add/Remove Programs) display properties in the WiX source. The WiX file has `` which writes the basic `DisplayName`, `Publisher`, and `DisplayVersion` registry values, but Windows 11's modern Apps & features UI specifically filters entries that lack a `DisplayIcon` registry value — set from the `ARPPRODUCTICON` property. None of the six standard ARP properties (`ARPPRODUCTICON`, `ARPURLINFOABOUT`, `ARPHELPLINK`, `ARPCONTACT`, `ARPNOREPAIR`, `ARPNOMODIFY`) are present. Additionally, the `AgentBinary` WiX component has no explicit `Guid=` attribute, relying on WiX v4 auto-generation. + +The server-side MSI build path was also examined: `build_site_msi_on_pluto()` in `server/src/api/install.rs:1341` SSHes to the Pluto Windows build machine and runs a full WiX rebuild per site with the `SITEKEY` baked in at compile time — not a post-build binary patch. The MSI is structurally correct and the MajorUpgrade/UpgradeCode logic is sound. The issue is purely the missing ARP metadata. + +SPEC-011 was written, committed to the guru-rmm repo, the ClaudeTools submodule pointer was advanced, both were pushed to Gitea, and a coord message was sent to Mike. The fix requires: adding 6 `` declarations to `gururmm-agent.wxs`, creating a product icon `gururmm-agent.ico`, bundling the icon alongside the agent binary, and pinning an explicit GUID on the `AgentBinary` component. No server or agent binary changes required. + +### Key Decisions + +- Classified as P2 (not P1) — the agent installs and functions correctly; the Programs and Features absence is a discoverability and manual-uninstall UX issue, not a service failure. However, it is important for client sites where techs need to verify installations. +- Chose installer-only fix scope — no server or agent binary changes needed, making the fix fast and low-risk. +- Documented an open question for Mike about whether `ARPNOREMOVE="1"` should be added simultaneously (which would prevent end users from uninstalling via the UI), or deferred to SPEC-001 uninstall hardening. Left the decision to Mike. +- Did not add `ARPSYSTEMCOMPONENT="1"` — confirmed it is not present and should not be added (that property hides the entry). + +### Problems Encountered + +- First coord message POST failed with `{"detail":"There was an error parsing the body"}` due to apostrophes in the JSON body string. Resolved by removing apostrophes from the message body and re-sending. +- ClaudeTools submodule push was initially rejected (remote had newer commits from Mike). Resolved with `git pull --rebase origin main && git push`. + +### Configuration Changes + +- **Created:** `projects/msp-tools/guru-rmm/docs/specs/SPEC-011-arp-programs-features-registration.md` +- **Modified:** `projects/msp-tools/guru-rmm/docs/FEATURE_ROADMAP.md` — added BUG-015 entry in Known Bugs section and installation methods entry + +### Credentials & Secrets + +None. + +### Infrastructure & Servers + +- GuruRMM build server (Pluto): `Administrator@172.16.3.36` +- WiX installer source: `installer/gururmm-agent.wxs` +- MSI build function: `server/src/api/install.rs:1341` (`build_site_msi_on_pluto`) + +### Commands & Outputs + +``` +# guru-rmm commit +git commit -m "spec: add SPEC-011 ARP Programs and Features registration fix (BUG-015)" +# Push: 495575d..fae47f2 main -> main + +# ClaudeTools push (after rebase for remote conflict) +git pull --rebase origin main && git push origin main +# Push: f3c7fcd..47d6519 main -> main + +# Coord message ID: 7bdc6d3c-945f-4b65-b3d5-2710b41257fa +``` + +### Pending / Incomplete Tasks + +- **BUG-015 implementation:** Apply the WiX changes from SPEC-011 to `gururmm-agent.wxs`. Create `gururmm-agent.ico` (brand or placeholder). Rebuild + test MSI on Windows 10 and Windows 11. +- **Open question (Mike decision):** Add `ARPNOREMOVE="1"` to block end-user uninstall via UI here, or defer to SPEC-001 uninstall hardening? +- All prior SPEC-010 items remain pending (see earlier session update). + +### Reference Information + +- Spec file: `projects/msp-tools/guru-rmm/docs/specs/SPEC-011-arp-programs-features-registration.md` +- Roadmap: `projects/msp-tools/guru-rmm/docs/FEATURE_ROADMAP.md` +- Guru-RMM commit: `fae47f2` +- ClaudeTools commit: `47d6519` +- Coord message ID: `7bdc6d3c-945f-4b65-b3d5-2710b41257fa` +- WiX source: `installer/gururmm-agent.wxs` +- Server MSI build: `server/src/api/install.rs:1341` +- ARP registry path (64-bit): `HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{ProductCode}` +- Cleanup tool ARP search: `installer/cleanup/src/main.rs:65`