O RadIA 2.9.0 representa uma mudança de escala na experiência de IA dentro do Delphi.
Na versão 2.8.0, o foco foi aproximar a IA do ponto real de trabalho. Ghost Text, ações contextuais e agente passaram a compartilhar informações como unit ativa, símbolo sob o cursor, imports e declarações próximas. Foi uma evolução fundamental: em vez de responder apenas com conhecimento genérico, o RadIA passou a compreender melhor o trecho que o desenvolvedor estava editando.
A 2.9.0 parte dessa base e avança para uma pergunta mais difícil: depois de entender o código atual, como um agente pode agir levando em conta as particularidades do Delphi?
Isso envolve muito mais do que conhecer a sintaxe de Object Pascal. Uma decisão correta pode depender da versão e da arquitetura da IDE, do framework VCL ou FMX, da plataforma de destino, dos packages, das bibliotecas presentes no projeto, do vínculo entre .pas e .dfm, das regras de ownership e até do histórico tecnológico de uma aplicação criada com BDE, ADO ou dbExpress.
É nesse espaço que a versão 2.9.0 trabalha. Ela transforma o RadIA em um agente mais consciente do ecossistema Delphi, com novas formas de observar, orientar, validar e modernizar um projeto sem abrir mão de consentimento, limites e evidências.
Da assistência semântica à experiência agentiva Delphi
A evolução entre as duas versões pode ser resumida assim: a 2.8.0 melhorou a leitura do contexto local; a 2.9.0 usa esse contexto dentro de fluxos especializados para Delphi.
Isso não significa entregar autonomia irrestrita à IA. Pelo contrário. Quanto mais o agente consegue fazer, mais claros precisam ser os limites de execução, as condições de conclusão e os mecanismos de recuperação.
Por isso, as novidades da release formam um conjunto. O perfil do ambiente informa onde o agente está. A orientação curada ajuda a escolher um caminho compatível. As auditorias verificam o estado do projeto. As alterações usam previews e transações. Build e testes funcionam como gates. Checkpoints e rollback preservam a capacidade de interromper ou desfazer o trabalho.
Não são recursos isolados adicionados apenas para aumentar uma lista. Eles compõem um fluxo no qual o agente precisa compreender, propor, executar e provar o resultado.
Um perfil sanitizado do ambiente Delphi
Uma sugestão pode ser perfeitamente válida no Delphi 13 IDE64 e inadequada em outro alvo. Um componente pode estar disponível em determinado projeto e ausente em outro. Um caminho de migração pode depender de packages, framework e bibliotecas já utilizados.
A nova ferramenta GetDelphiEnvironmentProfile cria um inventário somente leitura do ambiente ativo. Ela identifica, quando disponíveis:
- versão, arquitetura e edição da IDE;
- capacidades expostas pela Open Tools API;
- projeto, framework, configuração e plataforma-alvo;
- search paths e runtime packages declarados no
.dproj; - bibliotecas reconhecidas no conteúdo do projeto.
O cuidado com privacidade faz parte do contrato. Caminhos absolutos dentro do projeto são substituídos por {workspace}; caminhos externos aparecem como <external>. A ferramenta não expande variáveis MSBuild, não lê além do projeto ativo, limita o tamanho do arquivo analisado e restringe a quantidade de itens retornados.
Na prática, isso reduz respostas baseadas em suposições. Antes de recomendar uma API, um componente ou uma migração, o agente pode verificar o ambiente real em que a aplicação será compilada.
Orientação Delphi curada, versionada e citável
Modelos de IA conhecem Delphi, mas conhecimento geral não substitui regras operacionais precisas. Há detalhes que fazem diferença em código de produção: strings indexadas a partir de 1, lifetime manual de objetos, acesso à VCL pela thread principal, ownership de componentes, compatibilidade entre versões e segurança de ponteiros em IDE64.
O RadIA 2.9.0 passa a incluir um catálogo local de orientações Delphi. As regras podem ser filtradas por versão, framework, arquitetura e assunto. Também são versionadas e recebem citações estáveis, como [radia-delphi:<identificador>@<versão>].
Até seis regras compatíveis podem ser acrescentadas automaticamente ao contexto do agente. Quando uma orientação influencia a resposta, a citação permite identificar sua origem sem expor caminhos da máquina.
Essa abordagem torna a orientação mais verificável. Em vez de uma recomendação aparecer como uma opinião solta do modelo, ela pode estar ancorada numa regra conhecida e aplicável ao ambiente detectado.
Auditoria bidirecional entre DFM e Pascal
Quem mantém aplicações VCL sabe que parte importante da integridade de um form está na relação entre o arquivo DFM e sua unit Pascal. Um campo ausente, uma classe divergente ou um evento apontando para um método que não existe pode causar erros de streaming, problemas no Designer ou comportamentos difíceis de diagnosticar.
A ferramenta AuditActiveDfmPasConsistency analisa o par .dfm/.pas do form ativo sem carregar componentes, executar código ou modificar arquivos. Entre os problemas detectados estão:
- classe raiz diferente entre DFM e Pascal;
- componente sem campo correspondente na classe;
- campo Pascal sem objeto correspondente no DFM;
- classes incompatíveis entre componente e declaração;
- evento associado a método ausente;
- assinatura incompatível em eventos de notificação comuns;
- handler aparentemente órfão.
Cada achado informa código, severidade, arquivo, linha, nome e mensagem. Nos casos determinísticos de campo ou handler ausente, o RadIA pode preparar uma correção como preview. A aplicação continua separada e depende da revisão do usuário.
Se o arquivo mudar entre a criação do preview e a aplicação, a precondição falha e nada é sobrescrito. Já os casos ambíguos, como classes divergentes ou handlers incompatíveis, permanecem deliberadamente sob decisão humana.
É uma escolha importante: automatizar o que pode ser demonstrado com segurança e não fingir certeza onde ela não existe.
Antes e depois no Form Designer
Alterações visuais são difíceis de avaliar apenas por uma sequência de chamadas de ferramenta. A versão 2.9.0 acrescenta snapshots estruturais e comparação de estados do Form Designer.
O fluxo captura o estado anterior, realiza ou prepara uma alteração autorizada, captura o novo estado e produz uma comparação. O resultado identifica componentes criados ou removidos, mudanças de classe ou parent, movimentos, redimensionamentos, seleção e alterações em propriedades permitidas, como Caption, Text, Align, Visible, Enabled e TabOrder.
Esses dados podem ser apresentados como uma única etapa de antes e depois na timeline do agente. A decisão fica explícita como aceita ou rejeitada.
Vale destacar o limite desta versão: o recurso compara snapshots estruturais; ele não grava imagens raster do form. Os dados permanecem na memória da IDE, não incluem código Pascal nem o conteúdo completo do DFM e não são enviados automaticamente a providers.
Aceitar ou rejeitar a comparação também não modifica o Designer por si só. A mutação real continua sob responsabilidade das ferramentas transacionais que originaram a proposta. Assim, a revisão visual não se transforma numa escrita implícita.
Migração incremental de BDE, ADO e dbExpress para FireDAC
Modernizar acesso a dados legado é uma das tarefas mais relevantes — e mais perigosas — em aplicações Delphi maduras. Trocar nomes de componentes não basta. Conexões, drivers, aliases, transações, parâmetros e diferenças de comportamento podem carregar regras de negócio construídas ao longo de anos.
O RadIA 2.9.0 trata esse trabalho como uma jornada incremental.
Primeiro, InventoryLegacyDataAccess localiza referências a BDE, ADO e dbExpress no projeto ativo, classifica riscos e indica equivalentes FireDAC. Em seguida, PlanLegacyMigrationBatches organiza o trabalho por tecnologia e arquivo.
Cada lote elegível pode gerar um preview reversível. Depois da revisão e aplicação, o fluxo exige build e testes DUnitX. Os resultados são registrados como gates. Se uma dessas validações falhar, o lote aplicado é revertido.
O agente deve concluir e validar um lote antes de preparar o próximo. Elementos cuja semântica não pode ser inferida com segurança continuam marcados como trabalho manual.
Isso evita a promessa sedutora e arriscada de “converter todo o sistema com um clique”. A proposta da 2.9.0 é outra: inventariar, reduzir o escopo, alterar, compilar, testar e manter um relatório de compatibilidade e pendências.
Depois da estabilização em FireDAC, o RadIA também pode planejar passos posteriores, como introdução de uma fronteira DEXT e decomposição de forms. Esse planejamento não reescreve automaticamente a aplicação. Ele organiza uma sequência segura para separar acesso a dados, comprovar paridade de comportamento e só então dividir responsabilidades.
Um contrato mais rígido para a execução autônoma
O modo agente já possuía limites de etapas, repetição, duração, tokens, custo e contexto. Na 2.9.0, cada execução nativa iniciada por /agent run recebe também um contrato local e imutável para a sessão.
Por padrão, esse contrato limita a execução a 32 arquivos afetados e 20 operações mutáveis, com um resumo a cada cinco etapas. Ele também define critérios de conclusão e gates obrigatórios.
Se houve mutação, uma execução não pode ser considerada concluída sem um BuildProject aprovado depois da última mudança. Jornadas que exigem testes também precisam de uma execução DUnitX posterior. Testes reprovados sempre bloqueiam a conclusão.
O runtime pausa diante de limites excedidos, ambiguidades, conflitos, precondições concorrentes ou pedido do usuário. Ao retomar, preserva contrato, consumo acumulado, critérios, gates e resumo a partir do checkpoint. Retomar uma tarefa não amplia silenciosamente as permissões originais.
Ao final, a sessão reúne estado, etapas, operações, arquivos afetados, resultado do build, contagens de testes e pendências. Autonomia, aqui, significa trabalhar por mais tempo dentro de um acordo verificável — não agir sem fronteiras.
Mentor Delphi para diferentes perfis
A versão 2.9.0 também introduz o Mentor Delphi, pensado para adaptar a explicação ao conhecimento do usuário.
Com um trecho selecionado no editor, ExplainSelectedDelphiCode pode responder em três perfis:
- iniciante, explicando sintaxe, ownership, execução e um próximo passo seguro;
- profissional vindo de outra linguagem, comparando conceitos com ambientes gerenciados;
- experiente, concentrando a análise em contratos, lifetime, framework, compilador e trade-offs.
A explicação considera aspectos como VCL ou FMX, vínculo com DFM e packages, além das regras curadas aplicáveis. A seleção é limitada a 12 mil caracteres e não é persistida pelo Mentor.
Sem uma seleção explícita, a ferramenta recusa a execução em vez de capturar o arquivo inteiro. Mais uma vez, contexto útil não precisa significar coleta silenciosa.
Segurança corporativa e benchmark reproduzível
À medida que uma ferramenta ganha mais capacidades, organizações precisam entender por onde os dados passam. A 2.9.0 publica uma ficha corporativa de segurança que diferencia provider remoto, endpoint compatível, CLI, MCP e execução local. O material cobre armazenamento, retenção, exclusão, credenciais, auditoria, telemetria e os limites das garantias que dependem do fornecedor escolhido.
A release também inclui um benchmark local e determinístico da experiência Delphi. Nove cenários cobrem consistência DFM/PAS, Designer, memória, migração com rollback, DUnitX, retomada, confinamento, Delphi 12 Win32 e Delphi 13 IDE64.
O relatório registra sucesso, duração, custo estimado, rollback e hash da saída. Ele não incorpora código, prompts, credenciais ou o conteúdo do stdout, e não envia telemetria.
O objetivo não é produzir um placar de marketing. É permitir que capacidades agentivas sejam medidas de forma repetível, local e comparável.
O que mudou em números
O catálogo interno passou de 133 ferramentas na versão 2.8.0 para 148 na 2.9.0. Mais importante que o aumento de 15 ferramentas é o tipo de capacidade acrescentada: ferramentas que conhecem o ambiente Delphi, verificam a integridade visual e estrutural do projeto e conduzem modernização com gates.
A validação final da release registrou:
- Delphi 12 Win32 com 1103 testes instrumentados e 8 externos, sem vazamentos;
- Delphi 13 Win32 com 1103 testes instrumentados e 8 externos, sem vazamentos;
- Delphi 13 IDE64 com 1111 testes, sem vazamentos;
- testes web 106/106, ESLint aprovado e documentação 42/42;
- SonarQube com quality gate aprovado, cobertura global de 83,6%, duplicação de 1,8% e zero issues;
- pacotes, instalador, evidências, merge, tag e publicação concluídos.
Em relação à certificação da 2.8.0, a suíte instrumentada Win32 cresceu de 1061 para 1103 testes, a suíte IDE64 passou de 1069 para 1111 e a cobertura global subiu de 83,2% para 83,6%, mantendo a duplicação em 1,8% e zero issues no SonarQube.
Como instalar
O caminho recomendado para usuários finais é o instalador visual da release:
RadIA-v2.9.0-Setup.exe
Feche todas as instâncias do Delphi antes de instalar ou atualizar. A publicação oferece somente o instalador necessário ao usuário final, evitando a confusão de escolher entre artefatos internos da pipeline.
A release está disponível em:
O instalador não é assinado por decisão do projeto. O SHA-256 publicado é:
C84414D4494FF4F2F30206404827014CEA373F647DF83F01815C54536225BCB6
O código-fonte, a documentação e os testes estão no repositório oficial:
github.com/regyssilveira/RadIA-Plugin
Conclusão
O RadIA 2.8.0 fez a IA compreender melhor o lugar em que o desenvolvedor estava trabalhando. A 2.9.0 transforma essa compreensão em uma experiência de agente mais propriamente Delphi.
Ela reconhece o ambiente antes de recomendar, consulta regras antes de orientar, compara DFM e Pascal antes de corrigir, mostra o antes e depois do Designer antes de aceitar uma mudança e divide a migração de legado em lotes que precisam compilar e passar nos testes.
Essa sequência revela a direção do projeto. O objetivo não é apenas colocar um chat dentro da IDE, nem medir evolução pela quantidade de ferramentas disponíveis. É construir uma camada de assistência capaz de participar do trabalho real em aplicações Delphi, inclusive nas partes mais delicadas: forms visuais, lifetime, compatibilidade, legado e validação.
Uma boa ferramenta agentiva não é aquela que promete fazer tudo sozinha. É aquela que entende o ambiente, expõe o que observou, respeita limites, interrompe quando encontra ambiguidade e consegue demonstrar que o resultado continua íntegro.
Com a versão 2.9.0, o RadIA dá um passo consistente nessa direção.
Descubra mais sobre Régys Borges da Silveira
Assine para receber nossas notícias mais recentes por e-mail.
Dê-nos sua opinião, seu comentário ajuda o site a crescer e melhorar a qualidade dos artigos.