Files
carinha-control-panel/docs/DASHBOARD.md
T
julioandClaude Opus 5.5 c5fd54c1d9 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>
2026-10-05 20:11:58 -03:00

35 lines
3.5 KiB
Markdown

> **Histórico.** Este dashboard foi substituído pelo painel 0.8 em Svelte: veja [PAINEL.md](PAINEL.md).
# Dashboard Carinha — 05/10/2026
Objetivo: unificar todas as páginas de operação em tema escuro/ciano com navegação lateral. A tela do celular continua em tela cheia.
## Revisão
- Navegação repetida em cinco páginas, com nomes e estilos diferentes.
- Conversar copiava grande parte do CSS de câmera, incluindo regras sem elementos correspondentes.
- Braço possuía duas camadas de CSS e tema claro divergente.
- Treinamento misturava rotina, geração e biblioteca de reações.
- Chave/modelo Gemini só eram configuráveis fora da interface.
- Biblioteca permitia prévia e feedback, mas não edição, duplicação, desativação ou desfazer.
## Organização
Visão geral, Câmera e rosto, Conversar, Emojis, Treinamento, Servos, Braço, API. Shell, tipografia, campos, botões, navegação e estados compartilhados. Regras específicas de câmera e braço ficam separadas.
Emojis: biblioteca com busca, prévia, mostrar/parar no celular, edição de metadados e emoji pronto, criação manual, duplicar, ativar/desativar e excluir com desfazer persistente. SVG gerado é preservado; mudar para emoji é uma ação explícita. Desativar impede a escolha automática pela conversa.
API: visualizar estado sem revelar a chave, trocar chave/modelo Gemini, testar conexão. Chaves ficam em arquivo privado no servidor, nunca nas respostas HTTP ou Git. Não adicionar provedores que não possuem integração.
Calibrações, bancos e serviço existentes preservados. Nenhum movimento de motor é disparado ao abrir telas. Validação: testes de API/reversibilidade e navegação responsiva de todas as telas, sem erros JS; fluxos atuais de conversa, câmera e servos mantidos.
## Entrega e verificações
Oito páginas usam o mesmo menu lateral e o mesmo tema. Removidos os blocos de CSS genérico repetidos, a navegação inline e o CSS de câmera que havia sido copiado para Conversar. A biblioteca foi separada de Treinamento. Exemplares de SVG continuam intactos. O feedback também participa do desfazer.
45 testes Python passaram, incluindo migração de banco antigo, recuperação de SVG e histórico persistente, confidencialidade da chave, API, conversa, treinamento e controles dos servos. Testes de navegador verificaram oito páginas com menu ativo, largura de 390 px sem rolagem horizontal e ausência de erros JavaScript. Criar, prévia de emoji dentro dos olhos sem íris branca, excluir, desfazer e parar passaram em servidor de teste separado. No Orange Pi, as oito rotas publicadas foram verificadas, acesso ao arquivo privado retornou 404 e o teste real do Gemini respondeu em 0,77 s. Não foi realizado teste físico de motores.
Backup prévio de HTML/JS/Python e banco de treinamento: /opt/carinha-pc/backup-dashboard-20261005. Configurações dos servos e do braço não foram alteradas. Para voltar ao código anterior de treinamento, também é necessário restaurar o banco anterior, pois a migração acrescenta colunas; restauração do backup do banco perde as alterações feitas após esse backup.
Duplicações intencionais: carinha.html também é embutido no APK para fallback sem servidor; tabelas de gestos no renderer/servidor representam o protocolo existente. Não foram removidas durante o redesenho.
A tela API cobre o provedor integrado Gemini e aponta para a opção local Qwen. DeepSeek não foi integrado nesta reformulação. O painel continua destinado à rede local, sem login de usuários.