v1.0.0
12 Sep 2026First release.
Added
Consentfacade andConsentManager: read the browser's decision on the server, askallows('analytics')orallows('analytics/ga4'), and get the wholeDecision— id, timestamps, refusals, policy version, regime, language, notice hash and revision.- A decision made against an older
versionstops counting the moment you bump the config, so the server never acts on an answer the widget is already re-asking. @consent('analytics') … @endconsentand@consentdecided, for gating a tag where it is printed.<x-cookie-consent />: the stylesheet, the widget, your categories, the visitor's country from your CDN's header, and thereport()call that posts each decision to your log.- The proof-of-consent log — a migration, the
ConsentLogmodel and aPOST /consentendpoint that writes one row per decision and per change of mind, with the IP stored as an HMAC rather than in the clear. - A
ConsentRecordedevent for your own CRM or audit trail. - The consent cookie is excepted from Laravel's cookie encryption automatically — the usual reason a server-side consent check silently answers "no".
- Publishable config, migrations and views.