diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index b72f69c..5b1618c 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -59,7 +59,7 @@ jobs:
         run: |
           if [[ "${GITHUB_EVENT_NAME}" == "workflow_dispatch" ]]
           then
-            brew ruby -- "$(brew --repository homebrew/cask)/cmd/lib/generate-matrix.rb" ${{ github.event.inputs.skip_install  && '--skip-install' }} ${{ github.event.inputs.new_cask  && '--new' }} --casks=${{ github.event.inputs.casks }}
+            brew ruby -- "$(brew --repository homebrew/cask)/cmd/lib/generate-matrix.rb" ${{ github.event.inputs.skip_install && '--skip-install' }} ${{ github.event.inputs.new_cask && '--new' }} --casks="$INPUT_CASKS"
           elif [[ "${GITHUB_EVENT_NAME}" == "push" ]]
           then
             brew ruby -- "$(brew --repository homebrew/cask)/cmd/lib/generate-matrix.rb" --syntax-only
@@ -97,18 +97,12 @@ jobs:
           persist-credentials: false
 
       - name: Clean up CI machine
+        if: runner.os == 'macOS'
         run: |
           if [ "${{ matrix.runner }}" == 'macos-12' ] && ! brew uninstall --cask julia && ! rm -r /Applications/Julia-*.app; then
             echo '::warning::Removing Julia is no longer necessary.'
           fi
 
-          if ! rm /usr/local/share/man/man1/al.1 || \
-             ! sudo rm /etc/paths.d/mono-commands || \
-             ! sudo rm -r /Library/Frameworks/Mono.framework || \
-             ! sudo pkgutil --forget com.xamarin.mono-MDK.pkg; then
-            echo '::warning::Uninstalling Mono is no longer necessary.'
-          fi
-
           if ! rm /usr/local/bin/dotnet; then
             echo "::warning::Removing \`dotnet\` symlink is no longer necessary."
           fi
@@ -122,7 +116,16 @@ jobs:
           fi
 
           brew unlink python && brew link --overwrite python
-        if: runner.os == 'macOS'
+
+      - name: Clean up Mono from CI machine
+        if: matrix.runner != 'macos-14' && matrix.arch != 'arm'
+        run: |
+          if ! rm /usr/local/share/man/man1/al.1 || \
+             ! sudo rm /etc/paths.d/mono-commands || \
+             ! sudo rm -r /Library/Frameworks/Mono.framework || \
+             ! sudo pkgutil --forget com.xamarin.mono-MDK.pkg; then
+            echo '::warning::Uninstalling Mono is no longer necessary.'
+          fi
 
       - name: Cache Homebrew Gems
         id: cache
@@ -176,9 +179,14 @@ jobs:
             cask = Cask::CaskLoader.load('${{ matrix.cask.path }}')
 
             was_installed = cask.installed?
-            manual_installer = cask.artifacts.any? { |artifact|
-              artifact.is_a?(Cask::Artifact::Installer::ManualInstaller)
-            }
+            manual_installer = cask.artifacts.any? do |artifact|
+              if defined?(artifact.manual_install)
+                artifact.manual_install
+              else
+                # TODO: Remove this branch when ManualInstaller is removed from brew
+                artifact.is_a?(Cask::Artifact::Installer::ManualInstaller)
+              end
+            end
 
             macos_requirement_satisfied = if macos_requirement = cask.depends_on.macos
               macos_requirement.satisfied?