KORVAX - PATCH DE PUBLICAÇÃO SEM TRAVAR NO SHA-256

PROBLEMA CORRIGIDO
==================
O upload chegava a 100% e a tela parava em:
"Calculando SHA-256..."

O SHA-256 era calculado no servidor PHP depois do upload. A publicação ficava
presa na mesma requisição e podia terminar em erro/timeout.

NOVA ARQUITETURA
================
1. O navegador calcula o SHA-256 localmente antes do upload.
2. O painel envia o instalador + SHA-256.
3. O PHP salva o .exe diretamente em:
   public_html/update.korvax.tech/downloads/<produto>/<versao>/
4. O PHP registra a atualização no banco.
5. O arquivo é servido diretamente pelo Apache/LiteSpeed, sem PHP.
6. A API retorna a URL estática do instalador.

ARQUIVOS
========
public_html/admin/updates.php

public_html/update.korvax.tech/
  health.php
  api/v1/update.php
  downloads/.htaccess
  data/.htaccess

COMO INSTALAR
=============
1. Substitua:
   public_html/admin/updates.php

2. Copie o conteúdo da pasta "update.korvax.tech" deste ZIP para:
   public_html/update.korvax.tech/

3. Confirme que estas pastas existem:
   public_html/update.korvax.tech/api/v1
   public_html/update.korvax.tech/downloads
   public_html/update.korvax.tech/data

4. Permissões recomendadas:
   pastas: 0755

5. Teste:
   https://update.korvax.tech/health.php

Esperado:
{"ok":true,"service":"Korvax Update Server",...}

6. Depois teste:
   https://update.korvax.tech/api/v1/update.php?product=korvax-controle-acesso&channel=stable

7. Por fim, publique o instalador pelo painel:
   korvax.tech/admin/updates.php

OBSERVAÇÃO
==========
Se o banco ainda não possuir a tabela korvax_updates, execute antes o SQL do
patch Korvax Cloud já fornecido anteriormente.

SEGURANÇA/INTEGRIDADE
=====================
O hash é calculado sobre o arquivo original no computador administrativo.
Se o upload for corrompido, o programa cliente rejeitará o instalador porque o
SHA-256 baixado não corresponderá ao hash registrado.
