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.
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.
- RealShell is not reloaded during runtime (bugfix?)
- Container variables are now private(set)
- Initialization now also sets `webApi` property (new)
- It is only possible to run `bind` on a `Container` once now
(previously known as `prepare`)
- Preparation for upcoming WebApi to replace `curl` command
(for checking for updates)
The newer Swift native method is broadly supported and can properly
handle complex UTF-8 characters like emoji, whereas the old API does
not work correctly with emoji.
In most cases, this likely wouldn't have caused any issues but it does
make things a little cleaner now, and ensures we won't encounter emoji
trouble in the future.
- Added extra check for valid `brew info php --json` output
- Moved PHP binary check and PHP installation not broken checks to `core`
- Workaround for Homebrew logs appearing in JSON output