Commit Graph

170 Commits

Author SHA1 Message Date
VPS 4 Deploy Agent 7cdd82eeb4 fix(sync): re-upload correto quando arquivo foi deletado do storage
continuous-integration/webhook Deploy concluído (VPS4)
- storage.js: adiciona fileExists() com HeadObject (sem baixar o arquivo)
- check-image-exists: verifica existência física no storage, não só no banco;
  se registro existe mas arquivo não, apaga o registro órfão e retorna exists=false
- send-image: mesma lógica — registro órfão é removido e re-upload prossegue
- Remove migrate-to-wasabi.js do repositório

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 02:33:33 +02:00
VPS 4 Deploy Agent 91881ab7a3 chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-31 01:58:36 +02:00
VPS 4 Deploy Agent 21f33c88a4 feat(storage): reorganiza Wasabi com estrutura clinic_name/pc_name/patient_name
continuous-integration/webhook Deploy concluído (VPS4)
- Adiciona coluna clinic_name em images (ALTER TABLE IF NOT EXISTS)
- Todas as funções de storage recebem clinicName como parâmetro: saveImage,
  getImageBuffer, getImageUrl, deleteImage, getDownloadPresignedUrl, getUploadPresignedUrl
- Chave Wasabi passa de pc_name/patient/arquivo → clinic_name/pc_name/patient/arquivo
- server.js: usa socket.user.clinicName (preenchido via machine_token auth do DB) como
  fonte primária do nome da clínica nos 3 handlers de upload e na rota thumbnail
- Todos os INSERTs em images passam a gravar clinic_name
- Corrige bug oculto: wipe de clínica agora apaga o prefixo correto no Wasabi
- Scripts utilitários atualizados: backfill-wasabi-thumbs, recreate-all-thumbs, migrate-to-wasabi
- client-monitor.js: envia clinicName no client-identify (fallback para clientes legados)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 01:56:18 +02:00
VPS 4 Deploy Agent 651afb49bc chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-31 01:34:01 +02:00
VPS 4 Deploy Agent 22be2adefd fix(clinics): adiciona campo senha no formulário de cadastro de clínica
continuous-integration/webhook Deploy concluído (VPS4)
- Form não enviava password → servidor retornava 400 em todo cadastro
- Adicionado input password no modal de cadastro
- pc_name tornado opcional no servidor (já era opcional no UI)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 01:30:52 +02:00
VPS 4 Deploy Agent 7fec895778 chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-31 01:13:37 +02:00
VPS 4 Deploy Agent f158325002 fix(client): renomeia RF Dental → Score Client e corrige URL do executável
continuous-integration/webhook Deploy concluído (VPS4)
- Troca nome do sistema de "RF Dental" para "Score Client" em toda UI (título, sidebar, login, página de download)
- Corrige link de download: era hardcoded /updates/RFDental-Setup.exe (inexistente), agora lê o nome real do arquivo a partir do latest.yml e constrói URL versionada dinamicamente

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 01:08:07 +02:00
VPS 4 Deploy Agent 16f16d7d8e chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-30 23:46:12 +02:00
VPS 4 Deploy Agent 8796558fa3 feat(clinics): wipe cirúrgico por dispositivo — apaga banco + pasta Wasabi só da clínica; remove Zerar Sistema da sidebar
continuous-integration/webhook Deploy concluído (VPS4)
- DELETE /admin/clinics/:id/wipe: apaga images/gto_images do banco (WHERE client_name),
  lista e deleta em batch todos os objetos Wasabi com prefixo 'clinic_name/',
  e remove o registro do dispositivo
- UI: botão 'Limpar dados' (🧹) separado do 🗑️ (remove só o cadastro),
  modal com aviso, confirmação e log da operação
