Como Funciona
O tracker registra o estado de cada arquivo após leitura e verifica antes de escrita:1
Leitura (RecordRead)
Após cada operação
read bem-sucedida, o tracker registra:- mtime: timestamp de modificacao do arquivo
- SHA-256: hash criptografico do conteúdo completo
- Size: tamanho em bytes
- ReadAt: timestamp de quando a leitura ocorreu
2
Verificação (CheckStaleness)
Antes de cada operação
write ou patch, o tracker verifica se o arquivo mudou.3
Aviso ou Prosseguimento
Se o arquivo mudou, um aviso e injetado no resultado da ferramenta para que o modelo decida como proceder. Se não mudou, a escrita prossegue normalmente.
Verificação em 2 Etapas
A verificação usa uma estrategia otimizada de fast path seguida de full hash:- Etapa 1: mtime + size (rapida)
- Etapa 2: SHA-256 (completa)
Primeiro, o tracker compara o
mtime e size atuais com os registrados. Se ambos sao identicos, o arquivo não esta stale (retorno imediato, sem I/O adicional).Mensagem de Aviso
Quando um arquivo stale e detectado, o sistema gera um aviso formatado:- Re-ler o arquivo antes de fazer alteracoes
- Entender que continuar sobrescrevera as alteracoes externas
Cenarios Cobertos
Normalizacao de Aspas
O ChatCLI também normaliza aspas Unicode em arquivos de código para prevenir erros de compilacao causados por aspas tipograficas geradas por LLMs:
A normalizacao e aplicada automaticamente em 60+ tipos de arquivo de código (
.go, .py, .js, .ts, .java, .rs, .sh, .sql, .json, .yaml, etc.) e em nomes de arquivo especiais (Makefile, Dockerfile, .gitignore, etc.).
Arquivos de documentação (
.md, .txt, .rst) não sao normalizados para preservar a tipografia intencional.Ciclo de Vida do Tracking
Próximos Passos
Plugin @coder
Referência completa das operações de read/write/patch.
Permissoes
Sistema de permissões que protege operações de escrita.
Recuperação de JSON
Como argumentos de ferramenta sao corrigidos antes da execução.
Segurança do Coder
Validação de caminhos e protecoes de segurança.