Sondă care verifică livrarea, nu disponibilitatea
`GET /api/health/contact` răspunde 200 dacă un lead poate ajunge la un om acum și 503 dacă nu. Verifică două lucruri separat: că jetonul canalului de notificare e încă valid (o cerere reală către furnizor, cu timeout de 8 secunde) și că jurnalul de cereri e scriptibil. Răspunsul e alcătuit numai din valori logice — niciodată jetonul, identificatorul de canal sau numele botului. Rezultatul se ține în memorie 60 de secunde, ca o sondă externă apăsată des să nu devină ea însăși trafic. Când furnizorul e inaccesibil, câmpul devine `null`, nu `false`: „nu știu” și „invalid” sunt stări diferite.
Jurnal scris înainte de livrare, nu după
Fiecare cerere primește un identificator și se scrie într-un jurnal append-only, o linie JSON per eveniment, *înainte* de a se încerca notificarea. A doua linie, cu același identificator, spune ce s-a întâmplat efectiv: `delivered` sau `failed`, cu motivul tăiat la 300 de caractere. Directorul se creează cu drepturi `0700`, fișierele cu `0600`, iar calea se pune deliberat în afara directorului de versiune, ca istoricul să supraviețuiască unei publicări.
Verificare de acceptare rulată după publicare
Un script de verificare deschide fiecare pagină de produs, în grupuri de câte trei, și cade dacă lipsește codul 200, ancora de întrebări, ancora de exemplu sau adresa canonică. Verifică apoi harta de site — să nu conțină variante de limbă care nu se pot deschide și să conțină fiecare produs — și `robots.txt`, să nu blocheze resursele necesare randării. Cade și dacă în pagină reapare conținut dintr-un client vechi. E o listă de lucruri care s-au stricat deja o dată.
Actualizări cu poartă, nu cu speranță
Scriptul de publicare refuză să pornească dacă serverul are sub 500 MB memorie liberă, rulează `npm audit --audit-level=high` și se oprește la vulnerabilități de nivel înalt dacă nu confirmi explicit, apoi construiește din curat — `.next` și `node_modules` șterse, instalare din fișierul de blocare. Dacă procesul nu apare `online` după pornire, scriptul afișează ultimele 50 de linii de jurnal și iese cu eroare, în loc să raporteze succes.
Repornire cu praguri, nu la nimereală
Procesul se repornește automat peste 500 MB memorie, cu întârziere de 4 secunde între încercări, creștere exponențială a întârzierii și oprire după 10 reporniri instabile — ca o buclă de cădere să devină vizibilă în loc să consume serverul în tăcere. Timp de grație la oprire: 5 secunde, apoi terminare forțată. Jurnalele au dată și fus orar, într-un singur flux.
Duplicate tratate, nu numărate de două ori
Aceeași persoană, același mesaj, de două ori — un clic dublu, o reîncărcare a paginii — producea două notificări identice pentru o singură cerere. Acum amprenta `sha256` a perechii adresă + mesaj se ține 10 minute în memorie; a doua trimitere primește același identificator de cerere și marcajul `duplicate`, iar notificarea nu se repetă. Se suprimă doar duplicatele unei livrări reușite; una eșuată are voie să treacă din nou.
Coduri de eroare care spun ce s-a rupt
400 pentru date invalide, 405 pe metodă greșită, 500 pentru corp de cerere stricat, 502 când canalul de livrare a răspuns prost, 503 când credențialele lipsesc. Diferența contează la 3 dimineața: 502 înseamnă „furnizorul”, 503 înseamnă „configurația noastră”. Vizitatorului i se spune distinct „am primit cererea, dar nu am putut notifica” — nu un succes fals.
Retenție aplicată de cod, nu promisă în politică
Nota de confidențialitate publicată spune că solicitările din formular se păstrează 24 de luni. Codul aplică exact același număr: `LEAD_RETENTION_DAYS` implicit 730, iar fișierele mai vechi decât pragul se șterg la fiecare scriere, fără planificator care poate fi uitat. Adresa IP se taie la prefixul de rețea — `/24` la IPv4, `/48` la IPv6 — și se citește ultimul hop din antet, nu primul, pentru că primul e trimis de client.
Găsim și ce nu a reclamat nimeni
Aceeași trecere prin cod a scos la iveală două lucruri pe care nu le semnalase niciun utilizator: limita de 10 cereri pe minut se putea ocoli complet, pentru că se citea primul element din antetul de adrese redirecționate — cel controlat de client — iar o rută de inițiere a apelurilor telefonice era deschisă anonim, pe costul și de pe numărul nostru, deși componenta care o folosea nu mai era montată nicăieri. Ambele reparate și verificate pe producție.