Filters Compiler Changelog

September 15, 2026 · View on GitHub

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

Added

Changed

Deprecated

Removed

Fixed

Security

3.3.2-beta.0 - 2026-09-15

Added

  • validateLocales accepts an optional logFormat argument ('text' or 'markdown') that controls the format of the returned log field, so the validation report can be embedded into GitHub issues or PR comments as markdown. Translation content and locale names are wrapped in inline-code spans whose backtick delimiters are longer than any backtick run in the content, and line endings are collapsed to spaces, so the report cannot break out of code spans or headings.

3.3.1 - 2026-09-09

Changed

  • extension/android-content-blocker platform metadata (filters.json / filters.js) now references optimized filter builds (_optimized.txt) instead of the full builds.

3.3.0 - 2026-08-26

Added

Changed

Fixed

  • timeUpdated/timeAdded metadata fields and the ! TimeUpdated: filter header now stay in UTC instead of shifting to the local time zone during local builds.
  • Conversion of redirect-rule modifier rule with googletagmanager-gtm #159.

Security

3.3.0-beta.1 - 2026-08-20

Changed

  • localOptimizationStatistics.download(basePath: string, includedFilterIds, excludedFilterIds): Allow both includedFilterIds and excludedFilterIds to be used at once.
  • localOptimizationStatistics.download(basePath): Clear the basePath directory before downloading statistics.

3.2.12 - 2026-08-10

Added

  • Ability to compile filters using local optimization statistics (localOptimizationStatistics).

Changed

  • compile() type declaration: whitelist/blacklist now accept null/undefined.
  • getOptimizationStatistics deduplicates concurrent percent.json fetches via promise singleton.

3.2.11 - 2026-07-24

Changed

Fixed

  • Incorrect UBO → AdGuard conversion of json-prune-fetch-response and json-prune-xhr-response scriptlets with UBO's propsToMatch and stackToMatch key/value args syntax #250.

3.2.10 - 2026-07-21

3.2.10-beta.0 - 2026-07-21

Added

  • TypeScript toolchain for incremental adoption.

Changed

Fixed

  • Corrected the public type declarations for validation function return values.

3.2.9 - 2026-04-21

Changed

  • Updated @adguard/agtree to v4.1.0-beta.0, which adds conversion of the google-ima3 scriptlet to its uBO-compatible google-ima counterpart #274.

3.2.8 - 2026-03-26

Changed

3.2.7 - 2026-03-25

Fixed

  • Skip conversion of [min-length] / [max-length] HTML filtering rule attribute selectors to :contains(/regex/) to prevent CoreLibs regexp quantifier overflow (PCRE2 limit of 65535).

3.2.6 - 2026-03-24

Changed

3.2.5 - 2026-03-19

Changed

3.2.4 - 2025-12-16

Changed

Fixed

  • Conversion of googlesyndication.com/adsbygoogle.js redirect.

3.2.3 - 2025-12-12

Fixed

  • Exclude $redirect-rule instead of $redirect from filters for MV3 extensions #231.

3.2.2 - 2025-11-28

Fixed

  • Build on Windows due to incorrect path handling.

3.2.1 - 2025-11-27

Fixed

  • Applying of trust-level exclusions.

3.2.0 - 2025-11-27

Added

  • @adguard/css-tokenizer and @eslint/css-tree as direct dependencies since @adguard/ecss-tree v2 marks them as external.

Changed

Fixed

  • Fixed parsing of network rules with regex patterns containing commas in quantifiers.

3.1.4 - 2025-11-12

Changed

3.1.3 - 2025-10-24

Fixed

  • Collect invalid rules in the report file during filter conversion.
  • HTML filtering rules in AdGuard syntax with pseudo-classes are not converted.

3.1.2 - 2025-10-21

Changed

3.1.1 - 2025-09-04

Fixed

  • log.txt file.

3.1.0 - 2025-08-06

Added

  • Support of ext_opera_mv3 platform.

3.0.2 - 2025-07-31

Added

  • Remove setLogger function.

3.0.1 - 2025-07-31

Added

  • Deploy to npmjs.

2.0.6 - 2025-07-21

Added

  • CJS build for better compatibility.

2.0.5 - 2025-07-09

Added

Changed

2.0.4 - 2025-06-26

Added

Changed

Fixed

  • Issue with invalid selector #242.
  • Issue with regex in $domain modifier #241.
  • Issue with regex in $url modifier #237.

1.2.8 - 2025-06-06

Fixed

  • Removing obsolete filters from filters.json and filters_i18n.json metadata for mac_v2 platform.

1.2.7 - 2025-05-28

Added

  • Patterns for :matches-property() and generic CSS rules.

Changed

  • Exclude $removeheader, :matches-property() and generic CSS rules from uBO filter lists.

Fixed

  • Patterns for CSS rules.

1.2.6 - 2025-04-29

Added

  • Support of a new cli platform for AdGuard for Linux #248.

1.2.5 - 2025-04-23

Added

  • Support of hi, hy, lt, ms, th locales as required in filters_i18n schema #246.

1.2.4 - 2025-04-22

Added

  • Support of a new mac_v3 platform #247.

1.2.3 - 2025-04-21

Changed

  • Removed groupDescriptions for mac_v2 platform in filters.json metadata.

