Skip to content

v0.12.0-dev

Choose a tag to compare

@github-actions github-actions released this 24 Jun 19:48
· 34 commits to master since this release
93b4c77

✨ Novidades

  • install: suporte a Termux + autostart (termux-services) (246c5d1)
  • install: install.sh sem root e sem systemd (modo usuário + sem serviço) (46d38dd)
  • docker: imagem multi-arch publicada no GHCR (amd64/arm64/arm-v7) (2cc98a6)
  • reports: rótulo das linhas do mapa de atividade em dd/mm/yyyy + dia da semana (f8c09bc)
  • ui: mover o sino "Eventos" para o topo do sidebar (1º item) (f17d6d0)
  • reports: período = data (fim) + janela; heatmap coerente + horas rotuladas (4e9192b)
  • recordings: modo "Gravações" lista todas as gravações do dia (7c9524d)
  • reports: heatmap temporal (dia da semana × hora) em /reports (ee26e3b)
  • recordings: busca por conteúdo em /recordings (288456d)
  • recordings: página global /recordings — navegador de momentos (MVP) (8a0f26a)
  • reports: período flexível (dropdown) e relatório por hora de um dia (6b13a8a)
  • reports: gráfico de eventos por dia como linha do tempo contínua (cdf1f72)
  • reports: tela de Relatórios — seletor de câmera, estados e redesenho (db9c075)
  • filmstrip: clicar no thumb seleciona o evento do chunk na hora (6194884)
  • events: unificar transições de estado no feed de eventos (e2f7f28)
  • pages: Fase 3 — Dispositivos e Relatórios (MVP de cada) (e7f8e30)
  • timeline: seleção do evento e filmstrip seguem o playback (409614c)
  • events: aba "Linha do tempo" com card de detalhe do evento (479bd94)
  • camera: filmstrip responsivo + seletor "Câmeras" no header do player (1b9331f)
  • timeline: filmstrip de miniaturas abaixo da timeline horizontal (9ca4dec)
  • timeline: ponteiro sincronizado e seek/scrub na timeline horizontal (69b3351)
  • timeline: timeline horizontal (escala) abaixo do player (d957b5d)
  • events: painel de eventos com chips de filtro, cards e calendário empilhado (5afd88a)
  • player: header do player com identidade redesenhada (badge AO VIVO pulsante) (792430f)
  • stats: barra de status do sistema no rodapé (CPU, memória, rede, conexão) (43f8a1b)
  • nav: nav rail global com itens rotulados, recolher menu e bloco de usuário (56cee47)
  • nav: link Estatísticas no settings e dropdown de configurações no header da câmera (a9ef9c5)
  • states: box do player ao vivo no tamanho real com loading e tela de Estados reorganizada (22f05ce)
  • states: tela de histórico de estados com thumbnails que rodam a gravação (2451ba3)
  • states: rodapé exibe o estado dos classificadores ao vivo + pisca na mudança (b63a5e2)
  • ui: notificação/rodapé do classificador com destinatários por usuário (f30124b)
  • states: notificação de estado condicional + destinatários por canal (notify/footer) (4b45719)
  • states: carrossel multi-seleção/filtro/ESC, fallback de gravação e URL de edição (02d3614)
  • ui: BboxCanvas com X de remover maior e prop rotatable (d87fe90)
  • states: slug nas pastas de classe + persiste o frame de origem das amostras (98c4d62)
  • states: treinar classificador a partir da lista (amostras já salvas) + "Treinar todos" (7009c8c)
  • ui: carrossel de eventos marca a última imagem selecionada ao reabrir (4f47b83)
  • ui: carrossel de eventos lembra a posição de rolagem ao reabrir (1897466)
  • ui: estado do classificador ao vivo + notificação na transição (c4b0f6a)
  • ui: configurar classificador de estado (crop + classes + gatilho) + wiring vivo (577e61f)
  • analysis: agendador de inferência de estado + verificação de N consecutivos (3ac4722)
  • server: config de classificador de estado por câmera (schema + API CRUD) (3278a9a)
  • yolo: modo classificação no serviço (treino + inferência yolov8n-cls) (830465a)
  • ui: padronizar botões das telas de settings + ajustes de UX (8d5d981)
  • timeline: régua/ponteiro coerente com o tema (shadcn) em dark e light (e77c395)
  • ui: CameraPage com Button shadcn nos controles (97118a1)
  • ui: Settings com componentes shadcn (2431d4a)
  • ui: Sidebar e Header com Button shadcn (b5adf9a)
  • ui: fundação shadcn/ui (setup + tokens + Button) (624a316)
  • timeline: régua mostra as 24h legíveis como uma régua (3a5e764)
  • timeline: navegação frame a frame com ← e → (d90d88e)

