PROGRESS: lotul de etichete, si cele patru bug-uri pe care le-a scos la iveala

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ThN7ixZrowca8aTGrK1MUJ
This commit is contained in:
Claude Agent
2026-10-02 06:14:26 +00:00
parent f2fff5269b
commit cf683c02f6

View File

@@ -47,20 +47,63 @@ istoric. Starea reala:
`audit_diagrams.py` pe toate cele 22 de fisiere din `17_STRATEGII` si `audit_diagrams.py` pe toate cele 22 de fisiere din `17_STRATEGII` si
`06_MODUL_5`: 0 probleme. 133 de pagini randate. **Niciun link intern rupt.** `06_MODUL_5`: 0 probleme. 133 de pagini randate. **Niciun link intern rupt.**
### Ce a mai ramas, mic si notat ### Lotul de etichete (02.10, dupa-amiaza) — facut
1. **Cele trei etichete mincinoase** din `triaj/ETICHETE_VECHI.md` Userul a cerut „corecteaza etichetele". Rezultatul: cele trei care mintea sunt
(`m2d_directie`, `atmi_orizont`, `buy_doji_stop`), plus cele doua defecte reparate, dar lotul a scos la iveala patru lucruri mai grave decat ele.
vechi adaugate la final de corectorul lui `07_mdsrt`. Restul de ~94 sunt
cosmetice si pot astepta. **Bug-uri de infrastructura, reparate:**
2. **`A2_contradictii.md` si `A1_risc.md` n-au contradictiile noi de la DHRT:**
1. **`render_html` trecea SVG-urile prin markdown.** In `mp2_pivoti_excel`,
cele doua `*` din formulele Excel (`=2*E2-C2`) deveneau un `<em>` pus peste
`</text>`, iar parserul browserului arunca restul desenului: **jumatate de
tabel lipsea din pagina**, invizibil in `.md` si in `audit_diagrams`.
2. **Fix-ul de mai sus a rupt randarea modulului 5**, pentru ca marcajul
`<!--SVG0-->` semana cu ancorele `<!--SVG:tb-->` ale generatoarelor de
acolo. Reparat cu `<!--SVG-STASH-n-->`. Lectie: cand pui un marcaj
temporar intr-un fisier, verifica intai ce marcaje exista deja in repo.
3. **`eticheta_libera` nu citea `<g transform>`**, deci la diagramele cu
panouri compara coordonate din sisteme diferite. Acum aplatizeaza
`translate`/`scale` pe `<g>`-uri imbricate. Prima suprapunere pe care a
prins-o dupa reparatie era intr-un capitol deja comis (cap. 10).
4. **Unsprezece generatoare nu mai rulau deloc.** Cautau `<line x1="24"`, iar
`svg_candles` scrie `x1="24.0"` de cand are `Level.i0`. Cele 11 copii ale
regexului au disparut intr-o functie comuna (`y_niveluri`,
`offset_render`), agatata de semnatura liniei, nu de `x`-ul ei. 41 de
SVG-uri regenerate, toate identice dupa normalizare — deci niciun desen
n-a sarit, iar verificarea asta a prins o regresie reala pe drum.
**Unealta noua:** `cifre_ascunse()` din `gen/eticheta_libera.py` ruleaza orb
peste tot repo-ul si raporteaza doar cazul care costa — **eticheta cu cifra,
peste un `<rect>` plin, de aceeasi culoare sau desenat peste ea**. Rulare:
`.venv/bin/python gen/eticheta_libera.py gen/strategii/*.svg summaries/06_MODUL_5/*.md`
**Verdictul pe cele ~94 de suprapuneri cosmetice: NU merita un lot.** Din 20
vazute efectiv pe ecran, doar 3 schimbau ce citesti, si toate din aceeasi
cauza fizica: text peste un corp plin **de aceeasi culoare**, unde caracterele
dispar. Peste o linie subtire textul ramane lizibil. Nu redeschide subiectul
pe baza geometriei — foloseste `cifre_ascunse`.
### Ce a mai ramas
1. **Patru cifre ascunse, din cele 9 gasite:** `m2d_iesire` („intrare 99.60",
dispare `60`), `mdsrt_exemplu` („TP1 624.70 = 1:1", dispare `1 (`),
`mp2_short` („128.97: crossing bear", dispare `8.`), si
`gen/strategia_7_micis.py` blocul 6 („intri cu 1/3", dispare `1/3`).
**Reteta, verificata pe cele cinci deja facute:** la o eticheta de `Level`
cu `label_at="left"`, `i0` muta si linia si eticheta (eticheta se deseneaza
la `xs + 6`) — ala e knob-ul, nu `label_dy`, care doar o lipeste de linia
vecina.
2. **Estimatorul de latime a textului e duplicat si gresit cu 20-30%** in mai
multe generatoare; din cauza lui `mbp_exemplu` si `mp2_pivoti_excel` inca
nu ruleaza, desi desenele lor comise se citesc perfect. Factorii masurati
cu `getBBox()`: bold 12px → 0.467 (nu 0.62), 12px normal → 0.368 (nu 0.52),
13px → 0.494 (nu 0.56). Aceeasi boala de duplicare ca `x1="24"`, deci
aceeasi reparatie: o functie comuna, calibrata pe cifrele astea.
3. **`A2_contradictii.md` si `A1_risc.md` n-au contradictiile noi de la DHRT:**
stopul si intrarea difera fata de lectia de patternuri, iar DHRT cere pe stopul si intrarea difera fata de lectia de patternuri, iar DHRT cere pe
prop max 1% / recomandat 0,15% acolo unde A1 consolideaza 0,5%. Capitolul 10 prop max 1% / recomandat 0,15% acolo unde A1 consolideaza 0,5%. Capitolul 10
le are in sectiunea lui, dar registrul general nu. le are in sectiunea lui, dar registrul general nu.
3. **`<g transform>` e punctul orb al lui `eticheta_libera`** — la `bh_aplus`
a trebuit rulata pe fiecare panou separat, pentru ca wrapper-ul le muta cu
`<g transform>`, pe care unealta nu-l citeste. De reparat in unealta, sau
de stiut cand o folosesti pe diagrame cu panouri.
## STAREA LA PREDARE (depasita, pastrata pentru istoric) ## STAREA LA PREDARE (depasita, pastrata pentru istoric)