Skip to content

Releases: hexydec/agentzero

AgentZero v2.0.2

31 Aug 20:26

Choose a tag to compare

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

25 Aug 22:10

Choose a tag to compare

This release fixes some issues and improves some code features, and adds lots of new crawler captures:

  • Fixed issue with Fennec browser in browser::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 ClaudeBot tests
  • Updated class definition in README.md
  • Fixed docblock in hints::parse()
  • Added loads of AI bots to crawlers::get()
  • Added StatusCake monitor
  • Added URL to SiteImprove crawler
  • Added and updated tests
  • Updated dependencies

AgentZero v2.0.0

03 May 20:29

Choose a tag to compare

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.io crawler
  • Added vivobrowser
  • Improved weibo parsing in apps::get()
  • Improved Facebook app parsing in apps::get()
  • Moved device characteristics such as width, height and network type captures to devices::get() and added new network type captures
  • Added new Vivo Browser capture to browsers::get()
  • Added Bluesky crawler to crawlers::get()
  • Added Roku platform specific captures as they have a fixed format in platforms::get()
  • Improved Roku devices parser
  • Added agentzero::getHints() to retrieve the client hints sent by the browser
  • Updated README.md with information on how to parse client hints and add versioning information
  • Added tests

AgentZero v1.3.1

22 Nov 11:15

Choose a tag to compare

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, MacOS and iOS
  • Moved Headless Chrome detection to crawlers::get()
  • Fixed Amazon Kendra detection
  • Added Playstation 3 support
  • Added support for more LG and Xiaomi devices
  • Improved width and height processing to include density
  • Improved JSON extraction to include device and platform information
  • Added better URL detection in url::get()
  • Added category and type to libwww-perl framework
  • Added Douyin as an app name (Chinese TikTok) fixes #9
  • Added MIUI Browser to browsers list.
  • Added tests.
  • Updated dependencies.

AgentZero v1.3.0

01 Oct 08:56

Choose a tag to compare

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-perl as a framework
  • Added lots of new crawlers
  • Fixed performance issue in crawlers::get() where a count() call was in a loop
  • Added and updated tests
  • Updated dependencies
  • Fixed some PHPStan recommendations

AgentZero v1.2.1

02 Aug 16:22

Choose a tag to compare

This is a maintenance release:

  • Added OpenAI and Claude bots
  • Added tests
  • Updated dependencies

AgentZero v1.2.0

27 Jun 20:10

Choose a tag to compare

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 CLR framework to frameworks::get()
  • Added special class to handle difficult captures
  • Updated Yahoo! Slurp parser
  • Fix issue #6 typo in README.md
  • "arm" is now "Arm" in architectures::get()
  • Improved how apps are normalised in crawlers::getApp()
  • Applebot is now categorised as AI
  • Added bytespider crawler
  • Fixed issue in agentzero::getTokens() where the single values array was encoded with preg_quote(), but the delimiter was not supplied
  • AppleWebKit/537.36 is now marked as single as it is sometime preceded by other tokens that get captured together
  • Added captures for Baidu and MicroMessenger apps
  • Fixed PHPStan issues to level 9
  • Added and updated test
  • Updated dependencies

AgentZero v1.1.0

08 Apr 19:06

Choose a tag to compare

This release enables capture of more crawlers, and adds a new ai category:

  • Apps are now not automatically type human
  • Moved Powershell and AppleExchangeWebServices to crawlers, as there is no indication that these are human UA's
  • Added Alamofire as a framework
  • Fixed issue in other::getApp() where the app was expected to exist
  • Added capture for iOS with a space after it
  • Added Blazer browser (PalmOS)
  • Added PalmOS and updated Windows captures to ignore PalmOS
  • Added a new ai category, 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

15 Feb 18:27

Choose a tag to compare

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 Cloudflare crawlers to capture list
  • Fixes issue #5, missing Huawei Browser
  • Added tests

AgentZero v1.0.0

25 Jan 21:24

Choose a tag to compare

This release improves detection, adds some new properties, and improves performance. Also is now marked as stable:

  • Added PS Vita and PSP support
  • Added Moblie as an alternative to Mobile as some Samsung devices misspell it
  • Added new properties framework and frameworkversion to capture the runtime that the app was built in
  • Added support for Weibo and WeChat apps
  • Added support for QQ Browser
  • Improved how IE and Trident is captured to account for the fact that the QQ Browser can be either Trident or WebKit
  • Updated Chromium detection to set the rendering engine to WebKit when the version is less than 28
  • Languages can now be captured from language/ or ByteLocale tokens
  • Updated config in apps::get() to unify how app names are processed, now going through apps::getApp()
  • Updated other::get() to normalise app names through apps::getApp()
  • Moved capture for ByteFullLocale/ to languages::get().
  • Updated crawlers::get() to improve normalisation of the Qwant crawler
  • Improved how iPhone is captured for certain app strings
  • Added tests/profile.php to 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 to props::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