Skip to content

Add defaultmic extension#26558

Open
Alukkart wants to merge 4 commits intoraycast:mainfrom
Alukkart:ext/defaultmic
Open

Add defaultmic extension#26558
Alukkart wants to merge 4 commits intoraycast:mainfrom
Alukkart:ext/defaultmic

Conversation

@Alukkart
Copy link

@Alukkart Alukkart commented Mar 22, 2026

Description

Screencast

Checklist

@raycastbot raycastbot added new extension Label for PRs with new extensions platform: macOS labels Mar 22, 2026
@raycastbot
Copy link
Collaborator

Congratulations on your new Raycast extension! 🚀

We're currently experiencing a high volume of incoming requests. As a result, the initial review may take up to 10-15 business days.

Once the PR is approved and merged, the extension will be available on our Store.

@Alukkart Alukkart marked this pull request as ready for review March 22, 2026 17:42
@greptile-apps
Copy link
Contributor

greptile-apps bot commented Mar 22, 2026

Greptile Summary

This PR adds the Default Mic extension, providing two Raycast commands — Select Default Mic and Toggle Mic Lock — to manage the macOS system input device, with optional persistence via a launchd LaunchAgent backed by switchaudio-osx.

All issues raised in previous review rounds have been addressed:

  • isExecutable now correctly uses constants.X_OK instead of only F_OK
  • Both load() paths pass an onInstallStart toast callback to ensureSwitchAudioSourceInstalled, as does the toggle() enable path
  • launchctl load/unload replaced with modern bootstrap/bootout
  • disableMicLock now deletes the plist file, preventing silent re-enable after reboot
  • List.EmptyView with Install/Refresh actions is present for the zero-device state
  • Unused @raycast/utils dependency removed; Communication category removed
  • eslint.config.js matches the repository's standard CommonJS require pattern

Confidence Score: 5/5

  • All previous review concerns have been resolved; no new critical issues found — safe to merge.
  • Every issue flagged across prior review rounds has been addressed: X_OK permission check, toast feedback during silent installs, modern launchctl API, plist cleanup on disable, empty-state UI, unused dependency removal, and category correction. The code follows established Raycast patterns and no new logic, security, or API concerns were identified during this pass.
  • No files require special attention.

Important Files Changed

Filename Overview
extensions/defaultmic/src/lib/audio.ts Binary resolution and auto-install logic; previous issues (X_OK check, onInstallStart callback, installPromise guard) are all correctly implemented.
extensions/defaultmic/src/lib/lock.ts LaunchAgent management uses modern bootstrap/bootout; disableMicLock now deletes the plist file to prevent re-enable on reboot.
extensions/defaultmic/src/select-default-mic.tsx Device list command with toast feedback during auto-install, List.EmptyView for zero-device state, and proper preferred/lock state handling.
extensions/defaultmic/src/toggle-mic-lock.tsx Toggle command correctly passes onInstallStart to ensureSwitchAudioSourceInstalled in both load() and toggle() paths for full toast coverage.
extensions/defaultmic/package.json Correct categories (Media, System), no unused @raycast/utils dependency, macOS-only platform declared.

Reviews (3): Last reviewed commit: "Update defaultmic extension" | Re-trigger Greptile

@Alukkart Alukkart marked this pull request as draft March 22, 2026 18:13
@Alukkart Alukkart marked this pull request as ready for review March 22, 2026 18:13
Alukkart and others added 2 commits March 22, 2026 21:19
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
- Merge branch \'contributions/merge-1774204900067\'
- Pull contributions
- fix for publish
@Alukkart Alukkart marked this pull request as draft March 22, 2026 18:44
@Alukkart Alukkart marked this pull request as ready for review March 22, 2026 18:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new extension Label for PRs with new extensions platform: macOS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants