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.
Cask conflict (`php` vs `shivammathur/php/php`)
- The cask conflict check has been removed, now that #310 is resolved
by correctly checking the formula alias via the correct `php` formula.
(This was addressed in ebf872621ab58f71f4136bf1f27937592a5dfe5e.)
Translations
- Some missing translations have been added.
- Some empty or unused translation keys have been removed.