镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

Fix Rocket Typist and HoudahSpot macOS FMA bundle IDs - #56904

Merged
allenhouchins merged 2 commits into
mainfrom
allenhouchins/festive-mcclintock-268875
Oct 29, 2026
Merged

allenhouchins merged 2 commits into
mainfrom
allenhouchins/festive-mcclintock-268875

Conversation

@allenhouchins

@allenhouchins allenhouchins commented Oct 29, 2026 •

Copy link
Copy Markdown
Member

Related issue: Follow-up to #56900 and #56433. CodeRabbit flagged the corrected zap paths on those bot PRs as regressions. Both threads were declined because the input identifier is the real bug, and this PR fixes it.

The unique_identifier in both inputs came from Homebrew zap stanzas that guessed the bundle ID from the major version (Rocket-Typist-#{version.major}, HoudahSpot6). The real IDs are different, so the exists, patched, and open queries, plus the quit/relaunch helpers in the install and uninstall scripts, never matched a real install.

App Was Now
Rocket Typist com.witt-software.Rocket-Typist-3 com.witt-software.Rocket-Typist-2
HoudahSpot com.houdah.HoudahSpot6 com.houdah.HoudahSpot4

Evidence

  • Rocket Typist 3.4.2: the cask's DMG (Rocket Typist.dmg, sha256 07544827b7b1b63f49a1661f48a73abaa92e2173cbbd2e1d74167f7f626c5b73) has CFBundleIdentifier com.witt-software.Rocket-Typist-2, and codesign -dv reports the same identifier (team GH2Y99U35Z). This matches the AutoPkg recipe (autopkg/homebysix-recipes RocketTypist/RocketTypist.download.recipe pins identifier "com.witt-software.Rocket-Typist-2"), IntuneBrew's entry for 3.4.2, and various: update zap stanza paths from CI Homebrew/homebrew-cask#298106, which replaced the zap paths with the -2 paths its CI saw on disk.
  • HoudahSpot 6.8.5: the 6.8.5 DMG's Info.plists show com.houdah.HoudahSpot4, and the extensions are com.houdah.HoudahSpot4.FinderExtension / .HoudahSpotQuickAction. Homebrew fixed its zap stanza in Homebrew/homebrew-cask@d27087407c.

The darwin validator passed with the wrong IDs only because appExists in cmd/maintained-apps/validate/darwin.go also matches by app name (... OR LOWER(<name>) LIKE LOWER('%<appName>%')), so a passing validator doesn't prove the identifier is right.

Changes

  • Inputs: unique_identifier fixed in rocket-typist.json and houdahspot.json.
  • Outputs, regenerated with go run ./cmd/maintained-apps -slug <slug>/darwin. Version, URL, and sha256 are unchanged for both apps. The only differences are the identifier in the three queries and in the install script's quit_and_track_application / relaunch_application and the uninstall script's quit_application calls, plus the recomputed script refs.
  • apps.json: unique_identifier updated for both entries by hand. The generator only adds new slugs to apps.json and doesn't refresh existing ones, and server/mdm/maintainedapps/sync.go reads this field into fleet_maintained_apps. Same approach as Update Mellel macOS FMA to 6.8.0 (com.redlex.mellel.mac bundle ID) #55866.

Not included: legacy-ID handling. No migration code was added for the old IDs. They never matched a real install, so no host's inventory reported them. I haven't checked whether any customer has added either FMA. If someone has, a reviewer should decide whether anything beyond the regenerated queries is needed. I'm flagging it here rather than building migration code for it.

Checklist for submitter

Testing

  • QA'd all new/changed functionality manually

  • Mounted the Rocket Typist 3.4.2 DMG and read Info.plist + codesign -dv (results above).

  • go test ./ee/maintained-apps/... ./cmd/maintained-apps/... passes.

  • Compared old vs new outputs after parsing them: every query equals the old one with only the ID swapped, and the script diffs are only the lines listed above.

AI

AI: Claude Code (claude-opus-5-5)

Both inputs took their unique_identifier from Homebrew zap stanzas that
guessed the bundle ID from the major version. The real IDs are
com.witt-software.Rocket-Typist-2 and com.houdah.HoudahSpot4, so the
exists, patched, and open queries and the quit helpers never matched a
real install.
fleet-release
fleet-release previously approved these changes Oct 29, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Script Diff Results

ee/maintained-apps/outputs/houdahspot/darwin.json

=== Install // 0d98debd -> 0b3e5072 ===

--- /tmp/old.lnXuHe	2026-10-29 14:10:51.268127082 +0000
+++ /tmp/new.ZroVij	2026-10-29 14:10:51.268127082 +0000
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.houdah.HoudahSpot6' || exit 1
+quit_and_track_application 'com.houdah.HoudahSpot4' || exit 1
 if [ -d "$APPDIR/HoudahSpot.app" ]; then
 	sudo mv "$APPDIR/HoudahSpot.app" "$TMPDIR/HoudahSpot.app.bkp" || exit $?
 fi
@@ -113,4 +113,4 @@
 	fi
 	exit 1
 fi
-relaunch_application 'com.houdah.HoudahSpot6'
+relaunch_application 'com.houdah.HoudahSpot4'

=== Uninstall // 4465095f -> 85d073d9 ===

--- /tmp/old.9Ztpf6	2026-10-29 14:10:51.286127216 +0000
+++ /tmp/new.jkIST4	2026-10-29 14:10:51.286127216 +0000
@@ -110,7 +110,7 @@
   fi
 }
 
