feat(client): pausar/continuar envio com auto-retomada após 10 min

- Checkbox "Pausar Envio de Imagens" na bandeja (tray)
- Auto-retomada automática após 10 min de pausa (caso usuário esqueça)
- client-monitor: comandos IPC pause/resume; processQueue e executarSincronizacaoLocal
  respeitam a pausa, mantendo imagens na fila sem perdê-las
- Estado de pausa reaplicado se o monitor reiniciar
- "Forçar Sincronização" retoma o envio automaticamente se estiver pausado
- Bump 1.2.7 → 1.2.8

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
VPS 4 Builder
2026-05-31 02:57:43 +02:00
parent bfcf84c5ac
commit 3c6b62126e
3 changed files with 83 additions and 8 deletions
+17 -4
View File
@@ -1128,8 +1128,12 @@ async function executarSincronizacaoLocal() {
let processadas = 0;
for (const file of imagens) {
if (isSendingPaused) {
addLog(`⏸️ Envio pausado durante a sincronização — interrompendo. ${processadas} já processadas.`);
break;
}
const filePath = path.join(pastaImagensSensor, file);
const stat = fs.statSync(filePath);
if (stat.isDirectory()) {
continue;
@@ -1156,12 +1160,17 @@ async function executarSincronizacaoLocal() {
// Fila para processar uploads de forma sequencial
const uploadQueue = [];
let isProcessingQueue = false;
let isSendingPaused = false; // Controle de pausa/continuação do envio
async function processQueue() {
if (isProcessingQueue) return;
if (isSendingPaused) {
addLog(`⏸️ Envio pausado — ${uploadQueue.length} imagem(ns) aguardando na fila.`);
return;
}
isProcessingQueue = true;
while (uploadQueue.length > 0) {
while (uploadQueue.length > 0 && !isSendingPaused) {
const item = uploadQueue.shift();
const nextPath = item.filePath;
const isBacklog = item.isBacklog;
@@ -1171,8 +1180,12 @@ async function processQueue() {
addLog(`⚠️ Falha ao processar upload de ${path.basename(nextPath)}: ${e.message}`);
}
}
isProcessingQueue = false;
if (isSendingPaused && uploadQueue.length > 0) {
addLog(`⏸️ Envio pausado — ${uploadQueue.length} imagem(ns) permanecem na fila.`);
}
}
// Função de Monitoramento da Pasta de Imagens (Chokidar)