🐛 Correções

  • ui: glow de seleção do filmstrip invisível no modo claro (bb10264)
  • server: rota /recordings da SPA dá 401 no refresh/URL direta (0c47958)
  • states: histórico abre a gravação certa + data dd/mm e título com classificador (d52f6a2)
  • cameras: atualizar o nome da câmera não persiste (c4390dd)
  • filmstrip: estado verde, hover branco+zoom e ordem do card de estado (58f69a0)
  • nav: alinhar o sidebar ao mockup (Mapa, Configurações no topo) (eb90ccc)
  • states: histórico de estados refletido na URL (deep-link, reload e Voltar do navegador) (17e4698)
  • yolo: desabilitar flip horizontal no treino de classificação de estado (cffeb0b)
  • ui: criar classificador de estado não duplica ao salvar duas vezes (9024e37)
  • yolo: /classify 404 limpo p/ modelo não treinado + teste usa MODEL_DIR (df8354f)
  • yolo: modelo de classificação por classificador (estados não se misturam) (96e06a7)
  • recorder: reduzir reconnect padrão de 10s para 2s (fe808a5)
  • ui: normalizar avisos amarelos do AnalysisSettingsPage para warning/amber (17af43e)
  • ui: fechar o menu de modo de cor ao selecionar (sidebar) (6cc910a)
  • timeline: Ctrl+←/→ segurado não trava nem salta (98b0dc2)
  • timeline: gravação ativa sempre destacada (bloco azul) na régua (9c2555a)
  • timeline: frame a frame usa Ctrl+← / Ctrl+→ (9c61c4c)
  • server: playlist .m3u8 do HLS servida com no-cache (a47a55d)
  • timeline: régua e reprodução contínua respeitam o filtro apenas com movimento (eeee835)

♻️ Refatoração

  • ui: remover a página /devices (redundante com o detalhe da câmera) (d72e39e)
  • ui: quebrar tokens de tema em arquivos (primitivos / tema / base) (13e46b3)
  • timeline: aposentar a VerticalTimeline (40b48cc)
  • ui: Calendar/DatePicker unificado + Configurações aceso em /stats (6f1c75a)
  • ui: remover dependência lucide-react inlinando os ícones (d24cf7e)
  • ui: padronizar botões de nav/ícones no componente Button (fase 2) (df4e35c)
  • ui: padronizar botões de ação no componente Button (fase 1) (5d476de)

📚 Docs

  • states: documentar rodapé ao vivo dos classificadores no CLAUDE.md (5ba0288)
  • analysis: plano versionado do epic State Classification (e9f12a4)
  • workflow: extrai o fluxo de trabalho para docs/workflow.md (56d82ef)

🔧 Manutenção

  • yolo: aumenta shm_size do container para 4gb (b834445)
  • workflow: release file de ponta a ponta + remoção gated em [✓] (d8898f1)
  • workflow: merge-when-green acha o release file _next + remove story stray (1c27279)
  • workflow: merge-when-green apaga o story file ao deletar a branch (541eafc)
  • workflow: scripts await-review e await-approval para os gates (9d38e1c)
  • release: release file _next carimbado no corte (e125487)
  • workflow: push-pr.sh mergeia automaticamente ao final (5a5ed22)
  • workflow: gate de revisão da história antes da implementação (acac5b7)

Commits: v0.11.0-dev...v0.12.0-dev