-quit_application 'com.houdah.HoudahSpot6' || exit 1
+quit_application 'com.houdah.HoudahSpot4' || exit 1
 sudo rm -rf "$APPDIR/HoudahSpot.app"
 trash "$LOGGED_IN_USER" '~/Library/Application Scripts/com.houdah.HoudahSpot4.FinderExtension'
 trash "$LOGGED_IN_USER" '~/Library/Application Scripts/com.houdah.HoudahSpot4.HoudahSpotQuickAction'

ee/maintained-apps/outputs/rocket-typist/darwin.json

=== Install // 3c06b467 -> e4014e16 ===

--- /tmp/old.bXgdnc	2026-10-29 14:10:51.333127565 +0000
+++ /tmp/new.klpL86	2026-10-29 14:10:51.333127565 +0000
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.witt-software.Rocket-Typist-3' || exit 1
+quit_and_track_application 'com.witt-software.Rocket-Typist-2' || exit 1
 if [ -d "$APPDIR/Rocket Typist.app" ]; then
 	sudo mv "$APPDIR/Rocket Typist.app" "$TMPDIR/Rocket Typist.app.bkp" || exit $?
 fi
@@ -113,4 +113,4 @@
 	fi
 	exit 1
 fi
-relaunch_application 'com.witt-software.Rocket-Typist-3'
+relaunch_application 'com.witt-software.Rocket-Typist-2'

=== Uninstall // e6a00242 -> 4610d3d1 ===

--- /tmp/old.bDzKAq	2026-10-29 14:10:51.350127691 +0000
+++ /tmp/new.lLua5A	2026-10-29 14:10:51.350127691 +0000
@@ -110,13 +110,15 @@
   fi
 }
 
-quit_application 'com.witt-software.Rocket-Typist-3' || exit 1
+quit_application 'com.witt-software.Rocket-Typist-2' || exit 1
 sudo rm -rf "$APPDIR/Rocket Typist.app"
+trash "$LOGGED_IN_USER" '~/Library/Application Scripts/com.witt-software.Rocket-Typist-2.Share-Text-With-Rocket-Typist'
 trash "$LOGGED_IN_USER" '~/Library/Application Support/com.witt-software.rocket-typist'
-trash "$LOGGED_IN_USER" '~/Library/Application Support/com.witt-software.Rocket-Typist-3'
+trash "$LOGGED_IN_USER" '~/Library/Application Support/com.witt-software.Rocket-Typist-2'
 trash "$LOGGED_IN_USER" '~/Library/Application Support/Rocket Typist'
 trash "$LOGGED_IN_USER" '~/Library/Caches/com.apple.helpd/Generated/com.witt-software.Rocket-Typist.help*'
