feat: initial commit - Carinha Control Panel v1.0 com UI glassmorphism, watch-bar, emojis, braco robotico e conversa IA
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
# Treinamento e reações dinâmicas — 2026-10-05
|
||||
|
||||
## Visual sem frases e chuva de símbolos
|
||||
|
||||
Preferência aprovada: textos de conversa ficam apenas em /conversa; o celular exibe rosto e símbolos. Receitas antigas continuam válidas, mas suas legendas não são desenhadas. Música gera 16 notas caindo do topo; comemoração e carinho usam estrelas e corações. Café e ideia conservam um símbolo isolado, sem chuva. A chuva é curta, com posições/durações variadas e limpeza das partículas ao terminar ou substituir a reação. O prompt das novas receitas pede legenda vazia e símbolos coerentes com o assunto.
|
||||
|
||||
Teste em navegador confirmou 16 partículas, deslocamento vertical descendente, ausência de frase/balão e limpeza após o efeito. Reabra o app conectado para receber o HTML atualizado. Não gera novas imagens de figurinhas neste incremento.
|
||||
|
||||
Design aprovado: nova aba /treinamento, rotina e preferências, diário de conversas, resumo de uma hora, biblioteca de animações e feedback. É aprendizado por contexto; os pesos do Gemini não são treinados.
|
||||
|
||||
## Uso
|
||||
|
||||
1. Abra /treinamento e registre sua rotina ou converse no painel.
|
||||
2. Clique Criar reações agora. Gemini Flash Lite gera um resumo e três novas receitas de animação.
|
||||
3. Prévia anima o desenho dentro da aba. Mostrar no celular publica a reação; o app conectado consulta e renderiza. ACK do servidor não é confirmação visual do aparelho.
|
||||
4. Gostei/Não gostei ficam salvos. O próximo pedido de geração recebe as avaliações; o Gemini da conversa pode escolher entre as cinco últimas reações que não tenham avaliação negativa.
|
||||
5. Opcionalmente ative geração por hora. Está desligada por padrão. O servidor verifica a cada 30 segundos e gera após um intervalo de uma hora se houve nova conversa, sem movimentar motores. Abrir a aba não gera chamada. Reiniciar o serviço reinicia a contagem do intervalo.
|
||||
|
||||
## Diário e memória
|
||||
|
||||
treinamento.db no Orange Pi guarda rotinas, diário com horário, resumos e reações. Conversas são copiadas para o diário a partir da atualização; não retrodatamos conversas anteriores. O resumo usa até 200 mensagens da última hora e o último resumo. UI mostra 50 eventos e 30 reações; retenção: 2000 eventos, 100 reações e 100 resumos. Rotinas têm limite de 30 entradas, 300 caracteres cada, e também entram no contexto da conversa Gemini.
|
||||
|
||||
Atividades descritas pelo usuário são relatos; este diário não registra sensores ou ações físicas verificadas. O modelo pode cometer erros ao resumir. Apagar diário e resumos mantém rotinas e reações; apagar conversas e lembranças no painel também limpa diário/resumos. Rotinas podem ser apagadas individualmente.
|
||||
|
||||
## Renderização
|
||||
|
||||
Receitas contêm nome, motivo, legenda, símbolo e até seis passos. Cada passo define forma dos olhos e boca, cor de uma paleta, deslocamento limitado, escala e duração. O renderer usa o SVG existente, interpolação e símbolos animados. É composição procedural, não geração de imagens ou de código. Sobrancelhas seguem as opções e formas existentes do rosto. Receitas são validadas no servidor antes de salvar; o navegador também limita valores. Nenhum comando de servos é emitido.
|
||||
|
||||
O celular deve recarregar carinha.html para receber reacoes-render.js. Não há atualização de APK necessária no modo conectado. O fallback offline do APK antigo conserva as expressões anteriores.
|
||||
|
||||
## Verificação e limites
|
||||
|
||||
Gemini criou Comemoração, Dança Musical e Ideia Feliz a partir de uma conversa de teste. Em novo pedido, escolheu Dança Musical e publicou a receita para o app (2,58 s). Navegador verificou a prévia real e layout em 390 px, sem erros JS. Testes de validação, persistência, gatilho simulado de uma hora e catálogo passaram. A passagem física de uma hora e a exibição no celular não foram verificadas diretamente nesta sessão.
|
||||
|
||||
Dados de contexto são enviados ao Google quando Gemini é usado. A chave permanece no servidor. Geração manual/periódica consome cota; falhas são apresentadas na aba. As reações criadas inicialmente são dados de teste, avaliáveis/aproveitáveis pelo usuário.
|
||||
|
||||
Backup dos arquivos anteriores: /opt/carinha-pc/backup-treinamento-20261005. Para desativar geração periódica, desmarque a opção. Configurações do braço e dos servos foram preservadas.
|
||||
|
||||
## Ajuste visual aprovado
|
||||
|
||||
A queda foi substituida por simbolos em posicoes aleatorias que aparecem e desaparecem suavemente. Notas, estrelas e coracoes mantem posicao fixa durante cada efeito, com tempos diferentes e brilho leve. Teste do navegador confirmou ausencia de queda, animacao de opacidade e limpeza ao final. Atualize a previa e reabra o app conectado.
|
||||
|
||||
## Icones nos olhos
|
||||
|
||||
Ideia e cafe agora aparecem dentro de cada olho, acompanhando a posicao e a escala do desenho. O simbolo expira junto com a reacao. Teste do navegador confirmou dois icones contidos nos olhos, ausencia de legenda e restauracao ao terminar; efeito de simbolos piscando tambem passou. Reabra o app para atualizar o renderer do rosto.
|
||||
|
||||
A bolinha de brilho fica oculta enquanto ha icone dentro dos olhos e volta ao desenho normal ao terminar. Teste de navegador confirmou ocultacao e restauracao nos dois olhos.
|
||||
|
||||
## Refinamento visual — 05/10/2026
|
||||
Prévia ampliada para 360 px no computador, controles agrupados ao lado, textos mais curtos e botão Desenhar e mostrar destacado. Opções automáticas e registros ficam em seções expansíveis. O rosto mantém fundo preto, com halo discreto na cor dos olhos e interpolação mais suave dos movimentos. Ícones e figurinhas nos olhos continuam ocultando o brilho branco da íris.
|
||||
Validação: testes Chromium de prévia, SVG dentro e fora dos olhos, restauração do brilho e layout móvel de 390 px passaram sem erros JavaScript. A aparência física no celular depende de recarregar a tela HTML; não exige APK novo.
|
||||
|
||||
|
||||
### IP e confirmação da recarga
|
||||
O painel detecta o IP do celular pela origem da telemetria e preenche o endereço do servidor usado no navegador. Cada recarga recebe um identificador; a tela mostra Tela atualizada por quatro segundos e devolve o identificador na telemetria. O painel só informa sucesso após essa confirmação; após 12 segundos sem resposta, orienta reabrir o app. Uma tela HTML antiga precisa ser reaberta uma vez para receber o novo comando. Testes: 12 verificações HTTP, navegação única de recarga e teste Chromium de IP e aviso passaram. IP real recebido do celular: 192.168.1.16.
|
||||
|
||||
Reference in New Issue
Block a user