v2.0

Versionamento

Snapshots imutáveis, um ambiente de desenvolvimento fisicamente separado da produção e rollback em segundos. É o modelo de release do browserMate.

Conceito de versão

Card do agente com a versão publicada (release).
Card do agente com a versão publicada (release).

Cada processo pode ter múltiplas versões. Uma versão é um snapshot completo e imutável do processo em um ponto no tempo, incluindo todas as etapas, mapeamentos, configurações e instâncias de conectores. Uma vez publicada, uma versão nunca é sobrescrita: uma nova rodada de edição sempre gera a próxima versão numerada e jamais altera as anteriores.

As versões permitem:

Versão ≠ "salvar" Enquanto uma versão está aberta para edição, o botão Salvar do modelador grava o progresso dentro dela, sem publicar nada. Só o passo de Publicar versão transforma esse trabalho em um release novo. Pense na versão como um "ponto de restauração": edite e salve à vontade, publique só quando tiver algo estável para marcar.

Dev × Produção: bases fisicamente separadas

Isto é o que torna o versionamento seguro para times inteiros, e não só para quem está editando: desenvolvimento e produção não são apenas um rótulo, são duas bases de dados distintas. Ao abrir uma versão para edição, o browserMate copia o snapshot atual do processo para uma base de desenvolvimento isolada e todo o trabalho acontece ali. A base de produção, de onde as execuções normais leem, permanece intocada até que a nova versão seja explicitamente publicada.

DesenvolvimentoProdução (Release)
O que é A versão aberta para edição no Agent Builder A última versão publicada do agente
Onde os dados vivem Base de desenvolvimento isolada, uma cópia de trabalho separada fisicamente Base de produção, a fonte usada por qualquer execução normal
Quem executa Execuções de Debug feitas pelo desenvolvedor no builder Execuções normais: RUN do card, Agendamento e API
Quem edita Só quem abriu a versão (o desenvolvedor com o bloqueio) Ninguém. Produção não é editada diretamente, só recebe releases
Por que isso importa Como as duas bases são separadas, um erro cometido durante a edição, uma etapa quebrada ou um mapeamento errado, nunca chega às execuções em produção. Elas continuam rodando a última versão publicada normalmente, enquanto o desenvolvimento avança em paralelo e isolado.

O editor em somente leitura

O botão EDIT do card nunca fica desabilitado. Quando não existe uma versão em desenvolvimento aberta, o Agent Builder abre assim mesmo, só que exibindo a versão publicada em modo de consulta. Uma faixa no topo diz exatamente isso, como na imagem abaixo:

Agent Builder em somente leitura, com a faixa no topo e o botão Desenvolver versão no cabeçalho
O Agent Builder em somente leitura: a versão em produção no cabeçalho, o botão Desenvolver versão e a faixa avisando que a tela é só de consulta.

O texto do lado direito da faixa muda conforme o motivo do bloqueio:

O que a faixa dizSignificado
crie uma nova versão para editarO processo está liberado. Você pode abrir uma versão de desenvolvimento agora mesmo.
em desenvolvimento por FulanoOutra pessoa detém o bloqueio. Só ela edita até publicar ou cancelar.
você não tem permissão de edição neste processoO agente foi compartilhado com você sem a permissão edit. Veja Compartilhamento.

Nesse modo, tudo que grava desaparece da tela: criar e mover etapas, salvar, reordenar, excluir, o Debug e o Copilot. O que continua disponível é a leitura do fluxo, a navegação pelo canvas e a consulta ao que está publicado: o painel da etapa (Propriedades, Objetos e Mapeamentos) e as Configurações do Agente abrem com os campos travados e sem o botão de salvar, mostrando a versão em produção. Dá para conferir código, regra de rota, variáveis e parâmetros sem abrir uma versão.

Duas exceções que valem na hora O campo RUNTIME, os botões de ambiente Dev, Homolog e Prod e a consulta ao Webhook continuam acessíveis em somente leitura. Trocar o runtime ou o ambiente do agente vale imediatamente, mesmo sem versão em desenvolvimento, porque é uma decisão de infraestrutura e não de modelagem: a troca não gera versão nova, e ir para Produção com o agente publicado pede uma confirmação. Nesse modo a opção Selecione... do campo fica desabilitada, com a dica O agente publicado precisa de um runtime: escolha outro runtime. Os dois travam quando outra pessoa está desenvolvendo, já que a publicação dela sobrescreveria a escolha, e quando você não tem permissão de edição.

