Registro delle modifiche
Ogni rilascio, ogni funzionalità, ogni correzione, in un unico log scorrevole.
2026-04-26, Conformità di rendering ISO/AIM/GS1 completa su ogni tipo di codice
- Auditati tutti i codici QR / 2D / 1D rispetto al loro standard di riferimento.
includetextdi bwip-js's è false di default per ogni bcid, perciò EAN/UPC/ITF-14 venivano pubblicati senza la striscia di testo leggibile che ISO 15420 §5.1.2 + GS1 §5.4.4 richiedono. Impostatiincludetext: true+guardwhitespace: trueper tutta la famiglia EAN/UPC, oltre aincludetext: trueper ITF-14, Code 128, Code 39, Code 93, Codabar, VIN. - Le zone tranquille di EAN-13 sono ora asimmetriche secondo ISO 15420 Allegato A (
paddingleft: 44= 11 moduli,paddingright: 28= 7 moduli a scale=4). EAN-8 / UPC-A / UPC-E usano gli involucri simmetrici nominati dalle rispettive specifiche. PDF417 + patente AAMVA ricevono zone tranquille di 2 moduli secondo ISO 15438 §5.5; Data Matrix riceve 1 modulo secondo ISO 16022; Aztec riceve 1 modulo raccomandato (zero ammesso da ISO 24778 ma rompe gli scanner che toccano il bordo). - Il
QUIET_ZONE_MODULESdi QR è salito da 2 → 4, la specifica completa ISO/IEC 18004 §6.3.7. La scorciatoia a 2 moduli era un compromesso del settore che fallisce il riconoscimento del prefisso GS1 Digital Link su alcuni scanner laser industriali. Micro QR + rMQR ora vengono pubblicati con una zona tranquilla di 2 moduli (qreanemette la griglia nuda, quindi la aggiungiamo manualmente inrenderMicroQRResult). - Livelli ECC bloccati: Aztec al 23% (default ISO 24778), PDF417 al livello 5 (minimo GS1 trasporti e logistica). Blocco contro futuri drift di bwip-js.
- Nuova pagina di riferimento: /standards/barcode-rendering/. Riferimento per simbologia che copre zone tranquille, HRI, ECC e cifre di controllo per tutti i 17 tipi, con link alla fonte primaria per ogni standard ISO/AIM/GS1 citato.
2026-04-26, Irrigidito il gate di deploy staging-first
- I deploy in produzione dei siti con staging ora richiedono che l'ultimo deploy in staging corrisponda esattamente al commit corrente (working tree pulito su entrambi i lati). La finestra di 24 ore del gate precedente permetteva a deploy di produzione non correlati di poggiare su una storia di staging stantia. Tracciato via SHA, fail-closed, l'override resta
CF_DEPLOY_SKIP_STAGING_FIRST=1. - Controllo preliminare in
cf-deploy.pyperCLOUDFLARE_API_TOKEN, fallisce subito con un suggerimentosource ~/.envrcinvece di lasciare che wrangler restituisca il suo criptico errore "non-interactive environment". - Verificatore di contenuto post-deploy a ogni deploy: scarica l'URL live e conferma che il suo cache-buster corrisponda a quello appena impresso in
dist/. Cattura la classe di bug "CNAME sbagliato" / "edge che serve cache stantia" / "branch sbagliato" che il controllo di salute 200-OK lascerebbe passare in silenzio.
2026-04-25, Revisione UX mobile: intestazione di anteprima fissa, foglio inferiore di anteprima, CTA Scarica fisso
- Intestazione di anteprima fissa in cima alla pagina sui telefoni (≤768px). Mostra sempre una miniatura live del QR più uno stato su una riga, "Compila il modulo qui sotto" in attesa, "Il tuo QR è pronto · Tocca per scaricare" appena un codice è renderizzato. Pulsa una volta quando il QR diventa valido per la prima volta perché gli utenti se ne accorgano. Risolve il problema di vecchia data per cui i visitatori da mobile non si accorgevano che il risultato era stato renderizzato sotto la piega.
- Toccare la barra di anteprima (o il nuovo pulsante Scarica fisso in basso) apre l'anteprima come foglio inferiore, pulsanti di download a tutta larghezza impilati verticalmente, chiusura con scorrimento verso il basso o tap sullo sfondo, padding di safe area per l'indicatore home di iOS.
- Gestione della tastiera virtuale: un listener visualViewport applica
body.kb-openquando appare la tastiera, la barra di anteprima si comprime in una pillola sottile e i campi a fuoco scorrono al centro per non essere mai nascosti dalla tastiera. - Revisione delle aree tattili a ≤640px: i riquadri del selettore di tipo passano da 14×8 / 0.78rem a 16×10 / 0.82rem con altezza minima 56px, le tab di pannello e i pulsanti principali al pavimento di 44px, i pulsanti di esportazione si impilano a tutta larghezza con pavimento di 48px dentro il foglio.
- Il meta viewport guadagna
interactive-widget=resizes-contente le due regole100vhsono migrate a100dvhper un layout prevedibile nei browser mobile con barre dinamiche. - Il vecchio FAB di scorrimento all'anteprima è rimosso, la barra di anteprima più il CTA fisso coprono lo stesso compito in modo più diretto. Cache del service worker portata a v132. Nuove stringhe tradotte in tutte le 25 lingue.
- Igiene CSS: 203 dichiarazioni di spaziatura a valore singolo in
style.cssmigrate a token--space-Ntramite codemod. Refactor puro, nessuna variazione visiva. - Tetto degli stili inline 89 → 85: quattro attributi
style="text-transform:uppercase"sugli input AAMVA / Code 39 / Code 93 / VIN sostituiti con la classe esistente.input-uppercase.
2026-04-19, Sweep di conformità N16 (45 pagine), batch 2 di N3, fix di regressione, coda N3, divulgazione AAMVA, persistenza stato Expert, audit a11y
- Sweep di conformità N16 completo: tutte le 34 landing page di schemi di pagamento ora portano blocchi compliance-checklist + "quando non usarlo". Il quarto passaggio (19 pagine) copre il resto: Alipay + WeChat Pay (PBoC + SAFE), Boleto (BACEN + FEBRABAN), Mercado Pago (matrice di sette regolatori), Payconiq (NBB + PSD2), EPC/Girocode (EPC069-12 + ZAG), Apple Wallet + Google Wallet (developer-program + FTC Endorsement + GDPR location), Kakao Pay + Naver Pay + LINE Pay (FSC coreana + FSA giapponese + 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). Combinato con i tre passaggi precedenti (AAMVA / Review pages / 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), sono 45 landing page con compliance bloccato, ogni schema di pagamento sul sito ora ha riferimenti al regolatore locale, regole di classificazione del commerciante, doveri fiscali / di fatturazione, framework di tutela del consumatore e una protezione "niente sollecitazione di investimento" che punta al regolatore di valori mobiliari corretto. Primo sub-batch (7): Venmo (AUP / abuso F&F / 1099-K / segnalazione Early Warning), Cash App (Cash for Business / superfici regolate Bitcoin & Investing / Regulation E / segnalazione frode CFPB), Swiss QR-bill (SIX v2.3 / regole QR-IBAN / MWSTG / conservazione 10 anni OR Art. 958f), PIX (BACEN Resolution 103/2021 / PJ vs PF / finestra di rimborso MED / frode con sticker sovrapposto / segnalazione investimento CVM), PromptPay (regole BOT / soglia IVA THB 1,8M / segnalazione AMLO / disclosure FX cross-border), EMVCo (ISO 18245 MCC / KYC dell'acquirer / FIU nazionale su mismatch AID), TWINT (FINMA/AMLA / MROS / KIG tutela consumatore). Secondo sub-batch (8): Bizum (Bizum Negocios / SEPBLAC / factura / CNMV), PayNow (MAS Payment Services Act / segnalazione STRO / SGQR / PDPA), iDEAL (acquirer autorizzato / DNB / disputa PSD2 13 mesi / CBF organizzazioni benefiche / enforcement ACM), BLIK (Polski Standard Płatności / KNF / segnalazione GIIF / faktura VAT / RODO), Interac (Interac for Business / FINTRAC / PIPEDA / Quebec Bill 96 / frode CAFC), MB WAY (SIBS / Banco de Portugal / UIF / CMVM / GDPR), Swish (Getswish AB / Finansinspektionen / Skatteverket kassaregister / Swish-bedrägerier), Vipps (Vipps MobilePay AS / Finanstilsynet / Økokrim / Bokføringsloven / advarselsliste). Si unisce ai blocchi di conformità preesistenti su AAMVA, Google/Yelp/TripAdvisor Review, Coupon, Review Funnel, App Store, PayPal, Crypto, UPI, SEPA. Copertura totale ora: 26 landing page.
- Cinque altre pagine di riferimento agli standard (N3 batch 2), patente AAMVA, attivazione eSIM (LPA), QR commerciante EMVCo, Micro QR / rMQR, e-fattura ZATCA. L'hub ora ha 8 pagine di riferimento live che coprono le specifiche centrali.
- Due regressioni risolte: (1) la homepage scorreva automaticamente verso il basso al caricamento perché l'init di
showCategory()chiamavascrollIntoView({block:"nearest"})sul chip della categoria, sostituito con unoscrollLeftorizzontale manuale così lo scorrimento di pagina non viene mai toccato. (2) La ricerca di tipo per "paym" restituiva zero risultati perché il filtro controllava solo le sottostringhe di label + data-type, il fix DRY ora riusa le stesse tabelle di sinonimi CAT_SEARCH + TYPE_SEARCH che usa la palette di comandi. - Coda N3: nuova pagina di riferimento combinata /standards/non-qr-2d/ per Aztec (ISO/IEC 24778) + PDF417 (ISO/IEC 15438) + Data Matrix (ISO/IEC 16022). Tabella di confronto affiancata, matrice di supporto scanner nativi su iOS Camera / Android / Google Lens / imager industriali / gate aeroportuali / lettori DMV / lettori DPM farmaceutici, guida per scegliere il giusto (Aztec per carte d'imbarco, PDF417 per ASCII lungo su carta piatta, Data Matrix per DPM / farmaceutico, QR per fotocamere consumer). L'hub standards ora ha tutte le 9 pagine live, 0 in bozza.
- Disclosure progressiva del modulo AAMVA (follow-up N19.3): modulo da 25 input diviso in Required (giurisdizione / patente / tipo doc / cognome / nome / data nascita), Recommended aperto comprimibile (secondo nome + via + città/stato/CAP + date emissione/scadenza), Expert tuning compresso (sesso/occhi/altezza + classe/restrizioni/avalli). Corrisponde al pattern usato su TOTP, HOTP, Aztec, PDF417, Swiss QR, EMVCo, GS1, SEPA.
- Lo stato di Expert tuning persiste tra le visite (follow-up N19.3): quando apri la sezione Expert su qualsiasi modulo, lo stato aperto viene salvato in
localStorage.qrExpertSectionsOpenindicizzato per tipo. La prossima volta che selezioni quel tipo, Expert è già aperto. Listenertoggledelegato su.field-section[data-level="expert"], nessun cablaggio per modulo. - Audit interno di accessibilità (N8): passaggio manuale WCAG 2.2 AA contro la homepage, /print-size/, il nuovo hub /standards/ + 9 pagine di riferimento, e le 45 landing page di schemi di pagamento. Verificato il superamento su target del salto di link, focus-visible, label dei moduli, nomi dei pulsanti, ruoli ARIA, contrasto AAA primario / AA+ attenuato. Risolto un salto di livello di intestazione (tre subhead
<h4>dentro extra-fields vCard/MECARD promossi a<h3>per uno schema pulito). Risultati completi pubblicati su /accessibility/. - ZIP del corpus pubblico (follow-up N2): /proof/corpus.zip, fixture JSON + CSV + metodologia + README in bundle, ~4 KB, ricostruito a ogni deploy. Le flotte di scanner ora possono scaricare il corpus completo in un solo file invece di clonare il repository. Linkato da /proof/corpus/ con un pulsante Download in evidenza.
- Log di attestazione delle flotte di scanner (follow-up N2): nuovo docs/SCANNER_ATTESTATION.md, log datato per riga di verifiche manuali device/OS/app. Seminato con 10 righe che coprono iPhone 15 Pro su iOS 18.3, Pixel 8 su Android 14, Zebra DS8100, Google Authenticator, 1Password. Cresce con ogni dispositivo verificato.
- Realismo di anteprima nel generatore (N19.6): toggle compatto a 4 chip sotto l'anteprima QR live, Default / Phone / Mono / Low contrast. Applica filtri CSS all'anteprima (scale per Phone, grayscale per Mono, contrasto ridotto per Low contrast) così i designer vedono come il QR si comporta su substrati diversi senza lasciare il generatore. Effetto zero sul payload codificato, sui download, sulla copia negli appunti.
- Validatori semantici aggiuntivi (estensione N19.4): controllo Base32 segreto HOTP + verifica intero non negativo del contatore; SM-DP+ eSIM deve essere un FQDN nudo (no https://, comune rottura del provisioning telefonico); Matching ID eSIM rigetta il carattere
$(collisione con il separatore di campo LPA). - Disclosure progressiva estesa a UPI e Crypto (estensione N19.3): UPI quantità + nota raggruppati come Recommended; crypto quantità + label come Recommended. SIP, MMS, PromptPay, e Lightning rivisti e lasciati piatti, troppo pochi campi per beneficiare della disclosure.
- Sweep di audit qualità su SEO, performance, sicurezza, integrità dei link, qualità del codice (passaggio i18n rimandato). Le scritture
cache.putdel service worker ora girano dentroevent.waitUntilper non essere abbandonate a metà navigazione; cache portata a v121. Dialogo di stampa biglietto da visita passato dadocument.writea un URLBlob. Handler di clic Share e card-download avvolti in try/catch così i rifiuti emergono come toast invece di fallimenti silenziosi. Tempi numerici magici (auto-apertura hash design-card, rendering frame GIF, gap download dual PNG, revoca print-blob) estratti in costanti nominate. Bug CSS latente risolto: i selettori input.card-text-rowmatchavano solo[type="text"], ma il minifier HTML rimuove l'attributo defaulttype="text", aggiuntoinput:not([type])così gli input tagline e didascalia BCD mantengono il loro stile in produzione. Rimosse due dichiarazioni!importantgratuite; silenziato unconsole.warni18n rumoroso. CLAUDE.md aggiornato, le pagine in lingua sono pre-renderizzate insite/{lang}/, non servite via riscritture_redirects.
2026-04-18, Spinta autorevole: hub /standards/ + 3 pagine standard, /proof/corpus/, chiusura Reviewer #6, Advanced workflow-first N19.1
- La modalità Simple riceve un suggerimento discreto "altri 96 tipi in Advanced" sotto la griglia di 8 riquadri. Cliccare il link inverte il toggle di modalità così gli utenti non risalgono. Simple resta a 8 riquadri; Advanced resta il percorso di scoperta della lunga coda.
- Lista bullet del CTA Pro riscritta per riflettere ciò che è effettivamente spedito: codici protetti da password, attivazione e scadenza pianificate, analisi heatmap/meteo/ROI/coorte, pagine statistiche pubbliche condivisibili, gruppi di codici per portafogli grandi, webhook + REST API, multi-team e log di audit, SSO (SAML/OIDC) + provisioning SCIM. I vecchi bullet generici "Scan analytics / API workflows / Teams" sono via.
- Il suggerimento "Save to Pro" sotto il generatore ora nomina la protezione con password, attivazione pianificata, analisi heatmap e ROI, e pagine statistiche pubbliche invece di solo "scan analytics."
- Disclosure progressiva sui generatori avanzati con molti campi (N19.3): TOTP, HOTP, Aztec, PDF417, Swiss QR, ed EMVCo comprimono le manopole esperte (algoritmo/cifre/periodo, livello EC, colonne/compatto, messaggio, MCC/AID) sotto una sezione Expert tuning. GS1 Digital Link raggruppa AI 17/10/21 come Recommended; SEPA separa il riferimento (Recommended) dal BIC (Expert tuning). I sommari Expert compressi mostrano una pillola "expert" così i power user individuano le manopole extra senza cliccare.
- Profili salvati (N19.8): nomina e salva i valori dei campi correnti di qualsiasi generatore avanzato in localStorage, listali nel pannello Saved profiles sopra la legenda di compatibilità, e caricali con un clic o tramite la palette di comandi (Cmd/Ctrl+K). Lo storage è solo lato client; nulla lascia il browser.
- Autorevolezza print-production (N15): /print-size/ ora porta una guida ai substrati (8 substrati × penalità di dimensione × ECC), regole di tavolozza CMYK-safe con annotazioni a livello di catalogo CMYK/RGB-only, regole outdoor/segnaletica (sbiadimento UV, comportamento camera in clima freddo, angoli di scansione obliqui), un protocollo QA stampabile a 4 controlli, e definizioni in linguaggio chiaro del grado di preflight ("D = fallirà su segnaletica lucida sotto 3 m").
- Compliance fencing (N16): nuovi blocchi "Compliance checklist" + "When not to use this" su cinque landing page segnalate dal reviewer, App Store (Apple 5.2 / Play policy / distribuzione TestFlight), PayPal (AUP / abuso F&F / 1099-K / classificazione MSB), Bitcoin & Crypto (FATF Travel Rule / registrazione FinCEN/FCA / esposizione Howey-test / OFAC), UPI (NPCI circular / GST / scam con overlay anti-frode / SEBI su QR di investimento), SEPA (conformità EPC069-12 / diritti di reso PSD2 / avviso no-mandato-ricorrente). Si unisce ai blocchi compliance preesistenti su AAMVA, Google / Yelp / TripAdvisor Review, Coupon, Review Funnel.
- Tipi recenti nella palette di comandi (N19.7): gli ultimi 8 tipi scelti emergono per primi quando Cmd/Ctrl+K si apre con query vuota; con query parziale, i tipi recenti ricevono un piccolo bonus di ranking così "tot" salta in modo affidabile al tuo flusso OTP più usato. Marcati anche con un piccolo chip categoria "Recent" così il boost è visibile, non magico. Tracciato solo in localStorage.
- Polish modalità Simple (N6): Simple ora nasconde anche il pannello Saved profiles (non un concetto da principiante) e la tab Batch. Elementi già nascosti invariati (ricerca tipo, preset di settore, legenda compatibilità, tab di categoria, chip di compatibilità).
- Striscia di fiducia a quattro pilastri (N7): la striscia di affermazioni in cima alla pagina ridotta da 5 elementi a 4, ognuno che porta esplicitamente la propria etichetta di pilastro, "Davvero gratis, niente registrazione, niente paywall", "Privacy-first, 0 richieste in uscita, verifica live", "Production-safe, testato in compatibilità ad aprile 2026", "Niente lock-in, QR di backup statico, esportazione in qualsiasi momento". Il link Comparison-updated è stato tolto dalla striscia (è un segnale di credibilità, non un pilastro) ma vive ancora nella nav + footer.
- Callout decisi "Use this if / Do not use" (N19.11) in cima ai moduli avanzati con molti campi, Data Matrix, Aztec, PDF417, TOTP, HOTP, eSIM, GS1. Accentati arancione, due clausole, prima di qualsiasi input. Sostituisce il pattern dove la prosa esplicativa stava in fondo e gli utenti la leggevano solo dopo aver finito di scrivere.
- Banner di capacità (N19.9) sul pannello Style per simbologie non-QR, chip esplicito + titolo ("No styling, plain barcode only") + descrizione, sostituendo il vecchio suggerimento a paragrafo singolo con qualcosa di leggibile a colpo d'occhio.
- Validazione semantica (N19.4): validatore segreto Base32 TOTP, controllo prefisso CH/LI + lunghezza 21 caratteri Swiss QR IBAN, checksum mod-97 SEPA IBAN (cattura cifre digitate male), e un avviso cross-field WiFi Enterprise quando EAP è selezionato ma identità è vuota. Inline, non-bloccante, riusa il registry VALIDATION_RULES esistente.
- QR Lab ora a un clic da Download (N5), un chip dal bordo tratteggiato ("Test before you print in QR Lab →") si trova inline con i pulsanti di download così la verifica è visibile al punto di esportazione.
- Advanced si apre task-first (N19.1): la striscia di categorie ora è organizzata per cosa stai facendo invece di quale simbologia è. Nove bucket di flusso di lavoro, Everyday sharing, Events & venues, Media & files, Marketing & reviews, WiFi & telecom, Payments & banking, Retail & GS1, Boarding & ID, Auth & dev, sostituiscono la vecchia tassonomia di simbologia (Everyday / Business / Payments / Identity / Security / Industrial / Advanced Standards). Tutti i 105 pulsanti tipo rimappati; griglia tipo del footer raggruppata per corrispondere.
- Spinta autorevole (N3): nuovo hub /standards/ con otto pagine di riferimento complete, GS1 Digital Link (Sunrise 2027, validatore live di check-digit GTIN), TOTP & HOTP (RFC 6238 / 4226, validatore di entropia Base32 live, compatibilità authenticator), Swiss QR-bill (SIX IG v2.3, validatore IBAN CH/LI live con rilevamento QR-IBAN), patente AAMVA (CDS v10, tabella codice elemento, tabella IIN, framing uso lecito), attivazione eSIM (LPA) (GSMA SGP.22, compatibilità iOS 17.4+ / Android 13+), QR commerciante EMVCo (struttura MPM / CPM, derivati regionali PIX/UPI/PromptPay/SGQR/DuitNow, tabella MCC), Micro QR & rMQR (ISO/IEC 18004 Annex M + ISO/IEC 23941, grafici di capacità, compatibilità scanner specialistici), e e-fattura ZATCA (FATOORA saudita, tag TLV 01–09, Phase 1 vs Phase 2). Ogni pagina: link a specifica + vettori di test canonici + validatore live dove applicabile + insidie + compatibilità scanner + revisione successiva datata. Primo passo verso l'obiettivo di autorevolezza enciclopedia.
- Scaffold del corpus di test pubblico (N2): nuova pagina /proof/corpus/ che documenta la metodologia che chiunque può usare per auditare le affermazioni di compatibilità scanner, scarica le fixture, rigenera i QR, scansiona con la tua flotta, segnala discrepanze. Tabella curata di 18 righe di risultati di scansione attesi su iOS Camera, Android Camera, e scanner pro. Linka /test-vectors/ (il JSON sviluppatore) e /standards/ come livello di autorità sopra.
- Elementi precedenti del Reviewer #6 spediti questo giorno in commit precedenti: griglia di riquadri jobs-first (N14), frase di marca "The most trustworthy QR tool on the internet" (N17), palette di comandi (N19.2), preset esperti (N19.5), ispettore payload (N19.10), sweep formato canonico <title> (N20).
- Backlog di traduzione: la copia N14 e N17 è in 25 lingue; tutto il resto della chiusura Reviewer #6 di oggi (N19.3 / N19.4 / N19.7 / N19.8 / N19.9 / N19.11 / N5 / N6 / N7 / N15 / N16 / Pro SSO/SCIM) è solo in inglese per ora e ricade sull'inglese in altre localizzazioni fino al prossimo passaggio di traduzione.
2026-04-17, Keep-Alive live, pagine roadmap + supporto Pro, fix audit webhook
- Tier Keep-Alive live su Pro: $4/mese, $36/anno, o $240 Decade (prepagamento 10 anni, $2/mese effettivo). Preserva i codici esistenti con un raffreddamento di 30 giorni per la modifica di destinazione; nessun nuovo codice, nessun posto, nessuna API. Migrazione 007, tre prodotti Stripe, percorso webhook per il pagamento Decade una tantum, gate di piano su dashboard/codes/edit. Annullati i banner "Ships Q3 2026" su /compare/ e /no-lock-in/.
- Nuova pagina su pro.qr.abundera.ai/roadmap/: cosa è spedito, impegni Q3/Q4 con criteri di kill, lista esplicita di cose che non costruiremo.
- Nuova pagina su pro.qr.abundera.ai/support/: target di tempo di risposta per tier, indirizzo di disclosure di sicurezza, ambito.
- Fix webhook Stripe: race condition di idempotenza (poteva ingoiare un pagamento ritrasmesso), dedup via SELECT prima della gestione, INSERT al successo. L'handler di pagamento Decade lancia eccezione su price_id mancante/sconosciuto o tier non corrispondente invece di scartare silenziosamente.
DEFAULT_SEAT_LIMITnon definito in team-invite accept. Tolleranza firma 60s → 300s.incomplete_expiredmappa atrialing(eraexpired). - Documentazione:
ABUNDERA_JWT_AUDIENCESdocumentato come obbligatorio; schemaPLAN_PRICE_MAPindocs/INTEGRATIONS.md; rimossi i riferimenti inutilizzati aABUNDERA_SERVICE_SECRET. - Test: 70 passanti. Aggiunti 8 per i predicati Keep-Alive e il raffreddamento di 30 giorni.
2026-04-16, Lancio Pro, rifacimento scala prezzi, follow-up revisione esterna
- Portale Pro live su pro.qr.abundera.ai.
- Scala prezzi (mensile / fatturato annualmente al mese): Solo $12/$9, Business $39/$29, Team $129/$99, Agency $449/$349, Enterprise $1.800/$1.500. Annuale è la selezione predefinita sulla griglia prezzi.
- Limiti di scansione mensili espliciti (50K / 250K / 1M / 4M / 25M) sostituiscono "illimitato". Superare il limite non rompe i reindirizzamenti; misuriamo l'eccedenza al listino del tier ($0,06–$0,18 per 1K scansioni).
- Ogni tier ha un conteggio codici esplicito (500 / 2.500 / 15K / 75K / 500K), niente stampa fine "illimitato*".
- Aggiunte 13 landing page di pagamento: Apple Wallet, Google Wallet, EPC Girocode, BLIK, Interac, MB WAY, GCash, Maya, Kakao Pay, Naver Pay, LINE Pay, iDEAL, Boleto. Conteggio tipi 91 → 104; sitemap ora 3.224 URL.
- Scan-preflight esteso da 4 condizioni generiche a 8 scenari specifici per il lavoro (sticker menu, poster vetrina, lanyard, etichetta scaffale, etichetta magazzino, segnaletica esterna, packaging, biglietto da visita). Grado C/D/F mostra un modale pre-download.
- Matrice prezzi /compare/ divisa in sei gruppi a capacità corrispondente. Voci concorrenti aggiunte per Bitly, Flowcode, Uniqode, QR Code Chimp, QRTIGER, ognuna datata e contrassegnata per ri-verifica mensile. Costo mensile per codice mostrato su ogni riga.
- Verifica drift conteggio nello script pre-deploy: scansiona tutte le pagine generate sotto
site/per conteggi tipo hardcoded. Il drift 91/104 su /compare/ è andato in produzione perché il vecchio controllo guardava solo tre pagine. - Framing del sito Pro: "Free is for keeping. Pro is for changing." portato attraverso /no-lock-in/, /static-vs-dynamic/, e il CTA Pro della homepage.
- Prodotti Stripe creati tramite lo script idempotente
stripe-setup.py(Solo + Team portati alla rev 2 per i nuovi importi).PLAN_PRICE_MAPtiene sia i vecchi che i nuovi price ID così gli abbonati esistenti restano mappati. - Altro: striscia dettagli compat sopra i campi del generatore, striscia di fiducia homepage, timbro di freschezza su ogni pagina, scheletro pagina /accessibility/, /for/ pacchetti preset di settore (8), suggerimento di scopribilità Wizard/QR Lab, audit conteggi (120 → 336 icone, 24 → 50 preset BCD), pulizia linguaggio repo (il repo è privato; "Codice generatore open source" → "Codice lato client auditabile nel tuo browser"), immagine OG rigenerata con un QR di evento iCalendar valido.
2026-04-15, Simple/Advanced, /compare/, Save-to-Pro
- Toggle Simple / Advanced sulla homepage. Simple cura 8 tipi quotidiani (URL, WiFi, vCard, Email, Phone, SMS, Event, Text); Advanced ripristina i 104 completi. Modalità persistente in
localStorage; le landing page per tipi non-Simple cambiano automaticamente. - Matrice di confronto concorrenti /compare/ spedita: feature per feature contro QR Code Generator, QRCode Monkey, e Uniqode. Datata, ri-revisionata mensilmente.
- Pulsante "Save to Pro" sul sito gratuito: promuove con un clic un codice generato nel portale Pro. Lo stato fa round-trip via hash URL; gli utenti non firmati atterrano di nuovo sul generatore con il loro lavoro preservato.
- Frecce di scorrimento delle tab di categoria su desktop; smooth-scroll su mobile.
- Il ripristino della cronologia passa automaticamente ad Advanced quando il tipo del codice salvato non è disponibile in modalità Simple.
- Copia CTA Pro ammorbidita; storia anti-ostaggio (QR di backup statico, periodo di grazia 90 giorni, portabilità del dominio) portata in primo piano.
2026-04-14, Portale Pro online, 3 nuovi tipi, fix autofill
- Portale Pro (
pro.qr.abundera.ai) online end-to-end. - Tre nuovi tipi del sito gratuito: M-PESA Kenya (EMVCo MPM), Video Meeting (scorciatoie Zoom/Meet/Teams/Webex), Coupon/Promo Code.
- Il tipo GS1 Digital Link ora supporta tutti i 12 Application Identifier obbligatori per Sunrise-2027.
- Nuove pagine SEO:
/static-vs-dynamic/,/no-lock-in/(contrattuale: periodo di grazia 90 giorni, esportazione un clic, eliminazione GDPR 30 giorni, QR di backup statico). - Fix autofill (sesto tentativo): i blocchi di campo per tipo sono veri elementi
<form>con i propri tokenautocomplete; i moduli inattivi ricevonodisplay: nonecosì Chrome non segnala gli input fuori schermo. Il raggruppamento verticale vCard/Address/Contact/WiFi-Enterprise ora funziona su Chrome, Safari, Firefox. Harness Playwright a 0 violazioni. - Funnel review: dropdown piattaforma (Google/Yelp/TripAdvisor) con copia di placeholder per piattaforma.
- Wizard: 8 riferimenti a slug di risultato rotti corretti.
- Header/footer unificati tramite partial condivisi; le pagine strumento (Wizard, QR Lab, Test Vectors) spostate sullo stesso sistema di template.
- Verifica pre-deploy: validazione link interni + guardia
showToast()in inglese grezzo. - Fix BCD: stabilità layout verticale, regressione UI landing page, etichette link RFC, artefatto watermark.
- L'HTML delle landing page generate non è più tracciato da git (ancora deploy; git traccia il template e il generatore).
2026-04-13, Parità 25 lingue, ridisegno header/footer, harness Playwright
- 6.660 chiavi inglese-fallback tradotte in 25 file lingua. Le landing page non inglesi non ricadono più su stringhe inglesi. Pipeline di traduzione rifattorizzata in un validatore/pianificatore.
- i18n esteso alle pagine strumento: Wizard, QR Lab, e Test Vectors hanno ora 25 varianti lingua, con tag hreflang e voci sitemap.
- Harness round-trip Playwright: genera un codice per ogni tipo in ogni lingua, decodifica il canvas, verifica i campi. 0 violazioni.
- Ridisegno header/footer: header sottile, footer 3 colonne che corrisponde al pattern di sign.abundera.ai. Il drawer hamburger mobile ora mostra le voci di nav quando aperto (precedentemente rotto).
- Clic anteprima QR → lightbox zoom. L'etichetta mostra il nome del tipo + primo input (precedentemente mostrava il payload grezzo).
- Fix autofill di prima passata (atterrato correttamente 2026-04-14).
- La ricerca tipo emerge tipi avanzati; chiude alla scelta; tab di categoria vuote nascoste in modalità Popular; il ripristino cronologia cambia tipo inline invece di reindirizzare.
2026-04-12, Parità 26 lingue, 13 nuovi tipi di payload, 3 codici a barre 2D non-QR
- Parità 26 lingue completa: ogni chiave inglese esiste in ogni file lingua (1.302 chiavi × 25 lingue). 5.533 voci aggiunte in 4 passaggi (nomi propri, etichette corte, etichette campo modulo, toast, suggerimenti). I 30 suggerimenti pagamento marca restano in inglese per design, URL e nomi marca sono autorevoli in inglese.
- Deduplicazione: 113 blocchi di chiavi duplicate obsoleti rimossi in 19 file lingua (drift da rebase precedenti).
- Fix intestazione pagine info: blog/about/privacy/changelog usavano classi
.brand/.header-inner/.brand-textsenza CSS attaccato. Cambiato allo stesso markup.logodell'app principale. - 4 tipi URI basati su standard: HOTP (RFC 4226), eSIM (GSMA SGP.22 LPA), SIP/SIPS (RFC 3261), MMS/MMSTO.
- WPA2/WPA3-Enterprise WiFi: estende il formato
WIFI:con metodo EAP, autenticazione Phase-2, identità, identità anonima. - 6 tipi di pagamento regionali: Alipay, WeChat Pay, Swish (SE), Vipps (NO), Mercado Pago (LatAm), Payconiq (Benelux).
- 3 codici a barre 2D non-QR: Data Matrix (ISO 16022), Aztec (ISO 24778), PDF417 (ISO 15438). bwip-js (~1 MB) caricato lazy solo quando uno di quei tipi è scelto.
- Sezione showcase 26 lingue aggiunta alla homepage con link in scrittura nativa.
- Script di audit pre-deploy: verifica sincronizzazione
BATCH_VALID_TYPES+ guardiashowToast()in inglese grezzo. - Footer, landing page, e chiavi i18n aggiunte per tutti i 13 nuovi tipi (sorgente inglese).
2026-04-11, Fetch URL foto BCD, anteprima fissa, preset espandibili
- BCD: il campo URL foto ora scarica e incorpora le immagini remote come URL di dati così il canvas di esportazione non è contaminato da caricamenti cross-origin (esportazione PDF/PNG ora funziona su host senza CORS).
- Layout desktop BCD: il pannello di anteprima è ora
position: sticky, così quando un utente espande ogni sezione i controlli scorrono liberamente senza perdere visibilità sull'anteprima live. (Precedentemente, espandere Content + Layout + Options spingeva Show-Fields fuori schermo.) - La griglia di preset BCD è ora espandibile, mostra 12 layout inizialmente con un toggle "Show all layouts", rispecchiando la UX del selettore di icone.
- Input tagline + didascalia QR ridisegnati: label impilata + input a tutta larghezza (era una sidecar stretta da 150px).
- Badge di scansibilità alzato da
bottom: -24pxa-18pxcosì smette di coprire il pulsante copia. - Le istruzioni Batch CSV ora menzionano esplicitamente Google Sheets, Excel, Numbers.
2026-04-08, Libreria icone per settore
- 24 nuove icone logo centrale (96 → 120) che mirano a sanità, food & bev, tech, finanza.
- 10 nuovi preset layout BCD (40 → 50): Concrete, Honey, Indigo, Luxe, Midnight II, Ocean II, Slate, Verdant, Wine, Candy.
- Bug strategia cache-buster: i parametri
?v=supage-init.js+lang-redirect.jsmancavano sulle landing page, causando caricamenti modulo stantii dopo i deploy. Risolto.
2026-04-04, Sfondi gradiente BCD + retro carta + 12 nuovi preset
- BCD: 12 nuovi preset (Dark Mode, Pastel, Ocean, Cherry, Slate, Emerald, Amber, Mono, Rose, Midnight, Sand, Carbon). 36 preset totali.
- Sfondi gradiente controllati dall'utente con secondo selettore di colore.
- Rendering retro carta con azienda + tagline + testo CTA.
- Riga icone social (LinkedIn / X / Instagram).
- Rendering blocco indirizzo da campi vCard.
- Miniature visive dei preset, ogni pulsante preset ora renderizza un mini canvas invece di un placeholder.
2026-03-29, Revisione BCD + esportazione 600 DPI
- Business Card Designer sezioni accordion comprimibili, anteprima mobile fissa, footer di esportazione fisso.
- Input colore esadecimale con sincronizzazione bidirezionale al selettore colore, swatch tavolozza colori.
- 4 forme foto (cerchio, quadrato, arrotondato, esagono).
- Risoluzione di esportazione portata a 600 DPI per stampa nitida.
- Menu kebab: Esporta template, Importa template, Sorprendimi, Condividi carta, Stampa foglio (10-up US Letter + A4).
- Ritaglio foto forzato quadrato. Guardia di dati minima prima dell'apertura del designer.
- Preset BCD aumentati: 8 nuovi visivamente distinti (Neon, Art Deco, Sunset, Forest, Brutalist, Kraft, Nordic, Retro 80s). 24 preset totali.
2026-03-22, 20 nuovi tipi QR + Link-in-Bio + confronti concorrenti
- 20 nuovi tipi QR (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 renderizza l'intera pagina bio dall'hash URL del QR, nessun backend, nessun account, nessun tracciamento.
- Widget iframe /embed/ (API postMessage per integrazione genitore).
- Pagine di confronto concorrenti /vs/ (varianti 26 lingue).
- Pacchetto npm @abundera/qr + CLI con 25 encoder di tipo.
2026-03-15, 96 icone logo centrale + 5 nuove lingue
- 96 icone logo centrale (12 → 96): crypto, comunicazione, media, utility, commercio, trasporti, natura, cibo, persone, eventi, 12 faccine, 18 glifi social network (X, Facebook, Instagram, LinkedIn, TikTok, YouTube, Pinterest, Reddit, Snapchat, Discord, Telegram, GitHub, Threads, Bluesky, Mastodon, Twitch, Signal, Medium). Espandibile via toggle <details>.
- 5 nuove lingue (21 → 26): svedese, ceco, danese, norvegese, finlandese. 1.106 chiavi ciascuna con traduzioni native.
- Esportazione EPS (PostScript Level 2 con JPEG embedded, codifica ASCII85) per flussi di lavoro print-shop (Illustrator, InDesign, CorelDRAW).
- Esportazione GIF animato (gif.js, 8 frame arcobaleno).
- Esportazione SVG BCD, esportazione JPG BCD.
2026-03-08, Audit piattaforma + sweep accessibilità
Sprint di correzione bug: 3 CRITICI + 7 ALTI + 10 MEDI risolti.
- Violazione CSP script inline su tutte le 55 landing page, spostata a un attributo body
data-qr-preselect. - Bug cache stantia service worker, chiavi senza query → URL completo + stale-while-revalidate.
- Desync tipo modulo cliccando il pill BCD su una landing page non vCard.
- Visibilità immagine di sfondo (slider opacità, moduli al 90% alpha, routing modale di ritaglio).
- Overflow modale di ritaglio mobile.
- Wheel-zoom che dirottava lo scroll del mouse (rimosso interamente).
- Fuga IP avatar mitigata (referrerpolicy + header no-referrer).
- Fix WiFi batch rete aperta, parità campo MeCard batch, validazione TOTP base32.
- WCAG 2.5.8 target tocco (minimo 44×44 su puntatore grosso).
- Sweep aria-hidden su 87 SVG decorativi.
- Rispetto prefers-reduced-motion.
- Toast aria-live, anello focus-visible, navigazione tastiera ritaglio, tasti Home/End menu overflow.
- Ottimizzazione precarico font.
2026-03-01, 15 tipi basati su standard + validatore scannabilità
- 15 nuovi tipi QR: TOTP/2FA, Swiss QR-bill (con la croce svizzera rossa di sovrapposizione obbligatoria), PIX (Brasile), PromptPay (Thailandia), EMVCo merchant generico, Lightning BOLT11, chiave pubblica SSH, chiave pubblica OpenPGP, configurazione WireGuard, GS1 Digital Link, Spotify, Fediverse (Mastodon/Bluesky/Nostr/Matrix/Threads), Geo URI, Magnet, iCalendar completo.
- Validatore scannabilità, esegue jsQR sul canvas renderizzato e avverte sui fallimenti di decodifica.
- Fallback URL stampabile, un toggle aggiunge l'URL di destinazione come testo semplice sotto il QR.
- jsQR caricato lazy (risparmia 262 KB di payload eager).
2026-02-22, Editor gradiente multi-stop + colori per occhio
- Editor gradiente multi-stop (fino a 5 colori).
- Colore interno/esterno indipendente per occhio.
- Modalità QR con immagine di sfondo (slider opacità, EC=H auto-forzato).
- Pinch-zoom sull'anteprima canvas.
- Web Share API per QR e biglietti da visita.
- Formato di esportazione WebP.
- Annulla/Ripristina (Ctrl/Cmd-Z, buffer 50 passi).
- Pulsante template casuale ("Sorprendimi").
2026-02-15, Pagine privacy & sicurezza + rafforzamento i18n
- 4 nuove pagine di credibilità: /privacy/, /terms/, /security/, /about/, in tutte le 21 lingue.
- /.well-known/security.txt pubblicato.
- 29 stringhe inglesi hardcoded sostituite con chiamate
qrT(); ~100 nuove chiavi i18n tradotte in tutte le 21 lingue. - Script inline esternalizzati, CSP rafforzato (unsafe-inline rimosso).
2026-02-08, Accessibilità modale + gestione focus
- Focus trap su tutti e 3 i modali (ritaglio, BCD, dialoghi personalizzati).
- Polish navigazione tastiera attraverso il menu overflow BCD, il selettore di lingua, e il selettore di tipo.
- Correzioni bug critici: bordi frame SVG renderizzati con un pixel di scarto, vulnerabilità XSS nell'anteprima zoom batch, errore
btoa()Latin1 al clic logo preset.
2026-02-01, Lancio iniziale
- Abundera QR lanciato con 20 tipi QR, 40 template, generazione CSV batch (500 codici), Business Card Designer (300 DPI), 20 lingue, 420 landing page statiche.
- Posizione privacy-first: 100% lato client, nessun account, nessun tracciamento, nessun codice di reindirizzamento dinamico.