NEW:
[crontab] stop(), start(), restart() wrapper methods for toggle_status().
[crontab] match_job()- return jobs whose command matches regex pattern.
[Filesystem] whiteout/opaque layer utility class.
[scope] diff()- report changes in a given Bootstrapper role. Example: diff("clamav/setup") reports all configuration changes that override variables in clamav/setup.
[telemetry] collect()- trigger statistics collection.
[telemetry] interval()- report data over evenly spaced intervals.
[upcp] List available roles using -l flag.
[user] resolve_uid() method translates UID to a site/user tuple.
[webapp] get_meta()/set_meta()- interact with Web App metadata.
[webapp] refresh_apps()- expunge cached webapp facts, used when developing Web Apps without restarting ApisCP.
[webapp] removeJobs() internal helper removes existent tasks within a given document root.
[wordpress] cli()- free-form WP-CLI access.

FIXED:
[Argos] Weak "requests" dependency pulls down incompatible package on CentOS 7.
[Backend] double-fork race condition.
[Bootstrapper] Idempotency violation in mail/spamassassin.
[CLI] non-CLI input format destructures array.
[CLI] Numeric flag argument raises strict type error.
[Composer] CVE-2022-24828 Composer Command Injection hotfix.
[Filesystem] 0:0 valid device.
[letsencrypt] Calling append() to non-existent certificate fails.
[Nexus] Plans outside system charset are silently ignored.
[Opcenter] Early termination suppresses other regitered callbacks.
[Opcenter] DTSS activation orphans dbaseadmin, dbaseprefix values on account deletion. Apply AlwaysRun attribute to dbaseprefix. Change intention of AlwaysRun to always run even during deletion if service class "enabled" is false.
[Opcenter] Prefixing "www." to a domain fails post-creation callbacks.
[Opcenter] *.end event processing in Activate/SuspendDomain.
[PHP] Reconfiguring PHP-FPM logging if logs,enabled=0 chmod's vfs root to 640.
[PHP] SourceGuardian support. Set php_install_sourceguardian to "true" in cp.bootstrapper Scope, run upcp after.
[Route53] Records created as weighted, closes issue #48.
[Route53] Long records require label split.
[rspamd] IPv6 MX records report MX_INVALID.
[upcp] Hotfixes revert edge-major policy.
[Users] Changing username could result in crash during notification.
[Users] Usernames that begin with a number yet contain a valid character mask.

CHANGED:
[Backend] Squelch spurious same-mount warning early in installation.
[Bootstrapper] Workaround on platforms in which /etc/selinux/config is marked with immutable attribute.
[cgroup] Move to cgconfig.d/ usage. cgconfig is a oneshot task on boot that has a tendency to become unwieldy with parsing larger configurations. Each cgroup configuration is named after the site for easier management.
[Cgroup] Cleanup internal API usage. Group name no longer required where Controller object is used.
[Discourse] Add support for 2.8+.
[DNS] Exporting corrupt/invalid zone fails gracefully.
[Filesystem] Spam retention in ~/Mail/.Spam adjustable in software/tmpfiles.
[Ghost] Support 4.5+.
[Internal] Merge config/custom Composer dependencies into autoloader.
[Laravel] Use pool version in determining installation requirements.
[Metrics] Delete data older than 1 year, apply aggressive compression policy for metrics older than 2 days.
[Opcenter] Block reducing bandwidth threshold that will result in immediate account suspension.
[Opcenter] Rename Procfs helper class to Sysctl.
[PHP] Disabling Apache service terminates PHP-FPM processes.
[PostgreSQL] postgresql.conf values may be overridden in Bootstrapper as "pgsql_custom_config".
[rampart] temp() may be used by admin.
[Scopes] Suggest alternative scopes on invalid reference.
[Subdomain] Removing a subdomain whose data directory is incorrectly located in /var/subdomain will remove the directory now.
[Task Scheduler] Downgrade duplicate job to warning.
[Task Scheduler] Task Scheduler (crontab) may operate independently from SSH when [ssh] => crontab_link is set to false. Doing so still allows a cron process to open a shell for a user to login to the account. This is intended as a simpler approach to creating a custom plan named nossh as referenced in Plans.md#complex-plan-usage.
[upcp] Improve permission healing.
[Watchdog] Delay on boot via watchdog_boot_delay Bootstrapper setting. Intended for heavy startups that spike load momentarily.
[web] rename_subdomain() implicitly coerces local format to global.

REMOVED:
[Bootstrapper] Account creation role on DNS-only builds.
[PowerDNS] Web server feature disabled by default.
[UI] Nexus on DNS-only installs.
This tag has no release notes.