Ziua în care ambele conversații s-au întâmplat „azi”
Pe 19 iulie ai importat două conversații WhatsApp cu un client: una de ieri, una de azi. Sistemul le-a ștampilat pe amândouă cu data de azi — și una a rămas permanent greșită. Codex a construit reparația; eu am trimis 11 agenți de audit peste ea. Pagina asta îți arată ce s-a stricat, ce a reparat, ce a făcut bine și ce am găsit.
Tot ce e conturat se poate apăsa. Explicațiile apar exact unde te uiți.
Incidentul: o dată greșită nu stă cuminte
Importul de conversații nu întreba niciodată când a avut loc conversația. Dacă nu-i spuneai tu, punea în tăcere data importului. Apasă butonul și privește:
De ce doare? Pentru că data apelului nu e un detaliu cosmetic — trei sisteme o folosesc drept adevăr. Apasă pe fiecare:
Partea absurdă, descoperită la audit: opțiunea de a spune data exista deja în cod și funcționa. Doar că nu era scrisă nicăieri — nici în ajutorul comenzii, nici în ghiduri. Un buton secret pe care nu-l apăsa nimeni pentru că nimeni nu știa că există.
Ce a construit Codex — trei reparații
Trei niveluri, de la cel mai ieftin la cel mai adânc: fă opțiunea vizibilă, avertizează când lipsește, repară ce s-a stricat deja.
voost calls import-text --text-file <path>
[--source whatsapp] [--client-id <uuid>] [--project-id <uuid>]
# --occurred-at exista și funcționa… dar nu apărea aici.
Dacă tot imporți fără dată, sistemul nu mai tace. Răspunsul vine cu un avertisment explicit:
⚠ occurred_at_defaulted_to_import_time„Am pus data importului pentru că nu mi-ai dat una. Dacă e o conversație veche, dă-mi data reală.” Simplu, cinstit — dar cu o limită pe care o vezi la Actul 4.
Pentru conversația deja stricată există acum voost calls date correct. Nu atinge nimic până nu-i ceri explicit. Corectăm artefactul real din incident, de pe 19 pe 18 iulie:
- Occurred at: 19 iul, 13:52
- Source: whatsapp
Ce a făcut bine
Auditul a căutat activ complexitate inutilă — bara ta e „cel mai simplu lucru care funcționează”. Verdictul: bine calibrat. Patru decizii merită văzute; apasă pe fiecare:
Proba înainte de scriere
apasă pentru detalii
„Nimic nu s-a mișcat între timp”
apasă pentru detalii
Regula prudentă pentru „ultimul contact”
apasă pentru detalii
Croit pe tiparul existent
apasă pentru detalii
Și verificarea de bază: toate cele 626 de fișiere de test trec; cele 3 fișiere noi le-am rulat și eu, local — verzi în 6 secunde.
Ce am găsit — 3 confirmate, 1 respins
Fiecare suspiciune serioasă a primit un al doilea agent, pus special să o dărâme. Trei au rezistat. Una a picat — și e sănătos că a picat.
Fișierul transcript rămâne cu data veche
Corecția schimbă data în cele trei locuri din baza de date — dar fișierul transcript al conversației încă spune, negru pe alb, data greșită. L-ai văzut în simulator: chenarul roșu de după „Aplică”. Comanda-soră (corecția de titlu) rescrie fișierul; cea de dată nu — și nici măcar nu te avertizează.
Fix cerut: minim un avertisment în răspuns, de fiecare dată. Câteva linii de cod.
Garanția „nimic nu s-a mișcat” nu e păzită de niciun test
E promisiunea-vedetă a comenzii — și singurul lucru important pe care nu-l verifică nimeni. Într-un sistem în care testele sunt singurul code review (nimeni nu citește codul), o promisiune fără test poate dispărea neobservată. Simulează:
Fix cerut: un test care s-o pinuiască. Nuanță reală: e incomod de scris (cere două operații care se calcă intenționat pe picioare) — dar tocmai de-aia merită scris.
Avertismentul e o vorbă în vânt — nu rămâne scris
Avertismentul de la Reparația 2 apare doar în răspunsul de moment. Pe conversație nu rămâne niciun semn. Exact forma incidentului real:
De discutat: un marcaj persistent pe conversație („dată nedeclarată”) ar închide bucla. E peste litera issue-ului — poate fi cerut acum sau lăsat ca issue separat.
„Lipsește un document de arhitectură” — nu, nu lipsește
Un agent a acuzat lipsa unui ADR pentru noua regulă. Agentul-verificator a demontat acuzația bucată cu bucată: structura e moștenită dintr-o decizie deja documentată, iar regula cea nouă e scrisă în dicționarul de domeniu al proiectului, care are aceeași autoritate. Acuzație plauzibilă, dar falsă — și de-asta fiecare finding trece printr-un al doilea agent înainte să ajungă la tine.
Pe lângă astea, 9 observații mărunte (nuanțe de cod, un colț de documentație, un test care ar putea fi mai izolat) — niciuna nu blochează, toate pot deveni un issue separat.
Verdictul
Schimbarea merită. Repară un incident real, pe cea mai ieftină cale posibilă, fără să inventeze concepte noi — și aduce prima unealtă prin care o dată greșită poate fi reparată în siguranță, nu doar regretată.
Pașii concreți
- Cere-i lui Codex, înainte de merge: avertismentul despre transcript · finding 1 — câteva linii
- Cere-i lui Codex, înainte de merge: testul pentru garanția „nimic nu s-a mișcat” · finding 2
- Decide tu: marcajul persistent „dată nedeclarată” — acum sau ca issue separat · finding 3, peste litera issue-ului
- După merge: corectează cu noua comandă conversația reală din 18 iulie · primul consumator real al reparației
- Restul observațiilor → un issue de follow-up, nu blochează nimic · 9 puncte mărunte
și lasă urmă după ce a schimbat.” AUDIT #1316 · DATA APELURILOR · VOOST CONTROL, IUL 2026