This addresses some potential crash issues with RealCommand.
The PHPInstallation health check has been updated to accommodate the
potential error strings, namely:
- PHPMON_COMMAND_UNCAUGHT_SIGNAL
- PHPMON_FILE_HANDLE_READ_FAILURE
A description of how this UUID is used (for legitimate purposes, not for
tracking of individual users) is included in the file. Since the API ID
is now also used in API requests, I've bumped the version of the user
agent in the list of default headers sent via the RealWebApi.
This commit avoids the usage of `readDataToEndOfFile` and instead uses
a helper method that:
- Attempts to use `.readToEnd()`
- Has a fallback to return an empty string
- Attempts to close the pipe
- Icons are now loaded if possible (if the path could be inferred)
- Some new apps that are detected by default:
- Browsers: Safari, Google Chrome, Microsoft Edge, Firefox, Brave,
Arc, Zen
- Editors: WebStorm, VSCodium
- Git GUI: Tower, SourceTree
- Terminal: Ghostty
- `openWithEditor` has been refactored to `openWithApp` which now lets
browsers open domains from their URL, not from their local folder.
Most of the logic from the MainMenu+Startup extension has now been
completely removed. It has now been moved to the Startup+Launch
extension, which is a better place for this logic. Where necessary,
functions have been annotated with MainActor.
Additionally, checking which third-party apps have been installed
has been moved to `App+DetectApps.swift`, a separate extension.