v1.0.0-rc.2
Pre-release
Pre-release
Blockingmachine v1.0.0-rc.2
Second release candidate for Blockingmachine 1.0.
Highlights since RC 1
• Full Rule Precedence & DNS Exception Suppression:
- Eliminated the DNS exception leakage bug across
/etc/hosts,dnsmasq, andunboundwhere allowlisted domains were still sinkholed by active blocks. - Implemented
resolveDnsPrecedenceto automatically prune blocked domains when covered by allowlists (@@||domain^). - Added child subdomain exception unblocking directives (
server=/sub.domain/#in dnsmasq,local-zone: ... transparentin unbound). - Standardized
$importantoverride mechanics:$importantexceptions override$importantblocks, and$importantblocks override normal exceptions.
• Canonical Section Ordering & Deterministic Output: - Adblock filter exports (
adguard,abp) now enforce canonical section ordering:- Header / Metadata
- Whitelist & Exception Rules (
@@,#@#,#@%#,#@$#) - Procedural Scriptlet Defusers (
##+js,#%#,#$#) - Cosmetic & Element Hiding Rules (
##,#?#,$$) - Network Blocking Rules (
||,|,/regex/,0.0.0.0)
- Deterministic alphabetical sorting within sections ensures reproducible builds and zero arbitrary diff churn.
• Scriptlet Classification & Deduplication Engine: - Procedural scriptlets (
##+js(...),#%#//scriptlet(...),#$#...) now classify as"scriptlet"instead of generic"cosmetic". - In
RuleDeduplicator, scriptlet arguments are stored separately inparts.scriptlet, preserving multiple distinct scriptlets on the same domain.
• Unified Domain Evaluation Engine: - Shared
evaluateDomainRulesacross Core, CLI (test,serve/v1/check), and Electron IPC (inspect-domain).
• Multi-Vendor Anti-Adblock & Scriptlet Defusers: - Expanded radar and procedural scriptlets against Admiral, Google Funding Choices / Privacy Messaging, BlockThrough / PageFair, AdInPlay, Ezoic, NitroPay, and Snigel Ad Recovery.
• Security & Memory Hardening: - SSRF Protection: Added IPv4-mapped IPv6 hex decoding (
::ffff:x:y) to close loopback/metadata SSRF bypass vectors; verified IPv6 documentation and private subnets. - Memory Bounds: Added 25MB response streaming cap to Electron sinkhole HTTP client (
sinkholeFetch.ts) to prevent remote OOM crashes. - Database Parity: Fixed DNS exception suppression across hosts, dnsmasq, unbound, named, privoxy, and shadowrocket in
packages/database/scripts/update.js.
• Complete Test Coverage: - Expanded test suite to 357 passing tests (100% pass rate) with 0 lint warnings and clean monorepo builds.
Feedback
Please report issues against this RC before 1.0.0 final.