Skip to main content
O ChatCLI inclui um sistema de migração versionada de configuração que garante upgrades seguros e automáticos entre versões. Quando o schema de configuração muda, as migrações são aplicadas sequencialmente, com backup completo antes de qualquer alteracao.

Como Funciona

Cada versão do ChatCLI define um CurrentConfigVersion. 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:
Cada backup contem o snapshot completo dos valores de configuração antes da migração.

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.