iKnowMyMac 1.5.2
Fix it from here. Every row in Package Watch › Runtimes now has an action, and Fix All does them in order, showing every command before it runs. Old versions go after you have seen which projects still use them, the eMudhra certificates come out of each Java JDK with Undo, and nvm and Laravel Herd run in Terminal, here, or from a copy.
New
- An action on every row. A copy that is behind has Fix…, and a line that no longer gets security fixes has Move to a supported line, such as Move to 26…. Each installer gets its own command:
brew upgrade nodeorbrew install node@24for Homebrew,nvm install 26.12.1(andnvm alias default 26.12.1when the old version was nvm's default),fnm install,volta install node@26.12.1,mise install, or the newer nodejs.org or go.dev installer. The line suggested is the one your projects pin if it still gets security fixes, else the newest one that does (for Node.js, the newest even-numbered line). - Fix All. On each incident card and for the whole Runtimes tab, one sheet lists every step in order with its exact commands and a checkbox. Fixes are ticked; removing an old version or changing a project's pin never is. Steps run one at a time, stop at the first one that fails with its output shown, and then Package Watch checks everything again: each row it fixed says Fixed, and the card, the Needs you row and the menu bar line update. A card says "Nothing on this Mac is affected any more" only when every place it covers could be read.
- Remove old versions. Remove… on an end-of-life or superseded copy first lists the projects that still pin that version (
.nvmrc,.node-version,.tool-versions,package.jsonengines.node and volta.node,composer.json,go.mod,mise.toml) and says what happens to them. It offers to move each pin to the new line, shown as a one-line diff, with Undo. Then it runs the installer's own command, such asbrew uninstall node@20ornvm uninstall 20.3.1; when another formula still needs it, Homebrew refuses and its message is shown word for word. The version nvm, fnm, mise or asdf uses as its default is never removed, and Volta, which has no such command, gets the steps. - Java certificates removed for you. For a JDK from Homebrew or in ~/Library/Java, iKnowMyMac keeps a copy of its cacerts file as cacerts.before-emudhra, removes the eMudhra roots with that JDK's own keytool, reads the file again to check they are gone, and offers Undo. No password is needed. For a JDK in /Library/Java, choose Do it for me, which asks for an administrator's password with the standard macOS prompt and runs the script it showed you, or follow the numbered steps.
- The other certificate bundles, fixed from here. Homebrew's bundle runs
brew upgrade ca-certificates, Composer's runscomposer update composer/ca-bundlein the project, and certifi is upgraded with each Python environment's own pip, with a pinnedcertifi==line in its requirements file updated too. - nvm and Herd, your way. Choose In Terminal (Terminal opens a file holding only the commands shown, and you watch it run), Here (a shell that loads only nvm's own script, never your shell profile; for Herd, its own
herd php:update), or Copy. - History. Settings › Package Watch › History lists what ran, how it ran (here, in Terminal, with the administrator prompt, or by iKnowMyMac), how it ended, and Undo where it applies.
Changed
- Old versions stay until you choose Remove…. Fix and Move still keep the old version installed beside the new one: Homebrew runs with HOMEBREW_NO_INSTALL_CLEANUP=1. A row Fix fixed stays listed, marked Fixed, until you remove it.
- The nodejs.org and go.dev installers. Moving one to a supported line: download the newer installer, then choose Do it for me, which checks the installer's signature and installs it with the macOS administrator prompt, or open it yourself.
Privacy
- Nothing new is sent. Homebrew, nvm, pip and Herd download updates from where they always do, and iKnowMyMac sends nothing about your Mac. It makes no new request: the nodejs.org or go.dev installer is one you download.
- The administrator prompt is macOS's own. The password goes to macOS, never to iKnowMyMac, and nothing is kept. iKnowMyMac never runs sudo and installs no privileged tool for this; its helper stays read-only.
- Nothing runs without a press. Every command, file and script is shown word for word before it runs. History keeps what ran in ~/Library/Application Support/iKnowMyMac/Fix, never a password.