Criar uma nova versão

Com o editor aberto em somente leitura, o botão Desenvolver versão X aparece na primeira fileira do cabeçalho, ao lado da versão que está em produção. O X é o número da versão que será criada. É a única ação de escrita disponível nesse estado.

Esse número é sempre o da versão seguinte à última que já foi publicada, e não necessariamente o seguinte à versão em produção. Se você definiu uma versão anterior como a corrente, o botão continua mostrando a próxima do histórico.

Botão Desenvolver versão no cabeçalho
O botão Desenvolver versão, ao lado da versão em produção.
  1. Clique em Desenvolver versão e confirme.
  2. O snapshot atual é copiado para a base de desenvolvimento e o processo fica bloqueado para você. O card na tela Meus Agentes de Processo passa a mostrar quem detém o bloqueio.
  3. A faixa de somente leitura some, os controles de edição voltam e o editor passa a trabalhar sobre a versão nova.

Enquanto a versão está aberta, o card do agente mostra o estado para todo mundo: a versão em Desenvolvimento, quem detém o bloqueio e, com o processo travado, o botão de excluir indisponível.

Card do agente com versão em desenvolvimento e bloqueio
Aba Profile do card: Versão 41.0 - Desenvolvimento, o Bloqueado com o nome de quem está editando, e com quem o agente está compartilhado.
O bloqueio é exclusivo Enquanto uma versão de desenvolvimento estiver aberta, ninguém mais consegue criar outra nem editar esse processo. Em processos compartilhados, é esse bloqueio que impede edições simultâneas: só quem criou a versão edita, os demais executam a release corrente. O mecanismo pelo ponto de vista de quem compartilha está em Compartilhamento → Edição exclusiva.

Pendências: o que segura a publicação

Na segunda fileira do cabeçalho existe um indicador de pendências. Ele é a checagem que o builder faz continuamente para responder a uma pergunta: este agente está pronto para rodar? Clique nele para abrir a lista do que ainda falta.

Enquanto houver qualquer pendência aberta, o botão de publicar não aparece. Não é um defeito, é proposital: não faz sentido lançar em produção um modelo incompleto.

Ao publicar, a plataforma confere de novo no servidor as pendências de runtime, ambiente e agendamento, venha a publicação de onde vier, e recusa com o motivo num aviso no editor. Os casos e as mensagens estão em Runtimes e Ambientes → Ambientes.

PendênciaComo resolver
Crie sua primeira etapaO fluxo ainda não tem nenhuma etapa. Clique no card + do canvas e escolha o tipo da primeira.
Etapas sem configuraçãoAbra cada etapa listada e complete a configuração que falta.
Runtime: nenhum runtime selecionado para este agenteEscolha um runtime no campo RUNTIME.
Ambiente: o runtime não tem instalação no ambiente do agenteO runtime escolhido não tem instalação no ambiente em que o agente está (Desenvolvimento, Homologação ou Produção), por exemplo O runtime X não tem instalação em Y. Escolha outro runtime no campo RUNTIME, troque o ambiente pelos botões Dev, Homolog e Prod ao lado dele, ou edite o runtime e dê uma instalação a esse ambiente. Com a instalação desse ambiente suspensa pelo plano, a pendência diz A instalação NOME (Ambiente) está suspensa pelo plano: faça upgrade do plano, ou escolha outro runtime. Quando o runtime foi removido, a pendência diz O runtime gravado neste agente não existe mais na sua conta. Escolha outro.: o campo RUNTIME fica em Selecione..., os botões de ambiente ficam desabilitados, e a correção é escolher outro runtime. Veja Runtimes e Ambientes → Ambientes.
Agendamento: agendamento aponta para um runtime sem instalação no ambiente do agenteUm agendamento ligado deste agente fixa um runtime que não tem instalação no ambiente do agente, por exemplo O agendamento "D" aponta para o runtime X, sem instalação em Y. Cada disparo dele seria recusado. Troque o runtime do agendamento em Agendamento, ou dê ao runtime uma instalação nesse ambiente. Agendamento desligado não entra nesta pendência.
Cofre de Senhas: chave sem valor para o ambiente do agenteUma credencial usada no fluxo não tem valor para o ambiente em que o agente está. Abra o painel do Cofre, aba Neste fluxo, e preencha o valor daquele ambiente. Veja Cofre de Senhas → Valores por ambiente.
Modelo precisa ser salvoClique em Salvar para gravar as alterações pendentes do canvas.
Mapeamento de webhook não salvoAbra o modal de Webhook e salve o mapeamento em aberto.
Script com erro de sintaxeAbra a etapa listada: o editor sublinha a linha com o problema e descreve o que houve. Veja Código Inline: Erros de sintaxe.
Sandbox não publica, e isso é de propósito Se o runtime escolhido for a Sandbox, a pendência de runtime continua aberta e o botão de publicar segue oculto. A Sandbox existe para teste rápido, não para sustentar produção. Para liberar a publicação, selecione um runtime próprio.

