Etichette uscite visione: pezzo.count senza etichetta, dxf.n_points come length/mm #112

Closed
opened 2026-10-28 11:14:37 +00:00 by Adriano · 1 comment
Owner

ESITO: richiesta (analisi passo 1, Opus 5.5 claude-opus-5-5)
RIF: gitea:Adriano/TieMeasureFlow#83 (wizard ricetta DXF), richiesta Adriano 28/10/2026 in fiera: «sistema etichette nel caso di pezzo.count»
COSA: nel menu «Uscita visione» dell'editor task, le uscite non dimensionali hanno etichetta sbagliata o assente.
VERIFICATO: GET /api/vision/tasks/10/recipe sul PC fiera (ricetta wizard LocateBlob+CompareDxf) → outputs: pezzo.count (None, None), pezzo.area (None, None), dxf.n_points (length, mm), dxf.points_in_pct (ratio, None), dxf.distance_* (length, mm).
CAUSA: src/vision/runner.py validate_graph (righe ~242-261): quantity = value_quantities.get(prop.name, tool.quantity) per OGNI uscita OUT, anche quelle fuori da tool.values → n_points eredita «length» del tool; LocateBlob (non dimensionale) non dà nulla; ratio senza unità.

MODIFICHE (solo src/vision/runner.py, validate_graph):

  1. Uscite in tool.values: logica attuale invariata; in più quantity "ratio" → unit "%".
  2. Uscite fuori da tool.values: MAI tool.quantity. quantity = value_quantities.get(nome) se dichiarata; altrimenti da tabella modulo _ETICHETTE_EXTRA = {"count": ("count", "pz"), "n_points": ("count", "punti"), "area": ("area", "px²")}; altrimenti (None, None).
  3. Forma di ogni voce invariata: {key, quantity, unit}. Commento inline su ogni modifica (regola utente).

TEST (src/vision/tests/test_runner.py):

  • grafo del wizard (src/vision/costruttori.py, LocateBlob «pezzo» + CompareDxf «dxf» con nominal_unit mm) o equivalente con sample.dxf: pezzo.count = (count, pz); pezzo.area = (area, px²); dxf.n_points = (count, punti); dxf.points_in_pct = (ratio, %); dxf.distance_max = (length, mm).
  • test_validate_lists_numeric_outputs resta verde.
  • Suite: uv run --python 3.13 --extra vision --extra vision-worker --extra dev pytest src/vision/tests src/vision_worker/tests; poi uv run pytest src/backend/tests -q -k vision.

NON TOCCARE: vendor/visionsuite (submodule), template frontend (task_editor.html già compone «quantity, unit»), nomi delle chiavi, src/backend.
DEPLOY: PC fiera DESKTOP-RABEHJJ, file src/vision/runner.py; serve riavvio TMF (chiedere ad Adriano prima: fiera in corso).

