Repository navigation
v0.12.0-dev
·
34 commits
to master
since this release
✨ 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