Publicar ou cancelar a versão

Resolvidas as pendências, dois botões ficam disponíveis no canto direito da primeira fileira do cabeçalho, ao lado do nome do processo:

Botões Publicar versão e Cancelar versão
Os dois botões, com o número da versão que está sendo fechada.

As versões publicadas são exibidas no formato 1.0, 2.0 e assim por diante, cada uma com o rótulo descrito na publicação.

Publicar é um passo obrigatório Antes da publicação, o agente só roda em Debug, dentro do próprio builder. O botão RUN do card, o Control Room, os Agendamentos e a API passam a funcionar somente depois que a versão vira release.

Selecionar uma versão anterior (rollback)

Enquanto o processo não está bloqueado, ou seja, quando não há versão em desenvolvimento aberta, o seletor de versão na aba Profile do card lista todos os releases já publicados, do mais recente para o mais antigo. Escolher uma versão diferente da atual não é uma "prévia": é a ativação imediata, com um pedido de confirmação. O conteúdo daquela versão volta a ser a release corrente na hora, sem precisar reabrir nada no modelador.

Seletor de versão aberto com o histórico de releases
O seletor aberto na aba Profile do card, com todos os releases publicados. A versão corrente vem marcada no topo.
  1. No seletor de versão do card, escolha a versão anterior que estava funcionando.
  2. Confirme a publicação. A partir daí, todas as execuções (RUN, agendamento, API) passam a usar essa versão.
  3. A versão problemática continua guardada no histórico e nada é apagado. Basta selecioná-la de novo depois de corrigida.
Rollback sem apagar Restaurar uma versão anterior não exclui a versão problemática, apenas muda qual é a release corrente. Isso permite investigar o que deu errado e publicar uma versão corrigida depois, sem perder o registro do que falhou.
Onde ver o histórico A aba Release Timeline do card lista a linha do tempo completa de versões publicadas. Veja Organização dos Agentes → As abas do card.

O que é versionado

Cada versão contém um snapshot completo de:

ElementoIncluído na versão
Etapas✅ Todas as etapas com suas configurações completas
Mapeamentos de dados✅ Configurações de captura e transformação
Rotas e condições✅ Toda a lógica de decisão
Configurações do agente✅ Nome, avatar, browser, limites, notificações
Instâncias de conectores✅ Qual conector e qual ação cada etapa usa
Projetos de código referenciados✅ Referência ao projeto, não o arquivo em si
Credenciais do Cofre❌ Não versionadas. São gerenciadas separadamente
Credenciais de conectores❌ Não versionadas. Sempre usa a credencial atual
Histórico de execuções❌ Não está vinculado à versão
Credenciais não são versionadas Se você muda a API Key de um conector e faz rollback para uma versão anterior, a configuração das etapas volta à versão antiga, mas o conector continua usando a credencial atual. Isso é intencional: você não quer que um rollback exponha credenciais antigas comprometidas.
Projetos de código têm versionamento próprio A versão do processo guarda a referência ao projeto de código, não o conteúdo dele. O histórico de versões do código, com restauração, vive no próprio projeto. Veja Projetos e SDK → Versões do projeto.

Boas práticas