Logs de conversas brutas tornam-se ilegíveis em escala. Após alguns meses de uso intenso, você se depara com centenas de milhares de linhas de diálogos. Pesquisá-los é lento; lê-los é impossível. Um cofre do Obsidian, por outro lado, oferece uma memória de longo prazo estruturada: links bidirecionais, tags e uma visualização em gráfico que destaca conexões. A lacuna entre os dois é óbvia. Fechá-la exige automação.
Eu construí um pequeno pipeline que preenche essa lacuna todas as noites. Ele executa três etapas em sequência, sem intervenção manual. Primeiro, ele coleta as exportações de conversas mais recentes e as atualiza para o estado atual. Segundo, ele destila as últimas 28 horas de diálogo bruto através do Claude, anexando resumos estruturados diretamente no cofre do Obsidian. Essa janela de 28 horas é deliberada; ela cobre o dia anterior completo mais um pequeno buffer para atrasos. Terceiro, ele faz o backup de tudo realizando o commit e o push das alterações para um repositório privado, que atua tanto como armazenamento offline quanto como seguro contra exclusões acidentais. Toda a cadeia precisa ser monótona e confiável. Automação monótona é o objetivo.
Quando o macOS mata seu script silenciosamente
O maior inimigo de um trabalho noturno não é uma falha dramática. É o silêncio.
No macOS, a pasta Documentos vive sob a proteção do TCC, o subsistema de privacidade que controla o acesso a locais sensíveis. Se você agendar seu script através do launchd, o sistema pode simplesmente bloquear o processo sem lançar um erro que você perceba. Seu arquivo de log permanece vazio. Seu cofre nunca é atualizado. O trabalho falhou, mas você só descobre a lacuna dias depois, quando percebe que suas notas estão desatualizadas.
Eu lido com isso com uma rotina de pré-voo rigorosa. Antes de o trabalho principal começar, o script tenta uma operação de escrita inofensiva dentro do diretório de destino. Se o macOS a negar, a falha é detectada imediatamente e uma notificação de desktop barulhenta é disparada. Não há saída silenciosa. Em seguida, o próprio interpretador shell precisa ter o Acesso Total ao Disco (Full Disk Access) concedido nas Ajustes do Sistema. Essa permissão é bruta, então minimizo a exposição mantendo todos os scripts de automação inteiramente fora da árvore da pasta Documentos protegida. Eles vivem em um diretório dedicado em outro lugar, e o caminho do cofre é referenciado explicitamente. Essa combinação de detecção precoce, alertas ruidosos e posicionamento cuidadoso de pastas resolve o cenário de morte silenciosa.
Projetando para Repouso, Timeouts e Tarefas Travadas
Laptops entram em repouso. Redes falham. Chamadas de API travam. Um único trabalho travado não deve paralisar o sistema inteiro indefinidamente.
Eu uso quatro mecanismos práticos para manter o pipeline estável.
Múltiplos intervalos de tempo. Em vez de apostar tudo em uma única execução no início da manhã, o agendador tenta novamente em diferentes momentos ao longo do dia. Se a máquina estiver fechada ao amanhecer, a janela da tarde ainda a captura.
Marcadores de conclusão. Quando uma execução tem sucesso, ela deixa um rastro claro. A próxima tentativa agendada verifica esse marcador primeiro. Se o trabalho já estiver concluído, ele sai de forma limpa em segundos. Isso evita chamadas de API desnecessárias e processamento redundante.
Locks de arquivo via mkdir. Para evitar execuções sobrepostas, eu uso um lock baseado em diretório. Criar um diretório é uma operação atômica em sistemas de arquivos locais, portanto, dois trabalhos simultâneos não podem reivindicar o mesmo caminho de lock. Se o diretório já existir, a segunda instância aborta imediatamente. Quando a primeira termina, ela remove o diretório. Isso é mais leve que arquivos PID e mais difícil
