feat(celular): rosto e app usam SSE e token; remove telas legadas

- carinha.html assina /eventos (expressao, app_config, conversa, reacao,
  recarregar) e volta ao polling de /fila sozinho se o SSE cair; foto dos
  ajustes a cada (re)conexao; token (?t=) vai em todo fetch ao servidor
- APK 0.8-token: token nas preferencias e no menu de toque longo, enviado
  na pagina, no HTTP do Java e ao llama-server (--api-key); trocar servidor
  por Intent exige o token salvo; camera/microfone so para o servidor
  configurado ou a copia local
- cerebro/conversa mandam a chave ao llama-server do S10
- servidor: evento SSE 'recarregar'; remove /camera/frame e /app/connect;
  enderecos antigos redirecionam para a secao do painel novo
- remove dashboard, painel, conversa, emojis, treinamento, braco, servos,
  api, scripts e CSS antigos, audio-robot.js e servir-local.bat
- logica pura do painel em web/src/lib/nucleo.ts com testes node --test
  (substitui test_movimentos.js e test_rastreamento.js)
- testes de navegador portados para o painel novo (rtc, rosto, rastreamento)
- README, docs/PAINEL.md e docs/SEGURANCA.md reescritos; versao 0.8.0;
  carinha-pc.service le /etc/carinha.env

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
julio
2026-10-05 20:11:58 -03:00
co-authored by Claude Opus 5.5
parent 673dea62e8
commit c5fd54c1d9
67 changed files with 626 additions and 5904 deletions
+17 -4
View File
@@ -25,10 +25,23 @@ ou `seguranca.json` na pasta do servidor (fora do git):
Sem token configurado o servidor fica aberto na rede local, como antes.
> **Ordem de ativação.** O painel antigo e o `carinha.html`/APK atuais ainda não enviam token.
> Ative o token na placa só depois de publicar o painel novo e o rosto/APK com suporte a token
> (fases 2–5 do plano de modernização). Até lá o servidor já aplica as demais proteções:
> checagem de Origin em todos os POST, comandos validados e E-Stop.
## Como ativar (ordem importa)
1. Publique servidor e painel 0.8 (`deploy.ps1`) e instale o APK `0.8-token` no S10.
2. No S10: toque longo › **Token do servidor** › digite o token. O app passa a mandar o token
na página do rosto (`?t=`), nos pedidos Java e no llama-server local (`--api-key`).
3. Na placa: `echo 'CARINHA_TOKEN=...' | sudo tee /etc/carinha.env && sudo chmod 600 /etc/carinha.env`
e `sudo systemctl restart carinha-pc`. O serviço lê o arquivo (`EnvironmentFile=`).
4. Abra o painel: ele pede o token uma vez e guarda só naquele navegador.
O cérebro da placa usa o mesmo token para falar com o llama-server do S10
(ou `CARINHA_IA_CHAVE`, se forem diferentes).
## App Android
- Com token salvo, trocar o servidor por Intent (`adb shell am start ... -e servidor URL`) exige
`-e token <token>`; outro app não consegue redirecionar o rosto.
- Câmera e microfone só são liberados para a página do servidor configurado ou para a cópia local.
## E-Stop