Releases: hexydec/agentzero
AgentZero v2.0.2
This is a bug fix release:
- Fix bug in
agentzero::getHints()where a variable wasn't set if you pass your own headers - Fixed bugs in
versions::released()where it didn't always pick the earliest date for each browser based on the version number supplied - Updated tests
AgentZero v2.0.1
This release fixes some issues and improves some code features, and adds lots of new crawler captures:
- Fixed issue with
Fennecbrowser inbrowser::getBrowser()where it could get the version wrong, causing the release date to be incorrect - Updated
agentzero::getHints()to enable the hints to be extracted from a headers array or from$_SERVER - Added support for
fxiOS(Firefox on Safari) - Improved logic in
versions::get() - Added some
ClaudeBottests - Updated class definition in
README.md - Fixed docblock in
hints::parse() - Added loads of AI bots to
crawlers::get() - Added
StatusCakemonitor - Added URL to
SiteImprovecrawler - Added and updated tests
- Updated dependencies
AgentZero v2.0.0
This release adds support for browser versions and client hints, and improves detection:
- Client Hints can now be passed to
agentzero::parse()for processing - Browser release dates, latest version, and status can now be added to the browser information (See the readme for how to enable it)
- Improved UA normalisation
- Added
Barracuda Sentinel - Added
webz.iocrawler - Added
vivobrowser - Improved
weiboparsing inapps::get() - Improved
Facebookapp parsing inapps::get() - Moved device characteristics such as width, height and network type captures to
devices::get()and added new network type captures - Added new
Vivo Browsercapture tobrowsers::get() - Added
Blueskycrawler tocrawlers::get() - Added
Rokuplatform specific captures as they have a fixed format inplatforms::get() - Improved
Rokudevices parser - Added
agentzero::getHints()to retrieve the client hints sent by the browser - Updated
README.mdwith information on how to parse client hints and add versioning information - Added tests
AgentZero v1.3.1
This release adds detection for more app/crawlers/platforms/devices/browsers/features:
- Added support to detect Reddit/Pinterest/MXPlayer/Todoist/Trello/PurpleMash/Instapaper/LG Player/Roblox/nu.nl apps
- Added more detection for
Android,MacOSandiOS - Moved
Headless Chromedetection tocrawlers::get() - Fixed
Amazon Kendradetection - Added
Playstation 3support - Added support for more
LGandXiaomidevices - Improved
widthandheightprocessing to includedensity - Improved JSON extraction to include device and platform information
- Added better URL detection in
url::get() - Added category and type to
libwww-perlframework - Added
Douyinas an app name (Chinese TikTok) fixes #9 - Added
MIUI Browserto browsers list. - Added tests.
- Updated dependencies.
AgentZero v1.3.0
This release improves normalisation of crawler names to enable analytics to be more consistent:
- Agent strings are now normalised to remove surrounding quotes and extra whitespace in
agentzero::parse() - Reworked how crawler names are parsed to make them more consistent in
crawlers::normaliseAppname() - Added
libwww-perlas a framework - Added lots of new crawlers
- Fixed performance issue in
crawlers::get()where acount()call was in a loop - Added and updated tests
- Updated dependencies
- Fixed some PHPStan recommendations
AgentZero v1.2.1
This is a maintenance release:
- Added OpenAI and Claude bots
- Added tests
- Updated dependencies
AgentZero v1.2.0
This update add support for lots of new crawlers, and improves token handling internally:
- Reworked how tokens are ignored in
agentzero::getTokens()to make them case-insensitive - Added loads of new crawlers to
crawlers::get() - Added
.NET CLRframework toframeworks::get() - Added
specialclass to handle difficult captures - Updated
Yahoo! Slurpparser - Fix issue #6 typo in
README.md - "arm" is now "Arm" in
architectures::get() - Improved how apps are normalised in
crawlers::getApp() Applebotis now categorised as AI- Added
bytespidercrawler - Fixed issue in
agentzero::getTokens()where the single values array was encoded withpreg_quote(), but the delimiter was not supplied AppleWebKit/537.36is now marked as single as it is sometime preceded by other tokens that get captured together- Added captures for
BaiduandMicroMessengerapps - Fixed PHPStan issues to level 9
- Added and updated test
- Updated dependencies
AgentZero v1.1.0
This release enables capture of more crawlers, and adds a new ai category:
- Apps are now not automatically type
human - Moved
PowershellandAppleExchangeWebServicesto crawlers, as there is no indication that these are human UA's - Added
Alamofireas a framework - Fixed issue in
other::getApp()where theappwas expected to exist - Added capture for
iOSwith a space after it - Added
Blazerbrowser (PalmOS) - Added
PalmOSand updated Windows captures to ignore PalmOS - Added a new
aicategory, to mark crawlers that are specifically for AI - Added specific mispellings that indicate a web scraper instead of the human it is trying to spoof
- Added and updated tests.
AgentZero v1.0.1
This release adds detection for more strings and improves how some strings are handled internally:
- Fixed issues parsing
Google-Read-Aloud - Cleaned up how specific category names and app names are specified for generic bot captures
- Added
Cloudflarecrawlers to capture list - Fixes issue #5, missing Huawei Browser
- Added tests
AgentZero v1.0.0
This release improves detection, adds some new properties, and improves performance. Also is now marked as stable:
- Added
PS VitaandPSPsupport - Added
Moblieas an alternative toMobileas some Samsung devices misspell it - Added new properties
frameworkandframeworkversionto capture the runtime that the app was built in - Added support for
WeiboandWeChatapps - Added support for
QQ Browser - Improved how
IEandTridentis captured to account for the fact that theQQ Browsercan be eitherTridentorWebKit - Updated
Chromiumdetection to set the rendering engine toWebKitwhen the version is less than 28 - Languages can now be captured from
language/orByteLocaletokens - Updated config in
apps::get()to unify how app names are processed, now going throughapps::getApp() - Updated
other::get()to normalise app names throughapps::getApp() - Moved capture for
ByteFullLocale/tolanguages::get(). - Updated
crawlers::get()to improve normalisation of theQwantcrawler - Improved how
iPhoneis captured for certain app strings - Added
tests/profile.phpto process a load of UA strings so the code can be profiled - Updated
agentzero::parse()to generate a lowercase copy of the tokens, which is then passed toprops::match(), this is to prevent the tokens being lowercased for every match that is made - Added
declare(strict_types = 1)to all test files - Added and updated tests
- Updated README.md to remove beta flag