- New: License section in Settings -- a 30-day trial with every
feature active starts automatically, no registration required to
start. Protection continues regardless of license status; the trial
only affects what's shown, never what's enforced. Enter a license
key to keep Premium features once the trial ends. This is the first
release where the license system is actually visible anywhere --
it existed in the codebase before but had no entry form and was
excluded from every published build.
- Intelligence page: rewrote descriptions in plain language about what
each thing does for your site's protection, not internal
implementation details (was showing raw technical descriptions like
a "signature corpus" and "RIR delegation database" range counts).
Verified end-to-end before publishing (not just code review): a real
signup and license created on the actual companion license service,
then submitted through the real Settings page form exactly as a
customer would -- status went from "TRIAL -- 30 DAYS LEFT" to
"LICENSED" on both the Settings and Overview pages. This exact ZIP was
also installed fresh and every admin page loaded with zero errors
before this commit.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Fixes a real bug: a normal (non-critical) update was previously
detected and shown as available, but nothing ever actually installed
it -- there was no button, cron path, or any other code that did.
Automatic updates only ever worked for updates flagged critical, which
isn't what "automatic" means. Now any newer, compatible,
signature-verified update installs on its own.
This is also the first release where the self-update mechanism itself
ships in this self-distributed channel -- it was unconditionally
excluded from every previous build (a WordPress.org-only restriction
that doesn't apply here, since this channel isn't WordPress.org).
manifest.json in this repo is the real, live update manifest: signed
with Ed25519 (public key documented in README.md's Updating section),
pointing at this exact release's ZIP and its real SHA-256. Verified
end-to-end before publishing -- not just "the code looks right": ran a
full real update cycle (an older installed version checking this
manifest, downloading this exact package, verifying its signature and
hash, replacing itself, and the site continuing to work with zero
errors afterward) using the actual signing key and the actual
package this commit ships.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>