- corrigido o KeyError 'totalTracks' no cliente MCP: extração de structuredContent.data na resposta do servidor (SDK 2.0+)
- sincronizado cortes de vídeo e áudio usando razor_all_tracks em vez de split_clip por faixa, eliminando drift entre cortes
- atualizado hook para usar razor_all_tracks, isolando vídeo e áudio no mesmo instante
- adicionado simulador razor_all_tracks no dublê de teste
Resumo:
- 5 arquivos alterados
- 0 novos
- 5 modificados
- 0 removidos
5 files changed, 264 insertions(+), 12 deletions(-)
Arquivos:
- .jhonny/analises.db
- code/engine/editor/aplicador_de_plano_de_edicao.py
- code/engine/editor/escrita/escrita_no_editor.py
- code/engine/integracoes/visual/apple_vision_runner.swift
- code/engine/testes/duplos_de_premiere.py
- Instalado essentia-tensorflow no venv whisperx-transcricao (usado pelo painel CEP), corrigindo erro "A classificação musical precisa do suporte TensorFlow do Essentia" no catálogo de trilhas.
- Ligada a classificação de emoção da fala (ProviderDeEmocaoHuggingFace) ao scanner via nova flag `classificar_emocao`, e adicionado emoção/confiança como critério de desempate secundário no zoom da skill editar-por-voz.
- Zoom do caminho Python (aplicar_plano_de_edicao.py) passou a usar adjustment layer numa faixa de vídeo própria, em vez de escalar o clipe inteiro via set_clip_properties — mesma técnica já usada pelo executor .mjs do painel CEP.
- Adicionado campo "Carregar por ID" na aba Editar Vídeo do painel CEP (step 2), para carregar um plano do SQLite direto pelo plano_id quando ele não está associado a nenhum video_id conhecido (ex.: plano de um vídeo que este banco nunca escaneou).
- Trocado o campo de ID numérico por uma lista suspensa (novo listar_planos_de_edicao.py + RepositorioDePlanos.listar_todos_os_planos) que mostra data/hora e a intenção registrada pela skill em cada plano salvo, para escolher sem decorar o id.
Resumo:
- 15 arquivos alterados
- 2 novos
- 13 modificados
- 0 removidos
13 files changed, 451 insertions(+), 65 deletions(-)
Arquivos:
- .jhonny/analises.db
- code/cep-plugin/index.html
- code/cep-plugin/main.js
- code/engine/editor/aplicador_de_plano_de_edicao.py
- code/engine/editor/escrita/escrita_no_editor.py
- code/engine/executar_scanner.py
- code/engine/persistencia/repositorio_de_planos.py
- code/engine/scanner/configuracao_visual.py
- code/engine/testes/duplos_de_premiere.py
- code/engine/testes/test_aplicador_de_plano_de_edicao.py
- code/engine/testes/test_escrita_no_editor.py
- code/plugins/premiere-pro/skills/editar-por-voz/criterios/01-leitura-do-json.md
- code/plugins/premiere-pro/skills/editar-por-voz/criterios/05-zoom.md
- code/engine/listar_planos_de_edicao.py
- code/engine/testes/test_configuracao_visual_do_scanner.py
- carregamento automático da análise do Scanner ao abrir a aba Refinar
- simplificada a aba Editar vídeo para exibir análises disponíveis sem carregamento manual
- movida a visualização do tipo de vídeo para a guia Projeto com leitura do banco
Resumo:
- 10 arquivos alterados
- 2 novos
- 8 modificados
- 0 removidos
8 files changed, 114 insertions(+), 11 deletions(-)
Arquivos:
- .jhonny/analises.db
- code/cep-plugin/abas/projeto/projeto.js
- code/cep-plugin/index.html
- code/cep-plugin/main.js
- code/engine/integracoes/audio/__init__.py
- code/engine/integracoes/audio/modelos_de_analise_musical.py
- code/engine/integracoes/audio/provider_de_analise_musical_essentia.py
- code/engine/testes/test_analisador_de_musica_essentia.py
- code/engine/consultar_edicao_concluida.py
- code/engine/integracoes/audio/classificador_de_musica_essentia.py
- definido projeto com uma sequência e múltiplos arquivos de mídia
- criada persistência de projeto com uma sequência e seleções de faixas e clipes
- criada guia Projeto para selecionar sequência, faixas e clipes do Premiere
- adicionada gravação das seleções da guia Projeto no SQLite
Resumo:
- 10 arquivos alterados
- 4 novos
- 6 modificados
- 0 removidos
6 files changed, 71 insertions(+), 2 deletions(-)
Arquivos:
- .jhonny/analises.db
- CONTEXT.md
- code/cep-plugin/index.html
- code/cep-plugin/main.js
- code/engine/persistencia/__init__.py
- code/engine/persistencia/esquema.py
- code/cep-plugin/abas/
- code/engine/persistencia/repositorio_de_projetos.py
- code/engine/registrar_projeto_de_edicao.py
- code/engine/testes/test_repositorio_de_projetos.py
- copiada a skill editar-por-voz e seus critérios para as skills do projeto
- adaptada a skill editar-por-voz para usar o banco SQLite como fonte oficial
- corrigida a cópia do JSON do tipo de vídeo para priorizar clipboard Unicode
- criado carregador único do contexto de edição por voz a partir do SQLite
- criada entrada para registrar planos no SQLite e reaproveitar o mesmo plano na aplicação
- habilitado carregamento do plano editorial diretamente do SQLite na interface
- corrigido o bloqueio visual da etapa de carregamento do plano salvo
- configurado carregamento automático do plano salvo após selecionar a sequência
- documentada a sequência como raiz de retomada do fluxo de edição
- criada a estrutura local para análise de músicas instrumentais com Essentia
Resumo:
- 22 arquivos alterados
- 11 novos
- 11 modificados
- 0 removidos
11 files changed, 270 insertions(+), 34 deletions(-)
Arquivos:
- .jhonny/analises.db
- CONTEXT.md
- code/cep-plugin/index.html
- code/cep-plugin/main.js
- code/engine/README.md
- code/engine/aplicar_plano_de_edicao.py
- code/engine/integracoes/audio/__init__.py
- code/engine/persistencia/consultas.py
- code/engine/requirements-audio.txt
- code/engine/testes/test_consultas_de_persistencia.py
- code/tests/cep-tipos-video-encoding.test.ts
- code/.jhonny/
- code/engine/carregar_plano_de_edicao.py
- code/engine/integracoes/audio/contratos.py
- code/engine/integracoes/audio/modelos_de_analise_musical.py
- code/engine/integracoes/audio/provider_de_analise_musical_essentia.py
- code/engine/preparar_edicao_por_voz.py
- code/engine/registrar_plano_de_edicao.py
- code/engine/testes/test_analisador_de_musica_essentia.py
- code/engine/testes/test_carregar_plano_de_edicao.py
- code/engine/testes/test_registrar_plano_de_edicao.py
- code/plugins/premiere-pro/skills/editar-por-voz/
- corrigida a reprodução do trecho de áudio do falante na tela Refinar usando os tempos da origem do WAV.
- alterado o passo de geração de JSON para concluir a edição e salvar a configuração editorial no banco.
Resumo:
- 9 arquivos alterados
- 3 novos
- 6 modificados
- 0 removidos
6 files changed, 136 insertions(+), 109 deletions(-)
Arquivos:
- .jhonny/analises.db
- code/cep-plugin/index.html
- code/cep-plugin/main.js
- code/engine/persistencia/__init__.py
- code/engine/persistencia/esquema.py
- code/engine/testes/test_persistencia_sqlite.py
- code/engine/persistencia/repositorio_de_edicoes.py
- code/engine/registrar_edicao.py
- code/tests/cep-refinar-preview.test.ts
- aprimorado o preview de falantes na tela Refinar para reproduzir os trechos do vídeo
- corrigida a leitura dos timestamps do preview de falantes usando os clipes do banco
Resumo:
- 5 arquivos alterados
- 1 novos
- 4 modificados
- 0 removidos
4 files changed, 142 insertions(+), 3 deletions(-)
Arquivos:
- .jhonny/analises.db
- code/cep-plugin/main.js
- code/engine/persistencia/consultas.py
- code/engine/testes/test_consultas_de_persistencia.py
- code/engine/consultar_preview_de_falantes.py
- reorganizado o fluxo de edição para validar a análise do Scanner, selecionar o tipo de vídeo e enviar suas instruções no JSON.
- banco de análises: métricas de fala viraram colunas, busca lexical FTS5, enunciados com embeddings, views achatadas de leitura (fala/palavra/linha do tempo/fala com visual), ingestor do pipeline de voz e gravação idempotente de evidências visuais e cenas.
- retakes passam a ser gravados no banco de análises (SQLite) em vez de JSON por caso, com status de revisão persistido.
- planos de edição e suas aplicações passam a ser registrados no banco, em vez de se perderem no arquivo temporário.
- comando de limpeza das evidências visuais e cenas duplicadas por execuções antigas do Scanner.
- análise visual: OpenCV (rostos) e PySceneDetect passam a entrar no detector local por padrão; novo adapter InsightFace gera assinatura facial (embedding) para reconhecer a mesma pessoa entre tomadas, gravada como evidência visual no banco.
- corrigido: métricas de fala (energia, pitch, velocidade) agora gravam nas colunas dedicadas, não só no JSON; a view fala+visual passa a casar por vídeo e tempo, já que o mesmo arquivo entra na timeline como clipes distintos de vídeo e áudio; views são recriadas a cada abertura do banco para uma correção de consulta chegar a bancos já existentes.
- reordenadas as abas do painel CEP para Scanner, Refinar e Editar vídeo
Resumo:
- 24 arquivos alterados
- 9 novos
- 15 modificados
- 0 removidos
15 files changed, 872 insertions(+), 29 deletions(-)
Arquivos:
- .jhonny/analises.db
- code/cep-plugin/index.html
- code/cep-plugin/main.js
- code/engine/aplicar_plano_de_edicao.py
- code/engine/integracoes/visual/README.md
- code/engine/integracoes/visual/__init__.py
- code/engine/integracoes/visual/analisadores.py
- code/engine/persistencia/__init__.py
- code/engine/persistencia/esquema.py
- code/engine/persistencia/repositorio_de_analises_sqlite.py
- code/engine/persistencia/repositorio_de_retakes_sqlite.py
- code/engine/requirements-visual.txt
- code/engine/scanner/configuracao_visual.py
- code/engine/scanner/visual.py
- code/engine/testes/test_analise_visual_local.py
- .jhonny/analises.db.pos-scanner-084841
- code/engine/integracoes/embeddings/
- code/engine/limpar_duplicatas.py
- code/engine/persistencia/busca_de_conteudo.py
- code/engine/persistencia/enunciados.py
- code/engine/persistencia/ingestao_de_voz.py
- code/engine/persistencia/limpeza.py
- code/engine/persistencia/repositorio_de_planos.py
- code/engine/testes/test_busca_de_conteudo.py
- corrigido o carregamento do extrator de áudio no complemento de identificação de locutores do Scanner.
- corrigida a descoberta da timeline ativa no painel CEP com fallback compatível entre versões do Premiere
Resumo:
- 5 arquivos alterados
- 0 novos
- 3 modificados
- 2 removidos
5 files changed, 23 insertions(+), 2 deletions(-)
Arquivos:
- .jhonny/analises.db-shm
- .jhonny/analises.db-wal
- code/cep-plugin/main.js
- code/engine/executar_scanner.py
- code/engine/testes/test_executar_scanner.py
- removido o tamanho do modelo do seletor da tela Editar vídeo
- acelerada a transcrição do Scanner com inferência Whisper em lote e cache de hashes
- garantido um resultado separado para cada clipe de áudio selecionado no Scanner
- adicionado cancelamento do processamento do Scanner pela barra de progresso
- exibido estado visual próprio para Scanner cancelado na barra de progresso
- criado modo explícito de análise do Scanner para separar som, imagem ou ambos
- adicionadas métricas opcionais de fala ao Scanner com análise acústica na engine
- corrigido o progresso da transcrição do Scanner durante o processamento do Whisper
- refatorado o runner Swift do Apple Vision para executar requests em lote com retry CPU-only, corrigindo falhas de CVPixelBuffer/ANE/OCR
- documentado o fluxo de edição de vídeo por voz integrado ao Scanner, banco e engine
- formalizado o protocolo de edição por chat com perfil editorial e consultas progressivas
- gerado plano JSON de corte para depoimento vertical da Erika no Instagram
- esquematizado o fluxo de colar e executar planos da IA pela engine após o Scanner
- ajustado o plano para manter somente as três etapas existentes da tela de edição
- adicionado processamento incremental de locutores e métricas no Scanner com confirmação de reprocessamento
- implementado o plano JSON colado na tela e a persistência idempotente das análises do Scanner
Resumo:
- 8 arquivos alterados
- 1 novos
- 7 modificados
- 0 removidos
7 files changed, 437 insertions(+), 55 deletions(-)
Arquivos:
- code/cep-plugin/index.html
- code/cep-plugin/main.js
- code/cep-plugin/styles.css
- code/engine/executar_scanner.py
- code/engine/persistencia/repositorio_de_analises_sqlite.py
- code/engine/testes/test_persistencia_sqlite.py
- docs/PLANO-EDICAO-DE-VIDEO-POR-VOZ.md
- code/relatorios/plano-edicao-depoimento-erika-instagram.json
- adicionadas métricas opcionais de fala ao Scanner com análise acústica na engine
- corrigido o progresso da transcrição do Scanner durante o processamento do Whisper
- refatorado o runner Swift do Apple Vision para executar requests em lote com retry CPU-only, corrigindo falhas de CVPixelBuffer/ANE/OCR
- documentado o fluxo de edição de vídeo por voz integrado ao Scanner, banco e engine
- formalizado o protocolo de edição por chat com perfil editorial e consultas progressivas
Resumo:
- 10 arquivos alterados
- 5 novos
- 5 modificados
- 0 removidos
5 files changed, 367 insertions(+), 95 deletions(-)
Arquivos:
- .jhonny/analises.db
- code/engine/executar_scanner.py
- code/engine/integracoes/visual/apple_vision_runner.swift
- code/engine/integracoes/whisper/provider_de_transcricao_local.py
- code/engine/testes/test_provider_de_transcricao_local.py
- .jhonny/analises.db-shm
- .jhonny/analises.db-wal
- apple_vision_runner
- code/relatorios/teste-enquadramento-20s.json
- docs/
- removido o tamanho do modelo do seletor da tela Editar vídeo
- acelerada a transcrição do Scanner com inferência Whisper em lote e cache de hashes
- garantido um resultado separado para cada clipe de áudio selecionado no Scanner
- adicionado cancelamento do processamento do Scanner pela barra de progresso
- exibido estado visual próprio para Scanner cancelado na barra de progresso
- reorganizada a tela Scanner em blocos separados de imagem e som
Resumo:
- 7 arquivos alterados
- 1 novos
- 6 modificados
- 0 removidos
6 files changed, 92 insertions(+), 40 deletions(-)
Arquivos:
- .jhonny/analises.db
- code/cep-plugin/index.html
- code/cep-plugin/main.js
- code/cep-plugin/styles.css
- code/engine/integracoes/whisper/provider_de_transcricao_local.py
- code/engine/scanner/transcricao_da_timeline.py
- code/engine/testes/test_provider_de_transcricao_local.py
- alinhada a remoção da engine Python ao fluxo ripple do executor CEP para cortar vídeo e áudio
- criada remoção atômica para manter vídeo e áudio vinculados sincronizados
- criada aba de configuração de legendas offline e inclusão das preferências no pacote para a IA
- criado gerador offline de blocos de legenda sincronizados com palavras da transcrição e cortes aprovados
- criada uma versão base portátil da skill edit-video-by-voice para testes em outros agentes de IA
- incorporado perfil editorial opcional à skill portátil para orientar decisões de edição
Resumo:
- 14 arquivos alterados
- 4 novos
- 10 modificados
- 0 removidos
10 files changed, 278 insertions(+), 33 deletions(-)
Arquivos:
- code/cep-plugin/index.html
- code/cep-plugin/main.js
- code/docs/supported-actions.md
- code/engine/editor/aplicador_de_plano_de_edicao.py
- code/engine/editor/escrita/escrita_no_editor.py
- code/engine/testes/duplos_de_premiere.py
- code/engine/testes/test_aplicador_de_plano_de_edicao.py
- code/src/tools/timeline.ts
- code/tests/tools/structural-verification.test.ts
- code/tests/tools/tool-modules.test.ts
- code/engine/arquitetura/legendas.md
- code/engine/editor/legendas/
- code/engine/testes/test_gerador_de_legendas.py
- skills/
-documentada a entrada universal da skill edit-video-by-voice e reforçados os limites do contrato de ações 1.0
- corrigida a identificação da mídia na engine Python usando nome do clipe e nome-base de sourceFile
Resumo:
- 5 arquivos alterados
- 1 novos
- 4 modificados
- 0 removidos
4 files changed, 54 insertions(+), 16 deletions(-)
Arquivos:
- code/engine/editor/aplicador_de_plano_de_edicao.py
- code/engine/testes/test_aplicador_de_plano_de_edicao.py
- code/plugins/premiere-pro/skills/edit-video-by-voice/SKILL.md
- code/plugins/premiere-pro/skills/edit-video-by-voice/agents/openai.yaml
- code/plugins/premiere-pro/skills/edit-video-by-voice/references/input-schema.md
- Alinhado o aplicador Python de plano de edição (aplicador_de_plano_de_edicao.py) com o script apply-editorial-actions.mjs de referência: no-op de split restrito aos padrões reais do bridge, pausa entre chamadas ao MCP, tolerância de borda de corte usa a posição real em vez de rejeitar desvio; adicionado backup automático da sequência (duplicate_sequence) e documentado o comando python code/engine/aplicar_plano_de_edicao.py como via alternativa ao painel CEP.
Resumo:
- 18 arquivos alterados
- 5 novos
- 13 modificados
- 0 removidos
13 files changed, 704 insertions(+), 133 deletions(-)
Arquivos:
- .jhonny/analises.db
- CLAUDE.md
- code/engine/aplicar_plano_de_edicao.py
- code/engine/editor/__init__.py
- code/engine/editor/aplicador_de_plano_de_edicao.py
- code/engine/editor/escrita/escrita_no_editor.py
- code/engine/integracoes/premiere/__init__.py
- code/engine/integracoes/premiere/cliente_mcp.py
- code/engine/testes/duplos_de_premiere.py
- code/engine/testes/test_aplicador_de_plano_de_edicao.py
- code/scripts/apply-editorial-actions.mjs
- code/src/tools/discovery.ts
- code/src/tools/timeline.ts
- code/engine/editor/backup_de_sequencia.py
- code/engine/integracoes/premiere/cliente_mcp_com_pausa.py
- code/engine/testes/test_backup_de_sequencia.py
- code/engine/testes/test_cliente_mcp_com_pausa.py
- code/engine/testes/test_escrita_no_editor.py
- criada a aba Análises no painel CEP para ler do banco (analises.db) e copiar/abrir o J-SOM de som (transcrição por cena) e o de imagem (evidências visuais), com novo módulo engine/gerar_relatorio_de_analises.py e testes
- criado o módulo engine/editor (leitura do plano de edição em JSON, tradução de tempos de origem para a timeline ativa e aplicação de cortes/zooms/marcadores no Premiere via MCP) e o ponto de entrada engine/aplicar_plano_de_edicao.py, com testes; corrigido engine/integracoes/premiere/cliente_mcp.py para levantar os erros específicos já declarados em erros_mcp.py em vez de RuntimeError genérico
Resumo:
- 15 arquivos alterados
- 8 novos
- 5 modificados
- 2 removidos
7 files changed, 172 insertions(+), 8 deletions(-)
Arquivos:
- .jhonny/analises.db
- .jhonny/analises.db-shm
- .jhonny/analises.db-wal
- code/cep-plugin/index.html
- code/cep-plugin/main.js
- code/cep-plugin/styles.css
- code/engine/integracoes/premiere/cliente_mcp.py
- code/engine/aplicar_plano_de_edicao.py
- code/engine/editor/
- code/engine/gerar_relatorio_de_analises.py
- code/engine/testes/duplos_de_premiere.py
- code/engine/testes/test_aplicador_de_plano_de_edicao.py
- code/engine/testes/test_gerar_relatorio_de_analises.py
- code/engine/testes/test_leitor_de_plano_de_edicao.py
- code/engine/testes/test_mapeador_de_tempo.py
- Adicionado estrutura completa do projeto
- Configurado MCP server para Premiere Pro
- Adicionado documentação e skills
- Configurado Gitignore para o projeto