ESITO: richiesta (analisi passo 1, Opus 5.5 claude-opus-5-5) RIF: gitea:Adriano/TieMeasureFlow#83 (wizard ricetta DXF), richiesta Adriano 28/10/2026 in fiera: «sistema etichette nel caso di pezzo.count» COSA: nel menu «Uscita visione» dell'editor task, le uscite non dimensionali hanno etichetta sbagliata o assente. VERIFICATO: GET /api/vision/tasks/10/recipe sul PC fiera (ricetta wizard LocateBlob+CompareDxf) → outputs: pezzo.count (None, None), pezzo.area (None, None), dxf.n_points (length, mm), dxf.points_in_pct (ratio, None), dxf.distance_* (length, mm). CAUSA: src/vision/runner.py validate_graph (righe ~242-261): quantity = value_quantities.get(prop.name, tool.quantity) per OGNI uscita OUT, anche quelle fuori da tool.values → n_points eredita «length» del tool; LocateBlob (non dimensionale) non dà nulla; ratio senza unità. MODIFICHE (solo src/vision/runner.py, validate_graph): 1. Uscite in tool.values: logica attuale invariata; in più quantity "ratio" → unit "%". 2. Uscite fuori da tool.values: MAI tool.quantity. quantity = value_quantities.get(nome) se dichiarata; altrimenti da tabella modulo _ETICHETTE_EXTRA = {"count": ("count", "pz"), "n_points": ("count", "punti"), "area": ("area", "px²")}; altrimenti (None, None). 3. Forma di ogni voce invariata: {key, quantity, unit}. Commento inline su ogni modifica (regola utente). TEST (src/vision/tests/test_runner.py): - grafo del wizard (src/vision/costruttori.py, LocateBlob «pezzo» + CompareDxf «dxf» con nominal_unit mm) o equivalente con sample.dxf: pezzo.count = (count, pz); pezzo.area = (area, px²); dxf.n_points = (count, punti); dxf.points_in_pct = (ratio, %); dxf.distance_max = (length, mm). - test_validate_lists_numeric_outputs resta verde. - Suite: uv run --python 3.13 --extra vision --extra vision-worker --extra dev pytest src/vision/tests src/vision_worker/tests; poi uv run pytest src/backend/tests -q -k vision. NON TOCCARE: vendor/visionsuite (submodule), template frontend (task_editor.html già compone «quantity, unit»), nomi delle chiavi, src/backend. DEPLOY: PC fiera DESKTOP-RABEHJJ, file src/vision/runner.py; serve riavvio TMF (chiedere ad Adriano prima: fiera in corso).
Adriano added the bug label 2026-10-28 11:14:37 +00:00
Author
Owner

Soluzione

ESITO: fatto
COSA: validate_graph etichetta le uscite non dimensionali senza ereditare tool.quantity; ratio in %.
FILE: src/vision/runner.py — _ETICHETTE_EXTRA {count: (count, pz), n_points: (count, punti), area: (area, px²)}; ramo values invariato; ratio → unit % (ca6cd0c, Sonnet)
FILE: src/vision/tests/test_runner.py — test_validate_labels_wizard_outputs (grafo costruttori.graph)
RAMO: lavoro/daitarn-tmf-dxfcal @ ca6cd0c (pushato)
PROVA: test nuovo con runner.py di 34c251a → 1 failed; con la correzione: src/vision/tests + src/vision_worker/tests → 60 passed; --extra server: src/backend/tests -k vision → 110 passed
DEPLOY: DESKTOP-RABEHJJ 28/10/2026, backup C:\Tielogic\backup\pre-112\runner.py, riavvio TMF 30 s; GET /api/vision/tasks/10/recipe → pezzo.count (count, pz), pezzo.area (area, px²), dxf.n_points (count, punti), dxf.points_in_pct (ratio, %), dxf.distance
* (length, mm)

**Soluzione** ESITO: fatto COSA: validate_graph etichetta le uscite non dimensionali senza ereditare tool.quantity; ratio in %. FILE: src/vision/runner.py — _ETICHETTE_EXTRA {count: (count, pz), n_points: (count, punti), area: (area, px²)}; ramo values invariato; ratio → unit % (ca6cd0c, Sonnet) FILE: src/vision/tests/test_runner.py — test_validate_labels_wizard_outputs (grafo costruttori._graph) RAMO: lavoro/daitarn-tmf-dxfcal @ ca6cd0c (pushato) PROVA: test nuovo con runner.py di 34c251a → 1 failed; con la correzione: src/vision/tests + src/vision_worker/tests → 60 passed; --extra server: src/backend/tests -k vision → 110 passed DEPLOY: DESKTOP-RABEHJJ 28/10/2026, backup C:\Tielogic\backup\pre-112\runner.py, riavvio TMF 30 s; GET /api/vision/tasks/10/recipe → pezzo.count (count, pz), pezzo.area (area, px²), dxf.n_points (count, punti), dxf.points_in_pct (ratio, %), dxf.distance_* (length, mm)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Adriano/TieMeasureFlow#112