Como Funciona
Cada versao do ChatCLI define umCurrentConfigVersion. Quando o usuario atualiza o binario, o sistema compara a versao salva com a versao atual e aplica as migracoes necessarias:
Ciclo de Migracao
Migracao v0 -> v1
A migracao incluida normaliza configuracoes legadas:| Transformacao | Antes | Depois |
|---|---|---|
| Normaliza provider | openai | OPENAI |
| Renomeia API key | CHATCLI_API_KEY | OPENAI_API_KEY |
| Renomeia modelo | CHATCLI_MODEL | OPENAI_MODEL |
| Default skills | (ausente) | CHATCLI_SKILLS_ENABLED=true |
| Default safety | (ausente) | CHATCLI_SAFETY_ENABLED=false |
| Default tool use | (ausente) | CHATCLI_NATIVE_TOOL_USE=true |
API
Verificar Necessidade de Migracao
Executar Migracao
Backup e Rollback
Registrar Migracao Custom
Arquivo de Versao
A versao e armazenada em~/.chatcli/config_version.json:
Backups
Os backups sao armazenados em~/.chatcli/backups/ com timestamp:
Seguranca
Atomicidade
Cada migracao e aplicada sobre uma copia dos valores. Se falhar, os originais sao preservados.
Sequencialidade
Migracoes sao executadas estritamente em ordem crescente de versao.
Backup obrigatorio
Um backup e criado automaticamente antes de qualquer migracao.
Idempotencia
Se ja estiver na versao atual,
Migrate() retorna os valores inalterados.