Loading
fits-viewer.js: sequence-guard sul canvas primario + fix panner
_refreshPrimary() (REST) e il listener WebSocket "fits-preview" dipingevano entrambi cv-main/cv-pano senza guardia d'ordine: se la catena REST finiva dopo un push WS piu' recente, sovrascriveva con un frame vecchio (flicker su scicam1). Aggiunti _nextPrimarySeq()/_isPrimaryStale(), stesso pattern gia' in uso per le tile (_tileSeq/_pendingTileSeq): ogni produttore mina un numero di sequenza e lo ricontrolla subito prima di disegnare, scartando risposte superate da un aggiornamento piu' recente. Corretto anche il pannello panoramico: il push WS dipingeva cv-pano e poi _drawPanoViewport() lo cancellava subito ridisegnando dal vecchio this._panImage (mai aggiornato dal push) — la scrittura WS non aveva mai alcun effetto visibile. Ora _panImage viene aggiornato con l'immagine appena ricevuta prima di richiamare _drawPanoViewport().