Como Funciona
Cada versão do ChatCLI define umCurrentConfigVersion. Quando o usuário atualiza o binario, o sistema compara a versão salva com a versão atual e aplica as migrações necessarias:
Ciclo de Migração
1
Detecta necessidade
Compara versão atual com
CurrentConfigVersion.2
Cria backup
Salva configuração completa em
~/.chatcli/backups/config_backup_<timestamp>.json.3
Aplica migrações
Executa cada migração na sequencia (v0 -> v1, v1 -> v2, …).
4
Atualiza versão
Grava a nova versão em
~/.chatcli/config_version.json.5
Em caso de falha
Preserva os valores originais e o backup permanece disponível.
Migração v0 -> v1
A migração incluida normaliza configurações legadas:API
Verificar Necessidade de Migração
Executar Migração
Backup e Rollback
Registrar Migração Custom
Arquivo de Versão
A versão e armazenada em~/.chatcli/config_version.json:
Backups
Os backups são armazenados em~/.chatcli/backups/ com timestamp:
Segurança
Atomicidade
Cada migração e aplicada sobre uma copia dos valores. Se falhar, os originais são preservados.
Sequencialidade
Migrações são executadas estritamente em ordem crescente de versão.
Backup obrigatório
Um backup e criado automaticamente antes de qualquer migração.
Idempotencia
Se já estiver na versão atual,
Migrate() retorna os valores inalterados.