Impostazioni non validate: csv_delimiter sbagliato blocca la chiusura delle produzioni #23
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
GRAVITÀ: media
FILE: src/backend/api/routers/settings.py:38-79 ; src/backend/services/production_export_service.py:106 ; src/backend/services/production_service.py:443
COSA:
PUT /api/settings/non valida nulla. Delimitatore vuoto o di più caratteri →csv.writerlancia TypeError dentroclose_run→ 500, rollback: la stazione non chiude più il run né ne apre un altro.INPUT: admin salva
{"csv_delimiter": ";;"}, poiPOST /api/production-runs/{id}/close.VERIFICATO: script pytest →
DELIM ';;' -> TypeError "delimiter" must be a 1-character string; idem stringa vuota.PRESUNTO: il blocco del run (percorso intero non eseguito).
ORIGINE: revisione fable del 21/09/2026 su ramo
V3.0.0, commit8cc5e82. Documento completo:_output/2026-09-21-TieMeasureFlow-revisione.mdsu Wasabi.⚡ jeeg — preso in carico 2026-09-21T20:23:01Z
ramo:
lavoro/jeeg· capacità: docker, gpu, systemdANALISI (passo 1) — ramo
lavoro/jeeg, worktree~/lavoro/TieMeasureFlowsu jeeg, lotto A3MODIFICHE: src/backend/api/routers/settings.py
PUT /api/settings/— validazione per chiave:csv_delimiteresattamente 1 carattere fra, ; \t |; per le altre chiavi note valida tipo/intervallo (leggi l'elenco delle chiavi usate: grepget_setting/chiavi in services) → 422. src/backend/services/production_export_service.py — difesa: delimitatore non valido letto dal DB → usa;e logga WARNING, cosìclose_runnon fallisce mai per questo.TEST: PUT
;;→ 422; PUT `` → 422; DB con valore sporco preesistente → close_run riesce.Soluzione
ESITO: fatto
COSA:
PUT /api/settings/valida per chiave (csv_delimiter un carattere fra , ; TAB |) → 422. In lettura un delimitatore sporco già nel DB ripiega su;con WARNING:close_runnon fallisce più per questo.COMMIT (ramo lavoro/jeeg, unito su V3.0.0 a
d483fa1):ea9da34PROVA:
uv run --extra server --extra client --extra dev pytest -q→ 622 passed, 4 skipped (erano 391); visione su Python 3.13 → 16 passed (erano 8).