-trash "$LOGGED_IN_USER" '~/Library/Caches/com.plausiblelabs.crashreporter.data/com.witt-software.Rocket-Typist-3'
-trash "$LOGGED_IN_USER" '~/Library/Caches/com.witt-software.Rocket-Typist-3'
-trash "$LOGGED_IN_USER" '~/Library/HTTPStorages/com.witt-software.Rocket-Typist-3'
-trash "$LOGGED_IN_USER" '~/Library/Preferences/com.witt-software.Rocket-Typist-3.plist'
+trash "$LOGGED_IN_USER" '~/Library/Caches/com.plausiblelabs.crashreporter.data/com.witt-software.Rocket-Typist-2'
+trash "$LOGGED_IN_USER" '~/Library/Caches/com.witt-software.Rocket-Typist-2'
+trash "$LOGGED_IN_USER" '~/Library/Containers/com.witt-software.Rocket-Typist-2.Share-Text-With-Rocket-Typist'
+trash "$LOGGED_IN_USER" '~/Library/HTTPStorages/com.witt-software.Rocket-Typist-2*'
+trash "$LOGGED_IN_USER" '~/Library/Preferences/com.witt-software.Rocket-Typist-2.plist'

…-mcclintock-268875

# Conflicts:
#	ee/maintained-apps/outputs/rocket-typist/darwin.json
@github-actions

Copy link
Copy Markdown
Contributor

Script Diff Results

ee/maintained-apps/outputs/houdahspot/darwin.json

=== Install // 0d98debd -> 0b3e5072 ===

--- /tmp/old.gHJCny	2026-10-29 14:31:57.426571310 +0000
+++ /tmp/new.BN3ArG	2026-10-29 14:31:57.426571310 +0000
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.houdah.HoudahSpot6' || exit 1
+quit_and_track_application 'com.houdah.HoudahSpot4' || exit 1
 if [ -d "$APPDIR/HoudahSpot.app" ]; then
 	sudo mv "$APPDIR/HoudahSpot.app" "$TMPDIR/HoudahSpot.app.bkp" || exit $?
 fi
@@ -113,4 +113,4 @@
 	fi
 	exit 1
 fi
-relaunch_application 'com.houdah.HoudahSpot6'
+relaunch_application 'com.houdah.HoudahSpot4'

=== Uninstall // 4465095f -> 85d073d9 ===

--- /tmp/old.yxfoVP	2026-10-29 14:31:57.445571516 +0000
+++ /tmp/new.WJLy8r	2026-10-29 14:31:57.445571516 +0000
@@ -110,7 +110,7 @@
   fi
 }
 
-quit_application 'com.houdah.HoudahSpot6' || exit 1
+quit_application 'com.houdah.HoudahSpot4' || exit 1
 sudo rm -rf "$APPDIR/HoudahSpot.app"
 trash "$LOGGED_IN_USER" '~/Library/Application Scripts/com.houdah.HoudahSpot4.FinderExtension'
 trash "$LOGGED_IN_USER" '~/Library/Application Scripts/com.houdah.HoudahSpot4.HoudahSpotQuickAction'

ee/maintained-apps/outputs/rocket-typist/darwin.json

=== Install // 3c06b467 -> e4014e16 ===

