handleMeasurement è rientrante: doppia lettura = doppio record e quota saltata #13
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À: alta
FILE: src/frontend/flask_app/templates/measure/task_execute.html:1192, 1245-1248, 1279, 1289-1297
COSA:
savingtorna false PRIMA dell'attesa di 1 s del feedback;currentIndexavanza dopo. Una seconda lettura in quella finestra è salvata sulla stessa quota; i dueadvanceToNext()saltano una quota. Nessun controllo sushowCompletionOverlay,showSupervisorModal,isPaused.INPUT: doppia pressione del tasto DATA, o due letture entro ~1 s.
VERIFICATO: lettura del codice alle righe citate. Non eseguito in browser.
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:22:27Z
ramo:
lavoro/jeeg· capacità: docker, gpu, systemdANALISI (passo 1) — ramo
lavoro/jeeg, worktree~/lavoro/TieMeasureFlowsu jeeg, lotto B1MODIFICHE: src/frontend/flask_app/templates/measure/task_execute.html
handleMeasurement— guardia di rientranza unicathis.busy: true all'ingresso, false solo DOPO l'avanzamento (advanceToNext) o dopo l'errore;savingresta per la UI. All'ingresso esci anche seshowCompletionOverlay,showSupervisorModal,isPausedocycleConfirmedin attesa. Una lettura scartata perché busy non deve sparire in silenzio: emetti il feedback d'errore sonoro/visivo già esistente («lettura ignorata, attendere»).TEST: non c'è infrastruttura browser: estrai la logica minima verificabile? NO — non rifattorizzare. Verifica a lettura e scrivi nel rapporto i passi manuali di prova.
Soluzione
ESITO: fatto
COSA: Guardia unica
busyin handleMeasurement, tenuta fino all'avanzamento; le letture con overlay, modale capoturno, pausa o ciclo confermato sono rifiutate con messaggio «Lettura ignorata: attendere». Verificato a lettura che la rimisura dal modale resta possibile. PROVA MANUALE sul tablet: due letture entro 1 s → un solo record, nessuna quota saltata.COMMIT (ramo lavoro/jeeg, unito su V3.0.0 a
d483fa1):31fa78bPROVA:
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).