Log Perubahan
Setiap rilis, setiap fitur, setiap perbaikan, dalam satu log yang dapat digulir.
2026-04-26, Kepatuhan penuh rendering ISO/AIM/GS1 di setiap jenis kode
- Mengaudit setiap kode QR / 2D / 1D terhadap standar yang mengaturnya.
includetextpada bwip-js's default-nya false untuk setiap bcid, sehingga EAN/UPC/ITF-14 dirilis tanpa strip teks yang dapat dibaca manusia yang diwajibkan oleh ISO 15420 §5.1.2 + GS1 §5.4.4. Diaturincludetext: true+guardwhitespace: trueuntuk seluruh keluarga EAN/UPC, ditambahincludetext: trueuntuk ITF-14, Code 128, Code 39, Code 93, Codabar, VIN. - Zona tenang EAN-13 kini asimetris sesuai ISO 15420 Lampiran A (pada scale=4:
paddingleft: 44= 11 modul,paddingright: 28= 7 modul). EAN-8 / UPC-A / UPC-E memakai amplop simetris yang ditentukan spesifikasinya. PDF417 + SIM AAMVA mendapat zona tenang 2 modul sesuai ISO 15438 §5.5; Data Matrix mendapat 1 modul sesuai ISO 16022; Aztec mendapat 1 modul yang direkomendasikan (ISO 24778 membolehkan nol tapi membuat pemindai yang menyentuh tepi gagal membaca). QUIET_ZONE_MODULESQR dinaikkan dari 2 → 4, spesifikasi penuh ISO/IEC 18004 §6.3.7. Jalan pintas 2 modul adalah kompromi industri yang gagal mendeteksi prefix GS1 Digital Link pada sebagian pemindai laser industri. Micro QR + rMQR kini dirilis dengan zona tenang 2 modul (qreanhanya mengeluarkan grid telanjang, jadi kami menambahkannya manual direnderMicroQRResult).- Level ECC dikunci: Aztec di 23 % (default ISO 24778), PDF417 di level 5 (minimum GS1 untuk transportasi dan logistik). Mengunci terhadap perubahan default bwip-js di masa depan.
- Halaman referensi baru: /standards/barcode-rendering/. Referensi per simbologi yang mencakup zona tenang, HRI, ECC, dan check digit untuk seluruh 17 jenis, lengkap dengan tautan sumber primer untuk setiap standar ISO/AIM/GS1 yang dirujuk.
2026-04-26, Pengetatan gerbang deploy staging-first
- Deploy produksi untuk situs yang memiliki staging kini mengharuskan deploy staging terbaru sama persis dengan commit saat ini (working tree bersih di kedua sisi). Jendela 24 jam pada gerbang sebelumnya membiarkan deploy produksi yang tak berkaitan menumpang pada riwayat staging yang basi. Dilacak via SHA, fail-closed, override tetap
CF_DEPLOY_SKIP_STAGING_FIRST=1. - Pemeriksaan awal di
cf-deploy.pyuntukCLOUDFLARE_API_TOKEN, gagal cepat dengan petunjuksource ~/.envrcalih-alih membiarkan wrangler memunculkan error "non-interactive environment" yang membingungkan. - Verifikator konten setelah setiap deploy: mengambil URL produksi dan memastikan cache-buster-nya cocok dengan yang baru saja dicap ke
dist/. Menangkap kelas bug "CNAME salah" / "edge menyajikan cache basi" / "branch salah" yang diam-diam akan dilewatkan health check 200-OK.
2026-04-25, Perombakan UX seluler: header pratinjau menempel, lembar bawah pratinjau, CTA Unduh menempel
- Header pratinjau menempel di bagian atas halaman pada ponsel (≤768px). Selalu menampilkan thumbnail langsung QR ditambah status satu baris, "Isi formulir di bawah" saat tidak aktif, "QR Anda siap · Ketuk untuk mengunduh" saat kode dirender. Berdenyut sekali ketika QR pertama kali valid agar pengguna memperhatikannya. Memperbaiki masalah lama di mana pengunjung seluler tidak menyadari hasilnya dirender di bawah lipatan.
- Mengetuk bilah pratinjau (atau tombol Unduh menempel baru di bawah) membuka pratinjau sebagai lembar bawah, tombol unduh lebar penuh tersusun vertikal, tutup dengan menggeser ke bawah atau mengetuk latar, padding area aman untuk indikator beranda iOS.
- Penanganan keyboard lunak: pendengar visualViewport menandai
body.kb-opensaat keyboard muncul, bilah pratinjau menciut menjadi pil tipis, dan kolom yang difokuskan digulir ke tengah agar keyboard tidak pernah menutupi yang pengguna ketik. - Penyapu target sentuh pada ≤640px: ubin pemilih tipe ditingkatkan dari 14×8 / 0.78rem ke 16×10 / 0.82rem dan tinggi minimum 56px, tab panel dan tombol utama dibatasi minimum 44px, tombol ekspor disusun lebar penuh dengan minimum 48px di dalam lembar.
- Meta viewport mendapatkan
interactive-widget=resizes-content, dan dua aturan100vhdimigrasikan ke100dvhagar tata letak dapat diprediksi di peramban seluler dengan toolbar dinamis. - FAB gulir-ke-pratinjau lama dihapus, bilah pratinjau plus CTA menempel mengerjakan hal yang sama lebih langsung. Cache service worker dinaikkan ke v132. String baru diterjemahkan ke seluruh 25 bahasa.
- Kebersihan CSS: 203 deklarasi space bernilai tunggal di
style.cssdimigrasikan ke token--space-Nlewat codemod. Refactor murni, tanpa perubahan visual. - Plafon inline-style 89 → 85: empat atribut
style="text-transform:uppercase"pada input AAMVA / Code 39 / Code 93 / VIN diganti dengan kelas yang sudah ada.input-uppercase.
2026-04-19, Sapuan kepatuhan N16 (45 halaman), N3 batch 2, perbaikan regresi, ekor N3, pengungkapan AAMVA, persistensi state Expert, audit a11y
- Sapuan kepatuhan N16 penuh: seluruh 34 halaman landing skema pembayaran kini membawa daftar periksa kepatuhan + blok "kapan jangan menggunakan ini". Lintasan keempat (19 halaman) mencakup sisanya: Alipay + WeChat Pay (PBoC + SAFE), Boleto (BACEN + FEBRABAN), Mercado Pago (matriks regulator tujuh negara), Payconiq (NBB + PSD2), EPC/Girocode (EPC069-12 + ZAG), Apple Wallet + Google Wallet (program developer + FTC Endorsement + lokasi GDPR), Kakao Pay + Naver Pay + LINE Pay (FSC Korea + FSA Jepang + FSC Taiwan + BOT), GCash + Maya (BSP EMI + AMLC + QR Ph + SEC PH), JPQR (METI + FSA Qualified-Invoice), FPS HK (HKICL + HKMA + SFC Alert List), DuitNow (PayNet + BNM + LHDN e-Invoice), M-PESA (Safaricom + CBK + eTIMS + CMA), MoMo (SBV + AMLID + GDT e-Invoice), PayID (NPP + RBA + APRA + AUSTRAC + ASIC). Digabung dengan tiga lintasan sebelumnya (AAMVA / halaman Review / Coupon / Review Funnel / App Store / PayPal / Crypto / UPI / SEPA + Venmo / Cash App / Swiss QR-bill / PIX / PromptPay / EMVCo / TWINT + Bizum / PayNow / iDEAL / BLIK / Interac / MB WAY / Swish / Vipps), itu 45 halaman landing yang diblokir kepatuhan, setiap skema pembayaran di situs kini memiliki referensi regulator lokal, aturan klasifikasi merchant, kewajiban pajak / faktur, kerangka perlindungan konsumen, dan pagar "tanpa ajakan investasi" menunjuk regulator sekuritas yang tepat. Sub-batch pertama (7): Venmo (AUP / penyalahgunaan F&F / 1099-K / pelaporan Early Warning), Cash App (Cash for Business / permukaan teregulasi Bitcoin & Investing / Regulation E / penanda penipuan CFPB), Swiss QR-bill (SIX v2.3 / aturan QR-IBAN / MWSTG / retensi 10 tahun OR Art. 958f), PIX (BACEN Resolution 103/2021 / PJ vs PF / jendela refund MED / penipuan tempel-stiker / penanda investasi CVM), PromptPay (aturan BOT / ambang VAT THB 1.8M / pelaporan AMLO / pengungkapan FX lintas batas), EMVCo (MCC ISO 18245 / KYC acquirer / FIU nasional pada ketidakcocokan AID), TWINT (FINMA/AMLA / MROS / perlindungan konsumen KIG). Sub-batch kedua (8): Bizum (Bizum Negocios / SEPBLAC / factura / CNMV), PayNow (MAS Payment Services Act / pelaporan STRO / SGQR / PDPA), iDEAL (acquirer berlisensi / DNB / sengketa 13 bulan PSD2 / amal CBF / penegakan ACM), BLIK (Polski Standard Płatności / KNF / pelaporan GIIF / faktura VAT / RODO), Interac (Interac for Business / FINTRAC / PIPEDA / Quebec Bill 96 / penipuan CAFC), MB WAY (SIBS / Banco de Portugal / UIF / CMVM / GDPR), Swish (Getswish AB / Finansinspektionen / kassaregister Skatteverket / Swish-bedrägerier), Vipps (Vipps MobilePay AS / Finanstilsynet / Økokrim / Bokføringsloven / advarselsliste). Bergabung dengan blok kepatuhan sebelumnya pada AAMVA, Review Google/Yelp/TripAdvisor, Coupon, Review Funnel, App Store, PayPal, Crypto, UPI, SEPA. Cakupan total kini: 26 halaman landing.
- Lima halaman otoritas standar tambahan (N3 batch 2), SIM AAMVA, aktivasi eSIM (LPA), QR pedagang EMVCo, Micro QR / rMQR, e-invoice ZATCA. Hub kini memiliki 8 halaman referensi langsung yang mencakup spesifikasi inti.
- Dua regresi diperbaiki: (1) beranda otomatis menggulir ke bawah saat dimuat karena init
showCategory()memanggilscrollIntoView({block:"nearest"})pada chip kategori, diganti denganscrollLefthorizontal manual sehingga gulir halaman tidak pernah disentuh. (2) Pencarian tipe untuk "paym" mengembalikan nol hasil karena filter hanya memeriksa substring label + data-type, perbaikan DRY kini menggunakan kembali tabel sinonim CAT_SEARCH + TYPE_SEARCH yang sama yang digunakan command palette. - Ekor N3: halaman referensi gabungan baru /standards/non-qr-2d/ untuk Aztec (ISO/IEC 24778) + PDF417 (ISO/IEC 15438) + Data Matrix (ISO/IEC 16022). Tabel perbandingan berdampingan, matriks dukungan pemindai bawaan di iOS Camera / Android / Google Lens / imager industri / gerbang maskapai / pembaca DMV / pembaca DPM farmasi, panduan pilih-yang-tepat (Aztec untuk boarding pass, PDF417 untuk ASCII panjang di kertas datar, Data Matrix untuk DPM / farmasi, QR untuk kamera ponsel konsumen). Hub standar kini memiliki 9 halaman aktif, 0 draf.
- Pengungkapan progresif form AAMVA (tindak lanjut N19.3): form 25-input dipecah menjadi Wajib (yurisdiksi / lisensi / doctype / family / first / DOB), Direkomendasikan terlipat-terbuka (nama tengah + jalan + kota/negara bagian/zip + tanggal terbit/kedaluwarsa), Tuning Expert terlipat (sex/eye/height + class/restrictions/endorsements). Cocok dengan pola yang digunakan pada TOTP, HOTP, Aztec, PDF417, Swiss QR, EMVCo, GS1, SEPA.
- State tuning Expert tetap melintasi kunjungan (tindak lanjut N19.3): saat Anda membuka bagian Expert pada form mana pun, state terbuka disimpan ke
localStorage.qrExpertSectionsOpenberkunci tipe. Lain kali Anda memilih tipe itu, Expert sudah terbuka. Pendengartoggleyang didelegasikan pada.field-section[data-level="expert"], tanpa wiring per form. - Audit aksesibilitas internal (N8): lintasan WCAG 2.2 AA manual terhadap beranda, /print-size/, hub /standards/ baru + 9 halaman otoritas, dan 45 halaman landing skema pembayaran. Diverifikasi lulus pada target skip link, focus-visible, label form, nama tombol, peran ARIA, kontras AAA primer / AA+ redup. Memperbaiki lompatan level heading (tiga subhead
<h4>di dalam extra-fields vCard/MECARD dipromosikan ke<h3>untuk outline yang bersih). Temuan lengkap dipublikasikan di /accessibility/. - ZIP korpus publik (tindak lanjut N2): /proof/corpus.zip, fixtures JSON + CSV + metodologi + README, ~4 KB, dibangun ulang pada setiap deploy. Armada pemindai kini dapat mengunduh seluruh korpus dalam satu file alih-alih meng-clone repo. Tertaut dari /proof/corpus/ dengan tombol Unduh yang menonjol.
- Log pengesahan armada pemindai (tindak lanjut N2): baru docs/SCANNER_ATTESTATION.md, log tertanggal per-baris dari verifikasi perangkat/OS/aplikasi manual. Dimulai dengan 10 baris yang mencakup iPhone 15 Pro pada iOS 18.3, Pixel 8 pada Android 14, Zebra DS8100, Google Authenticator, 1Password. Tumbuh dengan setiap perangkat yang kami verifikasi.
- Realisme pratinjau dalam-generator (N19.6): toggle 4-chip ringkas di bawah pratinjau QR langsung, Default / Phone / Mono / Low contrast. Menerapkan filter CSS pada pratinjau (skala untuk Phone, grayscale untuk Mono, kontras berkurang untuk Low contrast) sehingga desainer melihat bagaimana QR berperilaku pada substrat berbeda tanpa meninggalkan generator. Tidak berdampak pada payload yang dikodekan, unduhan, atau salinan clipboard.
- Lebih banyak validator semantik (perpanjangan N19.4): cek Base32 rahasia HOTP + integer-non-negatif counter; SM-DP+ eSIM harus FQDN telanjang (tanpa https://, pemecah provisioning telepon umum); Matching ID eSIM menolak karakter
$(bertabrakan dengan pemisah field LPA). - Pengungkapan progresif diperluas ke UPI dan Crypto (perpanjangan N19.3): jumlah + catatan UPI dikelompokkan sebagai Direkomendasikan; jumlah + label crypto dikelompokkan sebagai Direkomendasikan. SIP, MMS, PromptPay, dan Lightning ditinjau dan dibiarkan datar, terlalu sedikit field untuk diuntungkan dari pengungkapan.
- Sapuan audit kualitas mencakup SEO, performa, keamanan, integritas tautan, dan kualitas kode (lintasan i18n ditangguhkan). Penulisan
cache.putservice worker kini berjalan di dalamevent.waitUntilsehingga tidak dapat dibatalkan di tengah navigasi; cache dinaikkan ke v121. Dialog cetak business-card beralih daridocument.writeke URLBlob. Handler klik berbagi dan unduh kartu dibungkus try/catch sehingga penolakan muncul sebagai toast alih-alih kegagalan diam. Timing magic-number (auto-buka hash design-card, rendering frame GIF, jeda unduh PNG ganda, revoke print-blob) diekstrak ke konstanta bernama. Bug CSS laten diperbaiki: selektor input.card-text-rowhanya cocok[type="text"], tetapi minifier HTML menghapus atribut defaulttype="text", ditambahkaninput:not([type])sehingga input tagline + caption BCD mempertahankan stylingnya di produksi. Dua deklarasi!importantberlebihan dihapus;console.warni18n yang berisik dibungkam. CLAUDE.md diperbarui, halaman bahasa pra-render kesite/{lang}/, tidak disajikan via penulisan ulang_redirects.
2026-04-18, Dorongan otoritas: hub /standards/ + 3 halaman standar, /proof/corpus/, penutupan Reviewer #6, Advanced workflow-first N19.1
- Mode Simple mendapat petunjuk halus "96 jenis lainnya di Advanced" di bawah grid 8 ubin. Mengklik tautan membalik toggle mode sehingga pengguna tidak menggulir kembali ke atas. Simple tetap di 8 ubin; Advanced tetap menjadi jalur ditemukannya ekor panjang.
- Daftar bullet CTA Pro ditulis ulang untuk mencerminkan apa yang sebenarnya dirilis: kode bergerbang kata sandi, aktivasi & kedaluwarsa terjadwal, analitik heatmap/cuaca/ROI/cohort, halaman statistik publik yang dapat dibagikan, grup kode untuk portofolio besar, webhook + REST API, multi-tim & log audit, SSO (SAML/OIDC) + provisioning SCIM. Bullet generik lama "Analitik scan / Alur kerja API / Tim" sudah hilang.
- Petunjuk "Save to Pro" di bawah generator kini menyebut password-gating, aktivasi terjadwal, analitik heatmap dan ROI, dan halaman statistik publik alih-alih hanya "analitik scan".
- Pengungkapan progresif pada generator lanjutan yang penuh field (N19.3): TOTP, HOTP, Aztec, PDF417, Swiss QR, dan EMVCo melipat tombol expert mereka (algoritma/digit/periode, level EC, kolom/compact, message, MCC/AID) di bawah bagian Expert tuning. GS1 Digital Link mengelompokkan AI 17/10/21 sebagai Direkomendasikan; SEPA memisahkan referensi (Direkomendasikan) dari BIC (Expert tuning). Ringkasan Expert yang terlipat menampilkan pil "expert" sehingga pengguna kuat melihat tombol ekstra tanpa mengklik.
- Profil tersimpan (N19.8): beri nama dan simpan nilai field saat ini dari generator lanjutan mana pun ke localStorage, daftar di panel Saved profiles di atas legenda kompatibilitas, dan muat dengan satu klik atau via command palette (Cmd/Ctrl+K). Penyimpanan adalah sisi klien saja; tidak ada yang meninggalkan peramban.
- Otoritas produksi cetak (N15): /print-size/ kini membawa panduan substrat (8 substrat × penalti ukuran × ECC), aturan palet aman-CMYK dengan anotasi level katalog hanya-CMYK/RGB, aturan luar-ruangan/signage (UV pudar, perilaku kamera cuaca dingin, sudut scan miring), protokol QA cetak 4-pemeriksaan, dan definisi nilai preflight bahasa polos ("D = akan gagal pada signage glossy di bawah 3 m").
- Pemagaran kepatuhan (N16): blok "Daftar periksa kepatuhan" + "Kapan jangan menggunakan ini" baru pada lima halaman landing yang ditandai reviewer, App Store (Apple 5.2 / kebijakan Play / distribusi TestFlight), PayPal (AUP / penyalahgunaan F&F / 1099-K / klasifikasi MSB), Bitcoin & Crypto (FATF Travel Rule / pendaftaran FinCEN/FCA / paparan uji Howey / OFAC), UPI (sirkular NPCI / GST / penipuan overlay / SEBI pada QR investasi), SEPA (kesesuaian EPC069-12 / hak pengembalian PSD2 / peringatan tanpa-mandat-berulang). Bergabung dengan blok kepatuhan yang sudah ada pada AAMVA, Review Google / Yelp / TripAdvisor, Coupon, Review Funnel.
- Tipe terbaru di command palette (N19.7): 8 tipe terakhir yang Anda pilih muncul lebih dulu saat Cmd/Ctrl+K dibuka dengan kueri kosong; dengan kueri parsial, tipe terbaru mendapat bonus peringkat kecil sehingga "tot" secara andal melompat ke alur OTP yang paling sering Anda gunakan. Juga ditandai dengan chip kategori "Recent" sehingga peningkatan terlihat, bukan ajaib. Dilacak hanya di localStorage.
- Pemolesan mode Simple (N6): Simple kini juga menyembunyikan panel Saved profiles (bukan konsep pemula) dan tab Batch. Item yang sudah disembunyikan tidak berubah (pencarian tipe, preset industri, legenda kompatibilitas, tab kategori, chip kompat).
- Strip kepercayaan empat-pilar (N7): strip klaim atas-halaman ringkas dari 5 item ke 4, masing-masing secara eksplisit membawa label pilarnya, "Benar-benar gratis, tanpa daftar, tanpa paywall", "Mengutamakan privasi, 0 permintaan keluar, verifikasi langsung", "Aman produksi, kompatibilitas diuji April 2026", "Tanpa lock-in, QR cadangan statis, ekspor kapan saja". Tautan Comparison-updated dijatuhkan dari strip (itu sinyal kredibilitas, bukan pilar) tetapi masih hidup di nav + footer.
- Callout tegas "Gunakan ini jika / Jangan gunakan" (N19.11) di bagian atas form lanjutan padat-field, Data Matrix, Aztec, PDF417, TOTP, HOTP, eSIM, GS1. Aksen oranye, dua klausa, sebelum input field apa pun. Menggantikan pola di mana prosa penjelas berada di bagian bawah dan pengguna hanya membacanya setelah mereka selesai mengetik.
- Spanduk kapabilitas (N19.9) pada panel Style untuk simbologi non-QR, chip eksplisit + judul ("Tanpa styling, barcode polos saja") + deskripsi, menggantikan petunjuk paragraf tunggal lama dengan sesuatu yang dapat dipindai secara sekilas.
- Validasi semantik (N19.4): validator rahasia Base32 TOTP, cek prefix CH/LI Swiss QR IBAN + panjang 21-karakter, checksum mod-97 IBAN SEPA (menangkap digit yang salah ketik), dan peringatan lintas-field WiFi Enterprise saat EAP dipilih tetapi identitas kosong. Inline, non-blocking, menggunakan kembali registry VALIDATION_RULES yang ada.
- QR Lab kini satu klik dari Unduh (N5), chip border putus ("Uji sebelum Anda cetak di QR Lab →") duduk inline dengan tombol unduh sehingga verifikasi terlihat di titik ekspor.
- Advanced terbuka dengan tugas-pertama (N19.1): strip kategori kini diorganisir berdasarkan apa yang sedang Anda lakukan alih-alih simbologi apa itu. Sembilan ember alur kerja, Berbagi sehari-hari, Acara & tempat, Media & file, Pemasaran & review, WiFi & telekom, Pembayaran & perbankan, Retail & GS1, Boarding & ID, Auth & dev, menggantikan taksonomi simbologi lama (Sehari-hari / Bisnis / Pembayaran / Identitas / Keamanan / Industrial / Standar Lanjutan). Semua 105 tombol tipe dipetakan ulang; grid tipe footer dikelompokkan ulang agar cocok.
- Dorongan otoritas (N3): hub /standards/ baru dengan delapan halaman referensi penuh, GS1 Digital Link (Sunrise 2027, validator check-digit GTIN langsung), TOTP & HOTP (RFC 6238 / 4226, validator entropi Base32 langsung, kompatibilitas authenticator), Swiss QR-bill (SIX IG v2.3, validator IBAN CH/LI langsung dengan deteksi QR-IBAN), SIM AAMVA (CDS v10, tabel kode elemen, tabel IIN, kerangka penggunaan sah), aktivasi eSIM (LPA) (GSMA SGP.22, kompatibilitas iOS 17.4+ / Android 13+), QR pedagang EMVCo (struktur MPM / CPM, derivatif regional PIX/UPI/PromptPay/SGQR/DuitNow, tabel MCC), Micro QR & rMQR (ISO/IEC 18004 Annex M + ISO/IEC 23941, grafik kapasitas, kompatibilitas pemindai khusus), dan e-invoice ZATCA (FATOORA Saudi, tag TLV 01–09, Fase 1 vs Fase 2). Setiap halaman: tautan spesifikasi + vektor uji kanonis + validator langsung jika berlaku + jebakan + kompatibilitas pemindai + tinjau-berikutnya tertanggal. Langkah pertama menuju tujuan otoritas tingkat ensiklopedia.
- Skafold korpus uji publik (N2): halaman /proof/corpus/ baru mendokumentasikan metodologi yang dapat digunakan siapa saja untuk mengaudit klaim kompatibilitas pemindai, unduh fixtures, regenerasi QR, scan dengan armada Anda sendiri, laporkan ketidaksesuaian. Tabel hasil-scan-yang-diharapkan 18-baris yang dikurasi melintasi iOS Camera, Android Camera, dan pemindai pro. Menautkan /test-vectors/ (JSON developer) dan /standards/ sebagai lapisan otoritas di atas.
- Terjemahan tertunda: salinan N14 dan N17 sudah ada dalam 25 bahasa; semua lainnya dari wrap Reviewer #6 hari ini (N19.3 / N19.4 / N19.7 / N19.8 / N19.9 / N19.11 / N5 / N6 / N7 / N15 / N16 / Pro SSO/SCIM) hanya tersedia dalam bahasa Inggris untuk saat ini dan kembali ke Inggris di bahasa lain hingga ronde terjemahan berikutnya.
- Item Reviewer #6 sebelumnya yang dirilis hari ini di commit sebelumnya: grid ubin jobs-first (N14), kalimat brand "Alat QR paling terpercayadi internet" (N17), command palette (N19.2), preset expert (N19.5), inspector payload (N19.10), sapuan format kanonis <title> (N20).
2026-04-17, Keep-Alive aktif, halaman roadmap + dukungan Pro, perbaikan audit webhook
- Tier Keep-Alive aktif di Pro: $4/bulan, $36/tahun, atau $240 Decade (prabayar 10 tahun, $2/bulan efektif). Mempertahankan kode yang ada dengan cooldown edit destinasi 30 hari; tanpa kode baru, tanpa kursi, tanpa API. Migration 007, tiga produk Stripe, jalur webhook untuk pembayaran satu kali Decade, gerbang plan di seluruh dashboard/codes/edit. Membatalkan banner "Ships Q3 2026" di /compare/ dan /no-lock-in/.
- Halaman baru di pro.qr.abundera.ai/roadmap/: apa yang sudah dirilis, komitmen Q3/Q4 dengan kriteria batal, daftar eksplisit hal-hal yang tidak akan kami buat.
- Halaman baru di pro.qr.abundera.ai/support/: target waktu respons per-tier, alamat pengungkapan keamanan, ruang lingkup.
- Perbaikan webhook Stripe: ras idempotensi (dapat menelan pembayaran yang dicoba ulang), dedup via SELECT sebelum penanganan, INSERT pada kesuksesan. Handler pembayaran Decade melempar pada price_id yang hilang/tidak diketahui atau tier yang tidak cocok alih-alih membatalkan diam-diam.
DEFAULT_SEAT_LIMITtidak terdefinisi di terima undangan tim. Toleransi tanda tangan 60s → 300s.incomplete_expireddipetakan ketrialing(sebelumnyaexpired). - Dokumen:
ABUNDERA_JWT_AUDIENCESdidokumentasikan sebagai wajib; skemaPLAN_PRICE_MAPdidocs/INTEGRATIONS.md; menghapus referensiABUNDERA_SERVICE_SECRETyang tidak digunakan. - Tes: 70 lulus. Menambahkan 8 untuk predikat Keep-Alive dan cooldown 30 hari.
2026-04-16, Peluncuran Pro, perombakan tangga harga, tindak lanjut review eksternal
- Portal Pro aktif di pro.qr.abundera.ai.
- Tangga harga (bulanan / ditagih tahunan per bulan): Solo $12/$9, Business $39/$29, Team $129/$99, Agency $449/$349, Enterprise $1.800/$1.500. Tahunan adalah pilihan default pada grid harga.
- Batas scan bulanan eksplisit (50K / 250K / 1M / 4M / 25M) menggantikan "tanpa batas". Melebihi batas tidak merusak pengalihan; kami mengukur kelebihan pada tarif daftar tier (USD 0,06–0,18 per 1K scan).
- Setiap tier memiliki jumlah kode eksplisit (500 / 2.500 / 15K / 75K / 500K), tanpa "tanpa batas*" cetak halus.
- 13 halaman landing pembayaran ditambahkan: Apple Wallet, Google Wallet, EPC Girocode, BLIK, Interac, MB WAY, GCash, Maya, Kakao Pay, Naver Pay, LINE Pay, iDEAL, Boleto. Jumlah tipe 91 → 104; sitemap kini 3.224 URL.
- Scan-preflight diperluas dari 4 kondisi generik menjadi 8 skenario spesifik-pekerjaan (stiker menu, poster jendela, lanyard, tag rak, label gudang, signage luar-ruangan, kemasan, kartu nama). Nilai C/D/F menampilkan modal sebelum-unduh.
- Matriks harga /compare/ dipecah menjadi enam grup yang cocok-kapasitas. Entri pesaing ditambahkan untuk Bitly, Flowcode, Uniqode, QR Code Chimp, QRTIGER, masing-masing tertanggal dan ditandai untuk verifikasi ulang bulanan. Biaya bulanan per-kode ditampilkan di setiap baris.
- Pemeriksaan count-drift di skrip pra-deploy: memindai semua halaman yang dihasilkan di bawah
site/untuk jumlah tipe yang dikodekan keras. Drift 91/104 di /compare/ dirilis karena pemeriksaan lama hanya mengamati tiga halaman. - Pembingkaian situs Pro: "Gratis untuk disimpan. Pro untuk diubah." dibawa melalui /no-lock-in/, /static-vs-dynamic/, dan CTA Pro beranda.
- Produk Stripe dibuat via skrip
stripe-setup.pyidempoten (Solo + Team dinaikkan ke rev 2 untuk jumlah baru).PLAN_PRICE_MAPmenyimpan ID harga lama dan baru sehingga setiap pelanggan yang ada tetap terpetakan. - Lainnya: strip detail kompat di atas field generator, strip kepercayaan beranda, cap kesegaran di setiap halaman, halaman skeleton /accessibility/, paket preset industri /for/ (8), petunjuk ditemukannya Wizard/QR Lab, audit jumlah (120 → 336 ikon, 24 → 50 preset BCD), pembersihan bahasa repo (repo bersifat privat; "Kode generator open source" → "Kode sisi-klien yang dapat diaudit di peramban Anda"), gambar OG dibuat ulang dengan QR acara iCalendar yang valid.
2026-04-15, Simple/Advanced, /compare/, Save-to-Pro
- Toggle Simple / Advanced di beranda. Simple mengurasi 8 tipe sehari-hari (URL, WiFi, vCard, Email, Phone, SMS, Event, Text); Advanced memulihkan 104 penuh. Mode menempel di
localStorage; halaman landing untuk tipe non-Simple beralih otomatis. - Matriks pesaing /compare/ dirilis: fitur-demi-fitur melawan QR Code Generator, QRCode Monkey, dan Uniqode. Tertanggal, ditinjau ulang bulanan.
- Tombol "Save to Pro" di situs gratis: satu klik mempromosikan kode yang dihasilkan ke portal Pro. Status round-trip via hash URL; pengguna belum-masuk mendarat kembali di generator dengan pekerjaan mereka tersimpan.
- Panah gulir tab kategori di desktop; gulir halus di seluler.
- Pemulihan riwayat beralih otomatis ke Advanced saat tipe kode tersimpan tidak tersedia di mode Simple.
- Salinan CTA Pro dilunakkan; cerita anti-sandera (QR cadangan statis, masa tenggang 90 hari, portabilitas domain) ditarik ke depan.
2026-04-14, Portal Pro online, 3 tipe baru, perbaikan autofill
- Portal Pro (
pro.qr.abundera.ai) online ujung-ke-ujung. - Tiga tipe situs gratis baru: M-PESA Kenya (EMVCo MPM), Video Meeting (pintasan Zoom/Meet/Teams/Webex), Coupon/Promo Code.
- Tipe GS1 Digital Link kini mendukung seluruh 12 Application Identifier yang diwajibkan Sunrise-2027.
- Halaman SEO baru:
/static-vs-dynamic/,/no-lock-in/(kontraktual: masa tenggang 90-hari, ekspor satu klik, hapus GDPR 30-hari, QR cadangan statis). - Perbaikan autofill (percobaan keenam): blok field per-tipe adalah elemen
<form>sebenarnya dengan tokenautocompletemereka sendiri; form tidak aktif mendapatdisplay: nonesehingga Chrome tidak menandai input di luar layar. Pengelompokan vertikal vCard/Address/Contact/WiFi-Enterprise kini bekerja di Chrome, Safari, Firefox. Harness Playwright pada 0 pelanggaran. - Funnel review: dropdown platform (Google/Yelp/TripAdvisor) dengan salinan placeholder per-platform.
- Wizard: 8 referensi slug hasil yang rusak diperbaiki.
- Header/footer disatukan via partial bersama; halaman alat (Wizard, QR Lab, Test Vectors) dipindahkan ke sistem template yang sama.
- Pemeriksaan pra-deploy: validasi tautan internal + penjaga
showToast()Inggris mentah. - Perbaikan BCD: stabilitas tata letak vertikal, regresi UI halaman landing, label tautan RFC, artefak watermark.
- HTML halaman landing yang dihasilkan tidak lagi dilacak git (masih dirilis; git melacak template dan generator).
2026-04-13, paritas 25-bahasa, desain ulang header/footer, harness Playwright
- 6.660 kunci fallback Inggris diterjemahkan di 25 file bahasa. Halaman landing non-Inggris tidak lagi jatuh kembali ke string Inggris. Pipeline terjemahan direfaktor menjadi validator/perencana.
- i18n diperluas ke halaman alat: Wizard, QR Lab, dan Test Vectors kini memiliki 25 varian bahasa, dengan tag hreflang dan entri sitemap.
- Harness round-trip Playwright: menghasilkan kode untuk setiap tipe di setiap bahasa, mendekode canvas, memeriksa field. 0 pelanggaran.
- Desain ulang header/footer: header ramping, footer 3-kolom yang cocok dengan pola sign.abundera.ai. Drawer hamburger seluler kini menampilkan item nav saat dibuka (sebelumnya rusak).
- Klik pratinjau QR → lightbox zoom. Label menampilkan nama tipe + input pertama (sebelumnya menampilkan payload mentah).
- Lintasan pertama perbaikan autofill (dirilis dengan benar 2026-04-14).
- Pencarian tipe memunculkan tipe lanjutan; tutup saat dipilih; tab kategori kosong disembunyikan dalam mode Populer; pemulihan riwayat mengalihkan tipe inline alih-alih mengarahkan ulang.
2026-04-12, Paritas 26 bahasa, 13 jenis muatan baru, 3 barcode 2D non-QR
- Paritas 26 bahasa penuh: setiap kunci Inggris kini ada di setiap file bahasa (1.302 kunci × 25 bahasa). 5.533 entri terjemahan disuntikkan dalam 4 pass.
- Deduplikasi: 113 blok kunci duplikat usang dihapus dari 19 file bahasa.
- Perbaikan header halaman info: blog/about/privacy/changelog/dll. menggunakan
.brand/.header-inner/.brand-text, kelas tanpa CSS yang ditentukan. Kedua generator diperbaiki untuk mengeluarkan markup.logoyang sama seperti aplikasi utama (SVG orbit 3 lingkaran + wordmark Abundera QR + navigasi Generator + Sign). - 4 jenis URI berbasis standar: HOTP (RFC 4226), eSIM (GSMA SGP.22 LPA), SIP/SIPS (RFC 3261), MMS/MMSTO. Encoder TOTP direfaktor ke pembantu
_otpUriFromValuesbersama untuk DRY. - WPA2/WPA3-Enterprise WiFi: memperluas format WIFI: dengan metode EAP, autentikasi fase-2, identitas, identitas anonim.
- 6 jenis pembayaran regional: Alipay, WeChat Pay, Swish (SE), Vipps (NO), Mercado Pago (LatAm), Payconiq (Benelux).
- 3 barcode 2D non-QR: Data Matrix (ISO 16022), Aztec Code (ISO 24778), PDF417 (ISO 15438). bwip-js (~1 MB) hanya dimuat secara malas saat jenis ini dipilih.
- Bagian showcase 26 bahasa ditambahkan di beranda dengan tautan dalam skrip asli.
- Skrip audit pra-deploy mendapat pemeriksaan sinkronisasi
BATCH_VALID_TYPES+ penjagashowToast()Inggris mentah. - Footer + halaman landing + kunci i18n (sumber Inggris) untuk semua 13 jenis baru.
2026-04-11, pengambilan URL foto BCD, pratinjau sticky, preset yang dapat diperluas
- BCD: kolom URL foto kini mengambil gambar jarak jauh sebagai data URL, mencegah pencemaran canvas untuk pemuatan lintas asal.
- Layout desktop BCD: panel pratinjau kini
position: sticky. - Grid preset BCD kini dapat diperluas, awalnya menampilkan 12 layout dengan toggle tampilkan semua.
- Input slogan + keterangan QR didesain ulang: label bertumpuk + input lebar penuh.
- Lencana keterpindaian dinaikkan dari
bottom: -24pxke-18pxagar tidak menutupi tombol salin. - Instruksi CSV batch kini menyebutkan Google Sheets, Excel, Numbers secara eksplisit.
2026-04-08, pustaka ikon vertikal industri
- 24 ikon logo pusat baru (96 → 120) untuk perawatan kesehatan, makanan & minuman, teknologi, keuangan.
- 10 preset layout BCD baru (40 → 50): Concrete, Honey, Indigo, Luxe, Midnight II, Ocean II, Slate, Verdant, Wine, Candy.
- Perbaikan bug strategi cache-buster: parameter
?v=padapage-init.js+lang-redirect.jstidak ada di halaman landing, menyebabkan muat modul basi setelah deploy. Diperbaiki.
2026-04-04, latar belakang gradien BCD + bagian belakang kartu + 12 preset baru
- BCD: 12 preset baru (Dark Mode, Pastel, Ocean, Cherry, Slate, Emerald, Amber, Mono, Rose, Midnight, Sand, Carbon). Total 36 preset.
- Latar belakang gradien yang dapat dikontrol pengguna dengan pemilih warna kedua.
- Rendering bagian belakang kartu dengan teks perusahaan + slogan + CTA.
- Baris ikon sosial (LinkedIn / X / Instagram).
- Blok alamat dari kolom vCard.
- Gambar mini preset visual, setiap tombol preset kini merender canvas kecil.
2026-03-29, perombakan BCD + ekspor 600 DPI
- Business Card Designer bagian akordion yang dapat dilipat, pratinjau seluler sticky, footer ekspor sticky.
- Input warna hex dengan sinkronisasi dua arah pemilih warna, sampel palet warna.
- 4 bentuk foto (lingkaran, persegi, membulat, heksagon).
- Resolusi ekspor ditingkatkan menjadi 600 DPI untuk output cetak yang tajam.
- Menu kebab: ekspor template, impor template, kejutkan saya, bagikan kartu, cetak lembar (10× US Letter + A4).
- Pemangkasan foto dipaksa persegi. Penjaga data minimum sebelum membuka desainer.
- Preset BCD ditingkatkan: 8 preset baru yang berbeda secara visual (Neon, Art Deco, Sunset, Forest, Brutalist, Kraft, Nordic, Retro 80s). Total 24 preset.
2026-03-22, 20 jenis QR baru + Link-in-Bio + perbandingan pesaing
- 20 jenis QR baru (35 → 55): YouTube, Apple Music, Google Review, Yelp Review, TripAdvisor, Venmo, Cash App, Support/Tip Jar (Ko-fi/Patreon/BMAC/Liberapay), TWINT, Bizum, PayNow (SG), PayID (AU), ZATCA (SA), BIP-21 Bitcoin + Lightning, webcal://, JPQR (JP), HKFPS (HK), DuitNow (MY), MoMo (VN), Link-in-Bio.
- Link-in-Bio merender halaman bio lengkap dari hash URL QR, tanpa backend, tanpa akun, tanpa pelacakan.
- Widget iframe /embed/ (postMessage API untuk integrasi halaman induk).
- Halaman perbandingan pesaing /vs/ (varian 26 bahasa).
- Paket npm @abundera/qr + CLI dengan 25 encoder jenis.
2026-03-15, 96 ikon logo pusat + 5 bahasa baru
- 96 ikon logo pusat (12 → 96): kripto, komunikasi, media, utilitas, perdagangan, transportasi, alam, makanan, orang, acara, 12 wajah emoji, 18 glyph jaringan sosial.
- 5 bahasa baru (21 → 26): Swedia, Ceko, Denmark, Norwegia, Finlandia. 1.106 kunci masing-masing.
- Ekspor EPS (Level-2 PostScript tertanam JPEG, dikodekan ASCII85) untuk alur kerja percetakan.
- Ekspor GIF animasi (gif.js, pelangi 8 frame).
- Ekspor SVG BCD, ekspor JPG BCD.
2026-03-08, audit platform + pemindaian aksesibilitas
Sprint perbaikan bug: 3 KRITIS + 7 TINGGI + 10 SEDANG masalah diselesaikan.
- Perbaikan pelanggaran skrip inline CSP di semua 55 halaman landing, dipindahkan ke atribut body
data-qr-preselect. - Perbaikan bug cache stale Service Worker.
- Perbaikan desinkronisasi tipe form saat mengklik pil BCD di halaman landing non-vCard.
- Peningkatan visibilitas gambar latar belakang (slider opasitas, modul pada alpha 90%, routing modal crop).
- Overflow modal crop di seluler.
- Pembajakan scroll mouse oleh zoom roda (dihapus sepenuhnya).
- Kebocoran IP avatar dimitigasi (referrerpolicy + header no-referrer).
- Perbaikan jaringan terbuka WiFi batch, paritas field batch MeCard, validasi base32 TOTP.
- Target sentuh WCAG 2.5.8 (minimum 44×44 untuk pointer kasar).
- Pemindaian aria-hidden pada 87 SVG dekoratif.
- Menghormati prefers-reduced-motion.
- Toast aria-live, cincin focus-visible, navigasi keyboard pemangkasan, tombol Home/End di menu overflow.
- Optimasi preload font.
2026-03-01, 15 jenis berbasis standar + validator keterpindaian
- 15 jenis QR baru: TOTP/2FA, Swiss QR-bill, PIX (Brasil), PromptPay (Thailand), pedagang generik EMVCo, Lightning BOLT11, kunci publik SSH, kunci publik OpenPGP, konfigurasi WireGuard, GS1 Digital Link, Spotify, Fediverse, Geo URI, Magnet, iCalendar lengkap.
- Validator keterpindaian, menjalankan jsQR pada canvas yang dirender dan memberi peringatan saat dekoding gagal.
- Fallback URL yang dapat dicetak, toggle menambahkan URL target sebagai teks biasa di bawah QR.
- jsQR dimuat secara malas (menghemat 262 KB payload awal).
2026-02-22, editor gradien multi-henti + warna per mata
- Editor gradien multi-henti (hingga 5 warna).
- Warna dalam/luar bebas per mata.
- Mode QR gambar latar belakang (slider opasitas, EC=H dipaksa otomatis).
- Zoom cubit pada canvas pratinjau.
- Web Share API untuk kode QR dan kartu nama.
- Format ekspor WebP.
- Undo/redo (Ctrl/Cmd-Z, buffer 50 langkah).
- Tombol template acak (kejutkan saya).
2026-02-15, halaman privasi & keamanan + penguatan i18n
- 4 halaman kepercayaan baru: /privacy/, /terms/, /security/, /about/, dalam semua 21 bahasa.
- /.well-known/security.txt diterbitkan.
- 29 string Inggris yang dikodekan keras diganti dengan panggilan
qrT(); ~100 kunci i18n baru diterjemahkan. - Skrip inline dieksternalisasi, CSP diperkuat.
2026-02-08, aksesibilitas modal + manajemen fokus
- Perangkap fokus pada semua 3 modal (pemangkasan, BCD, dialog kustom).
- Pemolesan navigasi keyboard di menu overflow BCD, pemilih bahasa, dan pemilih jenis.
- Perbaikan bug kritis: border bingkai SVG dirender meleset satu piksel, kerentanan XSS di pratinjau zoom batch, kesalahan
btoa()Latin1 saat mengklik logo preset.
2026-02-01, peluncuran pertama
- Abundera QR diluncurkan dengan 20 jenis QR, 40 template, pembuatan CSV batch (500 kode), Business Card Designer (300 DPI), 20 bahasa, 420 halaman landing statis.
- Sikap mengutamakan privasi: 100% sisi klien, tanpa akun, tanpa pelacakan, tanpa kode pengalihan dinamis.