--- /tmp/old.befdWo	2026-10-29 14:31:57.494572045 +0000
+++ /tmp/new.oN5BIg	2026-10-29 14:31:57.495572056 +0000
@@ -100,7 +100,7 @@
 sudo cp -R "$MOUNT_POINT"/* "$TMPDIR"
 hdiutil detach "$MOUNT_POINT" || true
 # copy to the applications folder
-quit_and_track_application 'com.witt-software.Rocket-Typist-3' || exit 1
+quit_and_track_application 'com.witt-software.Rocket-Typist-2' || exit 1
 if [ -d "$APPDIR/Rocket Typist.app" ]; then
 	sudo mv "$APPDIR/Rocket Typist.app" "$TMPDIR/Rocket Typist.app.bkp" || exit $?
 fi
@@ -113,4 +113,4 @@
 	fi
 	exit 1
 fi
-relaunch_application 'com.witt-software.Rocket-Typist-3'
+relaunch_application 'com.witt-software.Rocket-Typist-2'

=== Uninstall // e6a00242 -> 4610d3d1 ===

--- /tmp/old.5YR0Vo	2026-10-29 14:31:57.515572272 +0000
+++ /tmp/new.CU60Yo	2026-10-29 14:31:57.516572283 +0000
@@ -110,13 +110,15 @@
   fi
 }
 
-quit_application 'com.witt-software.Rocket-Typist-3' || exit 1
+quit_application 'com.witt-software.Rocket-Typist-2' || exit 1
 sudo rm -rf "$APPDIR/Rocket Typist.app"
+trash "$LOGGED_IN_USER" '~/Library/Application Scripts/com.witt-software.Rocket-Typist-2.Share-Text-With-Rocket-Typist'
 trash "$LOGGED_IN_USER" '~/Library/Application Support/com.witt-software.rocket-typist'
-trash "$LOGGED_IN_USER" '~/Library/Application Support/com.witt-software.Rocket-Typist-3'
+trash "$LOGGED_IN_USER" '~/Library/Application Support/com.witt-software.Rocket-Typist-2'
 trash "$LOGGED_IN_USER" '~/Library/Application Support/Rocket Typist'
 trash "$LOGGED_IN_USER" '~/Library/Caches/com.apple.helpd/Generated/com.witt-software.Rocket-Typist.help*'
-trash "$LOGGED_IN_USER" '~/Library/Caches/com.plausiblelabs.crashreporter.data/com.witt-software.Rocket-Typist-3'
-trash "$LOGGED_IN_USER" '~/Library/Caches/com.witt-software.Rocket-Typist-3'
-trash "$LOGGED_IN_USER" '~/Library/HTTPStorages/com.witt-software.Rocket-Typist-3'
-trash "$LOGGED_IN_USER" '~/Library/Preferences/com.witt-software.Rocket-Typist-3.plist'
+trash "$LOGGED_IN_USER" '~/Library/Caches/com.plausiblelabs.crashreporter.data/com.witt-software.Rocket-Typist-2'
+trash "$LOGGED_IN_USER" '~/Library/Caches/com.witt-software.Rocket-Typist-2'
+trash "$LOGGED_IN_USER" '~/Library/Containers/com.witt-software.Rocket-Typist-2.Share-Text-With-Rocket-Typist'
+trash "$LOGGED_IN_USER" '~/Library/HTTPStorages/com.witt-software.Rocket-Typist-2*'
+trash "$LOGGED_IN_USER" '~/Library/Preferences/com.witt-software.Rocket-Typist-2.plist'

@allenhouchins
allenhouchins marked this pull request as ready for review October 29, 2026 14:58
Copilot AI balanced review requested due to automatic review settings October 29, 2026 14:58
@allenhouchins
allenhouchins merged commit 018b11a into main Oct 29, 2026
18 checks passed
@allenhouchins
allenhouchins deleted the allenhouchins/festive-mcclintock-268875 branch October 29, 2026 14:58

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Existing installers can retain stale bundle-ID title references that catalog sync and script refresh do not repair, disconnecting them from real inventory unless those references are reconciled or affected installers are confirmed absent.

1 open issue
What changed in this PR

Corrects the macOS bundle IDs for Rocket Typist and HoudahSpot in Fleet-maintained apps, aligning detection and application lifecycle scripts with the installed apps.

Changes:

  • Updates both input definitions and catalog entries with the correct identifiers.
  • Regenerates detection queries and quit/relaunch script references without changing versions, download URLs, or checksums.
  • Preserves the uninstall cleanup paths corrected in #56900 and #56433.
File Description
ee/​maintained-apps/​outputs/​rocket-typist/​darwin.json Updates Rocket Typist queries, script calls, and references.
ee/​maintained-apps/​outputs/​houdahspot/​darwin.json Updates HoudahSpot queries, script calls, and references.
ee/​maintained-apps/​outputs/​apps.json Corrects both catalog identifiers.
ee/​maintained-apps/​inputs/​homebrew/​rocket-typist.json Sets Rocket Typist’s identifier to the -2 bundle ID.
ee/​maintained-apps/​inputs/​homebrew/​houdahspot.json Sets HoudahSpot’s identifier to com.houdah.HoudahSpot4.

Review effort: Balanced

"slug": "houdahspot/darwin",
"platform": "darwin",
"unique_identifier": "com.houdah.HoudahSpot6",
"unique_identifier": "com.houdah.HoudahSpot4",

This branch was previously deployed

1 inactive deployment
Docker Hub — a7a64d82 Deployed Oct 29, 2026 by allenhouchins via publish #111575
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants