Repository navigation
Releases
Releases · kapstanhq/whatsapp-reader
0.2.0 — os áudios entram
[0.2.0] — 2026-09-16
Novo
- Os áudios de conversa individual são baixados e transcritos pelo daemon, sem
atrasar o recebimento: whisper.cpp local por padrão, ou uma API compatível com
a da OpenAI, por escolha explícita. listar_mensagensmostra a transcrição ([áudio 0:42 · transcrição] …) e
busca dentro dela; áudio sem transcrição diz por quê.ultima_interacaotraz o que foi dito quando a última mensagem é um áudio.estado_da_pontemostra a fila dos áudios, o motor de transcrição e o que o
impede de andar.- Subcomando
verificar [arquivo]: o que falta instalar, e quanto a máquina
demora para transcrever. - Vocabulário em camadas para a transcrição: um pacote base embutido (agentes
de IA e WhatsApp), pacotes de ofício instalados por plugin em
vocabulario.d/, ovocabulario.txtpessoal e o nome do contato. A dica
respeita um orçamento, os erros conhecidos são corrigidos, e uma correção
nova vale para as transcrições antigas. Subcomandovocabularioe
verificar --sem-vocabulario. - Retenção opcional dos arquivos de áudio (
WHATSAPP_READER_MIDIA_GUARDAR_DIAS),
sem perder transcrição nem chave. - Pacotes importáveis:
midia,transcricao,transcricao/whispercpp,
transcricao/openai,transcricao/ffmpeg,transcricao/vocabulario. - CI nos três sistemas, com detector de corrida, staticcheck, govulncheck e as
regras de dependência entre os pacotes. - Binários prontos a cada versão marcada, pelo GoReleaser.
- Uma ponte por máquina: o
serverecusa subir enquanto outro daemon
estiver batendo, e nomeia o processo. Dois clientes sobre o mesmosessao.db
corrompem o ratchet do Signal — o pid já ia na batida, faltava compará-lo.
Corrigido
- O
sessao.dbabria sembusy_timeoutnem WAL: numa rajada de mensagens
atrasadas, parte delas saía sem decifrar (SQLITE_BUSY). - As mensagens de conversa temporária vindas do histórico eram descartadas como
vazias — texto e áudio. serveemcpsubindo juntos num banco novo podiam falhar comSQLITE_BUSY
ao ligar o WAL.
Mudou
- O banco ganhou migrações numeradas (
PRAGMA user_version), só aditivas: um
binário antigo continua lendo um banco migrado. A segunda guarda, em cada
transcrição, o texto bruto do motor e a dica que foi junto.