- Sidebar: remove link 'Zerar Sistema'
2026-05-30 23:42:46 +02:00
VPS 4 Deploy Agent e0ddb7e0ec chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-30 23:29:56 +02:00
VPS 4 Deploy Agent c7f24fc8d2 fix(a11y): add id/name and htmlFor to all form fields — fix browser warnings about unlabeled inputs
continuous-integration/webhook Deploy concluído (VPS4)
2026-05-30 23:27:00 +02:00
VPS 4 Deploy Agent 61a4c3ab76 chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-30 23:11:45 +02:00
VPS 4 Deploy Agent 7861ad5870 fix(transform): overflow:hidden no painel + imagem 65% (65%×√2≈92% — cabe em qualquer ângulo)
continuous-integration/webhook Deploy concluído (VPS4)
2026-05-30 23:08:17 +02:00
VPS 4 Deploy Agent 2bdd78ec59 chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-30 21:29:25 +02:00
VPS 4 Deploy Agent 3f3e5fc33b fix(transform): imagens não cortadas nas 4 posições (70%=1/√2) e no ajuste fino (sem overflow hidden)
continuous-integration/webhook Deploy concluído (VPS4)
2026-05-30 21:26:48 +02:00
VPS 4 Deploy Agent ca74ccf0d4 chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-30 21:20:47 +02:00
VPS 4 Deploy Agent 568e42abdd fix(transform): botão Posições no header antes do nome + imagens não estouram no ajuste fino
continuous-integration/webhook Deploy concluído (VPS4)
2026-05-30 21:17:06 +02:00
VPS 4 Deploy Agent f90188b6f3 chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-30 21:08:06 +02:00
VPS 4 Deploy Agent 74a8fa7fc4 feat(transform): páginas de orientação (flip H/V), downloads (orientada+original), vincular GTO no ajuste fino e marcar GTO enviada
continuous-integration/webhook Deploy concluído (VPS4)
- Passo de escolha: Avançar/Voltar entre rotações, espelho H e espelho V (12 orientações)
- Ajuste fino: botões Baixar orientada/original (canvas), Vincular à GTO, Salvar imagem e orientação
- View GTO: badge ENVIADA + botão 'Imagem enviada' (persiste via POST /gtos/:id/sent), baixar imagem
- Backend: coluna gtos.sent/sent_at + rota POST /gtos/:id/sent
2026-05-30 21:04:42 +02:00
VPS 4 Deploy Agent 79c6012fbe chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-30 20:19:53 +02:00
VPS 4 Deploy Agent 60d6474b25 feat(transform): passo de escolha entre 4 posições (0/90/180/270) antes do ajuste fino
continuous-integration/webhook Deploy concluído (VPS4)
Ao clicar em Orientar, primeiro mostra 4 rotações da imagem para escolher a
orientação grossa; ao clicar numa, abre o ajuste fino (escolhida + original)
com botão para voltar. Rotação salva = orientação escolhida + ajuste fino.
2026-05-30 20:14:56 +02:00
VPS 4 Deploy Agent 38209048b8 perf(thumbnail): cache imutável de 1 ano no navegador (repeat visit = 0 request) 2026-05-30 19:48:19 +02:00
VPS 4 Deploy Agent 3f624111f4 chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-30 19:40:49 +02:00
VPS 4 Deploy Agent 5962a9ef81 style(sidebar): reduz espaço vertical no topo e base (padding 24->10, header sem vertical)
continuous-integration/webhook Deploy concluído (VPS4)
2026-05-30 19:36:13 +02:00
VPS 4 Deploy Agent 3674a9650d chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-30 19:26:54 +02:00
VPS 4 Deploy Agent c393b8394c style(sidebar): espaço acima do header e remove padding inferior
continuous-integration/webhook Deploy concluído (VPS4)
2026-05-30 19:23:07 +02:00
VPS 4 Deploy Agent 928aedccc4 chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-30 19:09:15 +02:00
VPS 4 Deploy Agent b59eae1641 fix(wasabi): reload S3 client after saving credentials (403 persistia com chave antiga em memória)
continuous-integration/webhook Deploy concluído (VPS4)
2026-05-30 19:03:30 +02:00
VPS 4 Deploy Agent ed21e67686 chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-30 18:54:32 +02:00
VPS 4 Deploy Agent 69794a5688 fix(deploy): force devDependencies install for React build (NODE_ENV=production skips vite)
continuous-integration/webhook Deploy concluído (VPS4)
2026-05-30 18:51:24 +02:00
VPS 4 Deploy Agent 12891da889 fix(thumbnail): serve image bytes directly + on-demand thumb generation with Wasabi backfill
continuous-integration/webhook Falha no deploy (VPS4)
O endpoint /api/images/:id/thumbnail retornava JSON {url}, mas o React aponta
<img src> direto para ele, causando placeholders cinza (sem erro no devtools).
Agora serve image/jpeg diretamente. Quando thumb_filename é null, puxa a original,
gera a thumb na hora, serve imediatamente e faz backfill no Wasabi + atualiza o banco.
2026-05-30 18:48:25 +02:00
VPS 4 Deploy Agent 1a5ac83f53 chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-30 18:37:59 +02:00
VPS 4 Deploy Agent 19d74cdde9 fix: remove legacy html routes causing 500 error
continuous-integration/webhook Falha no deploy (VPS4)
2026-05-30 18:35:25 +02:00
VPS 4 Deploy Agent 23cbbf1275 chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-30 18:31:22 +02:00
VPS 4 Deploy Agent d6ae290e56 feat: migrate vanilla js to react vite spa
continuous-integration/webhook Falha no deploy (VPS4)
2026-05-30 18:26:56 +02:00
VPS 4 Deploy Agent 3bc1161d95 chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-30 17:49:16 +02:00
VPS 4 Deploy Agent e232a81d66 fix: include latest_image_id in patients query — fix /api/images/undefined/thumbnail
continuous-integration/webhook Deploy concluído (VPS4)
2026-05-30 17:46:47 +02:00
VPS 4 Deploy Agent 83f4b708ee chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-30 17:37:53 +02:00
VPS 4 Deploy Agent 558c3a3ce5 fix: register public thumbnail route before auth middleware — use router before authenticateToken
continuous-integration/webhook Deploy concluído (VPS4)
2026-05-30 17:34:50 +02:00
VPS 4 Deploy Agent 879a307761 chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-30 17:34:28 +02:00
VPS 4 Deploy Agent 76f76f3c90 fix: add public thumbnail endpoint without auth — allow images to load without login
continuous-integration/webhook Deploy concluído (VPS4)
2026-05-30 17:32:09 +02:00
VPS 4 Deploy Agent b6c7ee4255 chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-30 17:30:24 +02:00
VPS 4 Deploy Agent 02dcbc3fae fix: lazy-load Wasabi URLs to prevent socket.io timeout — check local files first, generate signed URLs on-demand
continuous-integration/webhook Deploy concluído (VPS4)
2026-05-30 17:27:44 +02:00
VPS 4 Deploy Agent 39d162c282 chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-30 17:26:16 +02:00
VPS 4 Deploy Agent b76bb14b0a fix: serve Wasabi image URLs instead of local /uploads/ paths — prevent broken image links
continuous-integration/webhook Deploy concluído (VPS4)
2026-05-30 17:22:11 +02:00
VPS 4 Deploy Agent cf653558c4 chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-30 17:13:14 +02:00
VPS 4 Deploy Agent 33f5acf331 fix: include version.txt and index.html in rsync to keep VPS1 in sync
continuous-integration/webhook Deploy concluído (VPS4)
2026-05-30 17:10:40 +02:00
VPS 4 Deploy Agent 41dadfb620 chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-30 16:57:44 +02:00
VPS 4 Deploy Agent 535e0d198e fix: remove .env.prod rsync (file doesn't exist)
continuous-integration/webhook Deploy concluído (VPS4)
2026-05-30 16:54:36 +02:00
VPS 4 Deploy Agent 86b06bec30 perf: switch to Modelo A - build on VPS4, ship image to VPS1 (10x faster ~30s)
continuous-integration/webhook Falha no deploy (VPS4)
2026-05-30 16:35:14 +02:00