You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Make device classification pluggable with a no-host-call default #780
As a deployer, I want device classification to be a selectable module whose default makes no host-specific call, so that the default path privileges no host and I can opt into a stronger signal where my host provides one.
Description
Introduce a DeviceModule interface that produces the coarse browser and bot classification the Edge Cookie gate uses. The default module is User-Agent only and makes no host-specific call. Add an opt-in module, the host's own, selected as platform, that strengthens the classification with the JA4 (TLS) and HTTP/2 probabilistic identifiers the host exposes, gathered only when that module is selected. These signals serve identifier gating and bot detection, not bid enrichment, and a richer device model for the ad request is a separate concern.
Done when
A DeviceModule interface is selected by [device] module.
The default is User-Agent only and makes no host-specific call.
An opt-in module reads the host's JA4 and HTTP/2 probabilistic identifiers, gathered only when selected.
The bot gate works on the User-Agent-only default.
Update. Device module selection (#1044) stands. With the module context (fork pull request 3, jwrosewell#3) the trait is detect(&self, call), and the device signals a module produces carry the permissions that module declares, so they reach only a module that holds them.
Activity
jwrosewell commentedon Oct 12, 2026
Update. Device module selection (#1044) stands. With the module context (fork pull request 3, jwrosewell#3) the trait is
detect(&self, call), and the device signals a module produces carry the permissions that module declares, so they reach only a module that holds them.