Cinco releases do CLI, da 15.0.2 à 15.0.6, foram lançados na semana passada. O foco principal foi manter agents de longa duração sob controle, reduzindo o número de processos soltos, limitando a memória e controlando loops de retry.
Novos Comandos e Ferramentas
A maior parte do trabalho foi dedicada ao gerenciamento do Serena, o backend de busca de código que serve de base para todos os agents. O Serena agora usa runtime gerenciado, com adaptadores do Serena instalados junto com um cache de símbolos em SQLite por arquivo. O Python não mantém mais as árvores completas de símbolos do workspace em memória.
Validação do Serena
O novo comando oma serena check valida a configuração do Serena e executa checagens de Dart contra o daemon compartilhado, retornando exit codes que podem ser usados em scripts.
Limpeza de Daemon
Uma tarefa periódica encerra os daemons Serena compartilhados que ficaram ociosos. Ela verifica a identidade do processo antes de enviar um sinal a um PID registrado, garantindo que um PID reciclado nunca seja morto por engano.
Diagnósticos Gerenciados
Os diagnósticos de pacote reaproveitam o language server do Dart gerenciado. As revisões do adapter são registradas sempre que um daemon compartilhado inicia ou é substituído.
Relatório do Doctor
O oma doctor agora informa o estado do adapter do Serena tanto no rodapé do terminal quanto no relatório JSON.
Stacks Duplicadas
Quando o servidor compartilhado está inacessível, o oma agora reporta a falha de conexão em vez de subir uma stack privada do Serena. Os contextos gerenciados são normalizados antes da consulta ao registry.
Substituição de Daemon
Se a revisão do runtime muda enquanto há clientes conectados, o daemon já carregado é reaproveitado e a substituição espera todos os clientes se desconectarem. Os cenários com daemon ativo, ocupado e com revisão legada estão cobertos por testes.
Análise Antecipada de Dart
O Dart agora analisa por padrão ao abrir o arquivo, e quando nenhuma versão está configurada, usa a versão estável do SDK local.
Retries de Orquestração
Os planos são fixados no momento do dispatch, e os retries são contados por linhagem de workflow e objetivo lógico. Falhas de evidência agora são separadas de falhas de produto, e um problema de metadados ausentes recebe um único reparo limitado, sem reiniciar o planejamento do produto.
Checagens Instáveis
O teste de timeout do bridge agora verifica a resposta do bridge protegido em vez do tempo de relógio. O scan de boundaries tenta de novo quando o worker TypeScript encerra por falha transitória.
Updates Mais Silenciosos
O oma update mostra os componentes do Hyperframes que mudaram, deduplica links reparados e termina com um único resumo de versão. Sumiram os totais de arquivos imprecisos e os avisos de rotina.
Limites de Módulo Mais Claros
A validação de config do Serena foi para a camada de I/O compartilhada, então serena check e o setup não importam mais a fatia de comando do bridge. O comportamento não mudou.
Verificação
A correção das stacks duplicadas foi verificada com 211 testes afetados, type checking, lint, checagem de boundaries e um smoke test de busca de símbolo e definição no Serena 1.7.0 com Dart 3.13.4.
Docs e Testes
Integrations/serena/README.md foi expandido, com novos testes em Python para o adapter de Dart, o instalador e o cache de símbolos.
Conclusão
O oh-my-agent é feito para times que passam mais tempo orquestrando do que escrevendo prompts. Na sequência: guardrails mais firmes para execuções longas de orquestração, para que um objetivo travado falhe rápido em vez de ficar em loop.
Fonte: https://dev.to/gracefullight/oh-my-agent-shared-serena-daemons-bounded-retry-loops-4g6
https://github.com/first-fluke/oh-my-agent
https://dev.