🚀 Version 1.0.3
Hardening Blocklist Validation & Atomic Output
27 Juli 2026
Rilis ini berfokus pada peningkatan akurasi validasi blocklist, kompatibilitas lintas platform, keandalan penulisan output secara atomik, serta penyempurnaan portabilitas dan kualitas kode.
✨ Sorotan Rilis
Version 1.0.3 menghadirkan berbagai peningkatan pada proses parsing dan validasi blocklist modern, termasuk dukungan sintaks AdGuard, penanganan IPv6 yang lebih baik, mekanisme penulisan output yang sepenuhnya atomik, serta peningkatan kompatibilitas pada Linux, macOS, dan FreeBSD.
🆕 Fitur Baru
🛡️ Dukungan Blocklist Modern
Menambahkan dukungan terhadap berbagai sintaks blocklist yang umum digunakan, di antaranya:
- Prefix AdGuard
|| - Wildcard
* - Leading dot (
.) - Suffix AdGuard (
^) - Opsi filter (
$option)
Contoh yang kini didukung:
||example.com^
||ads.example.org$important
*.tracking.example.net
.example.com
Hal ini memungkinkan parser memproses blocklist modern secara lebih akurat tanpa memerlukan normalisasi manual.
🖥️ Monitoring Resource FreeBSD
Menambahkan dukungan native FreeBSD pada fungsi:
show_system_resourcesInformasi yang ditampilkan kini mencakup:
- Penggunaan RAM
- Statistik halaman memori (memory pages)
- Informasi sistem FreeBSD secara native
🛠️ Perbaikan
✅ Urutan Sanitasi Domain
Menyempurnakan urutan proses sanitasi dengan memindahkan penghapusan:
- Path (
/) - Query (
?) - Fragment (
#) - Opsi AdGuard (
^,$option)
sebelum proses validasi port maupun karakter titik dua (:).
Perbaikan ini mengatasi kasus seperti:
example.com:8080/path
yang sebelumnya dapat terdeteksi sebagai domain tidak valid.
✅ Filtering Prefix IPv6
Memperluas proses penyaringan alamat IPv6 pada format file hosts, termasuk:
::
::1
0:0:0:0:0:0:0:1
fe80::
Sehingga entri non-domain dapat dihapus dengan lebih akurat sebelum tahap validasi.
✅ Cross-Filesystem Atomic Output
Mekanisme penulisan output kini menggunakan staging file:
VALID_OUTPUT_TMP
di dalam direktori tujuan (OUTPUT_DIR) sebelum dilakukan:
mvKeuntungan:
- Penggantian file berlangsung 100% atomik
- Aman pada lingkungan dengan filesystem berbeda (misalnya
/tmpdanOUTPUT_DIRberada pada mount point yang berbeda) - Mengurangi risiko file korup atau kosong ketika proses terhenti
✅ BSD Sort Compatibility
Menambahkan validasi otomatis terhadap konfigurasi:
SORT_BUFFERApabila menggunakan nilai berbentuk persentase (%) pada BSD sort (macOS/FreeBSD), nilai tersebut akan dikonversi secara otomatis menjadi ukuran absolut (MiB) untuk mencegah kegagalan proses.
✅ Portability Cleanup
Memperluas cakupan fungsi:
force_cleanupsehingga kini juga membersihkan direktori sementara pada:
$TMPDIR/tmp
Hal ini meningkatkan kompatibilitas pada berbagai distribusi Linux dan sistem BSD.
🔍 Kualitas Kode
✅ ShellCheck Compliance
Seluruh kode telah diaudit dan berhasil mencapai:
100% ShellCheck Clean
Tanpa warning maupun error, sehingga kualitas kode menjadi lebih konsisten dan mudah dipelihara.
📈 Ringkasan Peningkatan
| Area | Peningkatan |
|---|---|
| 🛡️ Blocklist | Dukungan sintaks AdGuard dan wildcard modern |
| 🔍 Validasi | Urutan sanitasi domain lebih akurat |
| 🌐 IPv6 | Filtering format hosts lebih lengkap |
| 💾 Atomic Output | Aman pada filesystem berbeda |
| 🖥️ FreeBSD | Monitoring resource native |
| ⚙️ Portabilitas | Peningkatan kompatibilitas Linux, macOS, dan FreeBSD |
| 🧹 Kualitas Kode | 100% lulus audit ShellCheck |
Version 1.0.3 merupakan rilis yang berfokus pada akurasi parser, keandalan output, kompatibilitas lintas platform, dan peningkatan kualitas kode, sehingga lebih siap digunakan untuk memproses blocklist berukuran besar pada lingkungan produksi.
Full Changelog: 1.0.2...1.0.3