1.2.2 - 2025-04-18

Fixed

  • Metadata building for old mac platform.

1.2.1 - 2025-04-17

Added

  • Required properties for groups:
    • groupDescription in filters schema;
    • description in filters_i18n schema.

Changed

  • Unified list of required locales in filters_i18n schema for filters, groups, and tags.

1.1.154 - 2025-03-24

Added

  • Support for !+ NOT_VALIDATE hint #245

1.1.153 - 2025-03-14

Changed

  • Improved performance of the @include directive's /optimizeDomainBlockingRules option #243.

1.1.149 - 2024-12-10

Changed

1.1.148 - 2024-10-02

Changed

  • Exclude $redirect-rule from filters for MV3 extension #231

1.1.146 - 2024-08-29

Added

  • deprecated property to the built filters metadata

1.1.144 - 2024-08-14

Fixed

  • Removing Diff-Path filter header tag #225

1.1.143 - 2024-08-01

Changed

1.1.142 - 2024-07-12

Changed

1.1.141 - 2024-07-02

Changed

1.1.140 - 2024-07-01

Fixed

  • Adding filters i18n metadata due to platformsIncluded and platformsExcluded

1.1.139 - 2024-06-21

Added

  • Support of ext_chromium_mv3 platform

Fixed

  • Do not build filters due to platformsIncluded and platformsExcluded if limited list of filters are specified to build

1.1.138 - 2024-06-21

Added

  • downloadUrl to generated filters metadata

Fixed

  • Return the rules in their original order after applying the @include directive option /optimizeDomainBlockingRules #217

1.1.136 - 2024-05-22

Changed

1.1.135 - 2024-05-20

Added

  • New @include directive option /optimizeDomainBlockingRules #217

Removed

  • fs-extra from package dependencies

Fixed

  • Filtering of duplicates modifiers during the @include directive's /addModifiers option applying #218

1.1.131 - 2024-04-05

Fixes

  • Ensure report file is created before writing to it

1.1.130 - 2024-04-04

Changed

  • Improved report file logging

1.1.129 - 2024-04-03

Changed

Fixed

  • Error during large filter list compiling

1.1.127 - 2024-03-29

Changed

Fixed

  • UBO→ADG conversion of $remove$ scriptlet param #205

1.1.123 - 2024-02-13

Changed

Fixed

  • Issue with excluding CSS rules and rules with the $removeparam modifier if its value contains part of the other modifier

1.1.121 - 2023-12-15

Added

  • New @include directive option /ignoreTrustLevel #202

Changed

  • Sort filters by filterId in filters.json and filters.js #195

1.1.119 - 2023-12-06

Added

  • FiltersCompiler ignore uBO exception rules with $important modifier #200

Changed

1.1.115 - 2023-11-21

Added

  • Ability to override metadata's expires value for specific platforms #198
  • Default expires value "12 hours" for mac_v2 and windows

Changed

  • Exclude #@%# scripts exceptions from uBO filter lists #199
  • Exclude unsupported modifiers for ext_safari, ios, and ext_android_cb platforms #201

1.1.107 - 2023-11-13

Changed

Fixed

  • Filtering of empty lines during the @include directive's /addModifiers option applying

1.1.105 - 2023-11-10

Added

  • New @include directive option /addModifiers #190

Changed

  • Implemented the ability to apply modifiers based on their sequential order in the line.

1.1.104 - 2023-11-08

Changed

1.1.102 - 2023-11-03

Changed

1.1.101 - 2023-10-20

Changed

1.1.100 - 2023-10-11

Changed

1.1.96 - 2023-08-25

Changed

1.1.94 - 2023-08-22

Changed

1.1.93 - 2023-07-27

Changed

1.1.92 - 2023-07-21

Changed

1.1.90 - 2023-07-11

Changed

  • Throw an error during ADG→UBO conversion of scriptlets rule with $path modifier

1.1.88 - 2023-06-26

Changed

  • Updated platforms.json and added adguard_ext_chromium into defines for EXTENSION_EDGE and EXTENSION_OPERA.
  • Updated @adguard/tsurlfilter to v2.1.3

1.1.86 - 2023-06-15

Changed

1.1.85 - 2023-06-15

Changed

1.1.82 - 2023-04-21

Changed

1.1.79 - 2023-03-09

Added

  • Locales validation filters_i18n schema for filter 23

1.1.77 - 2023-03-01

Added

  • Build .js copies of filters.json and filters_i18n.json

1.1.76 - 2023-02-01

Changed

1.1.75 - 2023-01-19

Changed

1.1.73 - 2022-12-28

Changed

1.1.72 - 2022-12-27

Changed

1.1.71 - 2022-12-23

Changed

Added

  • Conversion for google-ima3 redirect #167

Removed

  • Support of $webrtc modifier

1.1.69 - 2022-12-19

Changed

1.1.68 - 2022-12-14

Changed

1.1.67 - 2022-12-06

Changed

1.1.66 - 2022-12-01

Changed

1.1.65 - 2022-11-29

Changed

1.1.64 - 2022-11-28

Changed

1.1.63 - 2022-11-22

Added

  • Support of Trusted scriptlets and their exclusion from list which trust-level is not full

Changed