Quando um monitorador de arquivos do Mac perde edições, determine primeiro se a alteração atinge a pasta monitorada, se o aplicativo visualiza os eventos do sistema de arquivos e se ele os filtra ou falha ao processá-los. Reproduza uma alteração perdida em um arquivo pequeno e conhecido e, em seguida, compare esse resultado com um arquivo no projeto grande. Essa sequência ajuda a separar a configuração do projeto do envio de eventos e do processamento do aplicativo.
1. Confirme o caminho exato e a alteração
No aplicativo afetado, verifique qual pasta está aberta como espaço de trabalho (workspace) e confirme se o arquivo editado está dentro dessa pasta. Um arquivo pode aparecer em um editor mesmo estando fora da raiz monitorada; links simbólicos também podem se comportar de forma diferente de pastas aninhadas comuns. Por exemplo, o VS Code documenta que seu monitorador no macOS usa FSEvents, que links simbólicos não são seguidos automaticamente e que sua configuração de exclusão do monitorador pode omitir caminhos. Esses detalhes se aplicam ao VS Code, não a todos os aplicativos do Mac; portanto, verifique as configurações equivalentes de espaço de trabalho e exclusão em sua própria ferramenta. VS Code: File Watcher Issues
Salve uma edição simples em um arquivo diretamente dentro do projeto e verifique se o aplicativo reage. Se apenas um caminho gerado, ignorado, vinculado (link) ou profundamente aninhado falhar, investigue a inclusão desse caminho e sua relação com a raiz do espaço de trabalho antes de tratá-lo como um problema geral do macOS. Se o projeto estiver em uma unidade de rede mapeada ou usar um sistema de arquivos de terceiros, teste uma cópia no disco local do Mac. O VS Code alerta que esses sistemas de arquivos não têm garantia de produzir eventos; esse é um motivo para comparar ambientes, não uma prova de que todo volume desse tipo falhe.
2. Verifique se o aplicativo recebeu eventos
As notificações do sistema de arquivos não são uma promessa de um retorno de chamada (callback) exato para cada edição individual. A documentação do FSEvents da Apple informa que os eventos podem ser aglutinados (coalesced); quando a flag MustScanSubDirs está definida, o cliente deve verificar novamente de forma recursiva o diretório indicado. Flags de eventos descartados (dropped events) indicam problemas de buffer e exigem uma varredura completa dos diretórios monitorados. Isso significa que um monitorador com bom comportamento precisa reconciliar o conteúdo atual do diretório, em vez de depender apenas de uma sequência perfeita de notificações. Apple: Using the File System Events API, Apple: FSEventStreamEventFlags
Procure por logs ou diagnósticos do monitorador no aplicativo que está deixando de registrar a alteração. Para o VS Code, sua documentação descreve como ativar o log detalhado do monitorador de arquivos e inspecionar a saída de log relevante. Outros aplicativos podem expor diagnósticos diferentes ou nenhum. Se o log relatar eventos descartados, exclusões, uma raiz desatualizada (stale root) ou um erro do monitorador, preserve essa mensagem e siga as etapas de recuperação próprias do aplicativo; reiniciar o monitorador ou o aplicativo pode ser uma comparação controlada útil, mas não identifica a causa subjacente por si só.
3. Use o fs_usage para inspecionar a atividade do sistema de arquivos
O macOS inclui o fs_usage, que exibe a atividade contínua de chamadas de sistema relacionadas ao sistema de arquivos. Ele pode ajudar a estabelecer se o aplicativo relevante está acessando arquivos durante uma reprodução, mas não é um visualizador de eventos do FSEvents e não pode provar que o monitorador recebeu ou processou uma notificação. A Apple observa que controles de acesso se aplicam e que o acesso root pode ser necessário. Apple: Examining File-System Usage
No Terminal, reproduza o problema enquanto observa o aplicativo em questão. Substitua YourApp pelo nome real do processo (por exemplo, o nome do processo de um aplicativo pode diferir do seu nome de exibição):
sudo fs_usage -w YourApp
Interrompa a exibição em tempo real com Control-C após a breve reprodução. A saída pode ser intensa, portanto, concentre-se no momento da edição e nos caminhos relevantes. Se o nome do processo for incerto, consulte a documentação do aplicativo ou o Monitor de Atividades; não presuma que filtrar por um nome estimado mostrará o processo correto. O fs_usage é uma ferramenta de auxílio de diagnóstico para atividade de arquivos, não um comando para redefinir ou reparar um monitorador.
4. Compare a escala e as condições de acesso
Repita a mesma edição em uma pequena pasta de teste local que o aplicativo consiga monitorar. Se isso funcionar enquanto o projeto grande falha, compare exclusões específicas do projeto, links simbólicos, diretórios gerados e quaisquer caminhos remotos ou suportados por provedores externos. Estruturas de diretórios grandes geram mais trabalho tanto para o tratamento de eventos quanto para a nova varredura; as diretrizes da Apple deixam claro que as notificações podem exigir varreduras recursivas, enquanto o aplicativo decide como lidar com esse trabalho. A correlação com o tamanho por si só não comprova um limite na fila de eventos do sistema operacional.
Verifique se o aplicativo afetado tem acesso ao local do projeto. Os controles de privacidade do macOS e as regras do App Sandbox podem restringir o acesso a pastas, e a Apple documenta que o acesso a locais protegidos pode exigir autorização do usuário nos Ajustes do Sistema. Revise o estado de permissão do aplicativo em Ajustes do Sistema > Privacidade e Segurança e conceda apenas o acesso necessário para a tarefa. Um problema de permissão pode impedir o acesso útil a arquivos, mesmo quando o caminho aparece no aplicativo. Apple: Accessing Files from the macOS App Sandbox
5. Escolha o próximo passo a partir das evidências
Se a pasta local pequena funcionar, envie ao desenvolvedor do aplicativo uma reprodução mínima contendo o tipo de localização do projeto, o padrão do caminho afetado, o log relevante do monitorador e se há algum link simbólico ou exclusão envolvido. Se tanto a pasta pequena quanto a grande falharem localmente, atualize o aplicativo e verifique o rastreador de problemas (issue tracker) ou as orientações de suporte específicas para a sua versão do macOS; informe a versão do macOS e a versão do aplicativo. Evite excluir dados do projeto ou alterar as configurações de segurança do sistema como uma correção especulativa. O diagnóstico útil é a condição reproduzível mais restrita: um aplicativo, um caminho, uma edição e uma falha observável.
Fontes
Using the File System Events API — Apple Developer
FSEventStreamEventFlags — Apple Developer
Examining File-System Usage — Apple Developer
Accessing Files from the macOS App Sandbox — Apple Developer
File Watcher Issues — Microsoft GitHub