3.14.1
A license now counts only if Connect signed it for this site, and a paid license keeps working through the end of its term even when Connect cannot be reached.
- Changed **A paid license holds for its whole term, even with Connect down.** When Connect includes the end of the paid term, the license keeps working until that date plus 30 days without a check. A complimentary license with no end date does not lapse offline at all. Only a signed answer from Connect turns modules off mid-term.
- Changed A site updating from an earlier version checks in with Connect right away so its saved license is replaced with a signed one.
- Changed The entitlement rail signs real grants with a throwaway key and covers tampered, forged, wrong-site, mid-term, comp and lapsed licenses, on test and live hosts. It goes red with the signature or term check removed.
- Changed The credential PDF compare now reads every catalog year, not only the active one, and CI fails when a maintenance query does not say which years it reads.
- Changed The offline grace period is read from `Kenii_License::OFFLINE_GRACE_DAYS` instead of a second copy of the number.
- Fixed **A license must carry Connect's signature to count.** Kenii stores each signed license whole and checks the signature every time it reads it, so a license written straight into the database, or copied from another college's site, does nothing.
- Fixed **The module override no longer applies on a college's live site.** `KENII_ENTITLEMENT_OVERRIDE` in wp-config is honored only on localhost, `.local`, `.test` and `.localhost` addresses and on kenii.app with its subdomains.