Skip to content

Releases: davibauer/planou-agent

agent v0.96.0

Choose a tag to compare

@davibauer davibauer released this 06 Oct 01:40
  • Trabalho feito na sessão sem fila nem fonte (um MR, uma investigação, um merge, uma operação num cluster) agora vira tarefa no Planou mesmo com os ganchos daily e tarefas desligados: tarefa nova --title '...' abre a tarefa e devolve o PID, e tarefa concluir <PID> --evidence '<link ou resultado>' fecha com a evidência (--done registra o que já foi feito). O custo da sessão vai para a tarefa aberta, o worker ligado com worker start --task <PID> também, e repetir o mesmo título no mesmo dia não duplica. Concluir ou reabrir a tarefa no Planou chega ao agente no próximo tick, e com confidentiality: minimum sobe só "Agente :<código>", sem o link da evidência.

Instalar: curl -fsSL https://raw.githubusercontent.com/davibauer/planou-agent/v0.96.0/install.sh | sh

agent v0.95.2

Choose a tag to compare

@davibauer davibauer released this 06 Oct 01:04
  • Item do Azure DevOps que sai da lista de atribuídos agora fecha a tarefa dele no Planou (wi<id>): Done, Closed e Resolved fecham como feita, Removed ou item apagado como descartada, com a data de fechamento do próprio item, e item reatribuído a outra pessoa (ou movido para fora dos projetos) como sem ação, com a data da reatribuição ou da mudança de projeto. Antes a tarefa ficava em andamento para sempre e podia entrar no foco do dia.
  • As tarefas que já estavam presas se recuperam sozinhas no tick: a fonte confere por id, numa chamada só, os wi<id> que o Planou ainda tem abertos e que não estão mais na lista. Erro nessa conferência vira um aviso, sem derrubar a fonte, e a conferência só volta 6 h depois (sem aviso a cada tick). Nessa conferência, item que o Azure DevOps não devolve (apagado ou sem permissão de leitura) não fecha a tarefa: ela fica aberta para fechar à mão.
  • Novas chaves da fonte ado_workitems: prefixos_tarefa (padrão ["wi"]) e descartados (padrão ["Removed"]).

Instalar: curl -fsSL https://raw.githubusercontent.com/davibauer/planou-agent/v0.95.2/install.sh | sh

agent v0.95.1

Choose a tag to compare

@davibauer davibauer released this 05 Oct 23:52
  • O runner não fica mais esquecido: quando a acordada chega no meio de outro pedido e a sessão termina o turno sem relançá-lo, um hook Stop (posto pelo launcher team, ou pelo plugin quando instalado como plugin) segura o fim do turno e manda relançar (FIRST_NOW=0). Só em sessão de agente que subiu o runner e não o parou de propósito (um stop feito por outro terminal ou pelo Desligar do Planou também conta); não insiste (no máximo uma vez a cada 30 min se o relançamento falhar).

Instalar: curl -fsSL https://raw.githubusercontent.com/davibauer/planou-agent/v0.95.1/install.sh | sh

agent v0.95.0

Choose a tag to compare

@davibauer davibauer released this 05 Oct 22:55
  • Opção planou.all_roles (PLN0368): o funcionário faz todos os papéis de coluna (Dev, Revisão de código, QA e Release) que o computador consegue, sem ligar cada comportamento. O heartbeat manda a lista explícita dos papéis; QA só entra com o navegador do Playwright instalado e Release só com o release em lote configurado, e o papel que fica fora vai ao Planou em roles_unavailable (a ficha mostra o motivo e o comando que o traz de volta) e aparece no --validate. Com a restrição de papéis feita no Planou (role_limit), o --load deixa de listar os papéis fora dela.
  • Com all_roles, Revisão de código, QA e Release passam a ser lidos sob demanda (o Dev continua lido em toda sessão): a linha da fila diz o papel da coluna, qual comportamento ler e o --brief --role do worker, e o --brief --role aceita o papel da coluna mesmo fora de behaviors (também pelo nome do papel: dev, qa, release).
  • Funcionário novo pedido com "faz todos os papéis" no Planou (all_roles), ou sem papéis, nasce com all_roles ligado (antes, só Dev); o release nunca vem ligado por padrão.

Instalar: curl -fsSL https://raw.githubusercontent.com/davibauer/planou-agent/v0.95.0/install.sh | sh

agent v0.94.1

Choose a tag to compare

@davibauer davibauer released this 05 Oct 22:52
  • Uma fonte lenta não congela mais as outras: o estado é gravado ao fim de cada fonte, e não só no fim do tick, então o tick que morre pelo teto do runner não faz as outras fontes relerem uma janela cada vez maior.
  • Cada fonte tem um orçamento de tempo (metade do teto do tick, ou source_budget_s no config, em segundos; 0 desliga só esse orçamento). A fonte que passa dele é interrompida, inclusive o Teams no meio das sondas, volta ao cursor do último tick que terminou e aparece como FONTE QUEBRADA (<fonte>): FONTE LENTA, com o mesmo silêncio de repetição de uma fonte quebrada. Nenhuma fonte começa depois de três quartos do teto.
  • Ganchos e Planou lentos não somem mais com os itens novos: ao passar do teto, o resto fica para o próximo tick, sai AVISO (tick): sem tempo para ... e os itens das fontes aparecem assim mesmo.
  • agent.py --validate aponta source_budget_s que não é número 0 ou mais (antes um texto quebrava todo tick).

Instalar: curl -fsSL https://raw.githubusercontent.com/davibauer/planou-agent/v0.94.1/install.sh | sh

agent v0.94.0

Choose a tag to compare

@davibauer davibauer released this 05 Oct 22:42
  • Foco do dia (Planou 0.93.0): o agente dono do projeto, ou o planou num projeto sem dono, recalcula a cada tick com novidade as até 3 tarefas que fecham o dia e grava só quando a ordem muda, com o motivo em uma linha. Respeita as vagas fixadas ou concluídas, o que a pessoa tirou e as promessas de hoje (também a marcada antes para este dia), nunca mexe em data, prioridade ou promessa e não acorda a sessão. Como vê só parte do projeto, nunca tira do foco uma tarefa que o Planou pôs por bloquear outra ou pelo Prazo sem saber disso, e mantém o motivo que o Planou deu. Desliga com "planou": {"focus": false}.

Instalar: curl -fsSL https://raw.githubusercontent.com/davibauer/planou-agent/v0.94.0/install.sh | sh

agent v0.93.1

Choose a tag to compare

@davibauer davibauer released this 05 Oct 19:40
  • Ambiente de teste do QA: comando que passa do tempo agora para junto com tudo o que ele abriu (antes os processos filhos seguiam rodando), e o down só para o servidor de teste quando o grupo de processos ainda é dele, nunca um processo que ganhou o mesmo número depois.
  • Docker compose descoberto: a URL do teste é a porta do app (serviço web, app, front...), nunca a do banco; a pergunta cita o serviço, avisa bind em sintaxe longa, volume com ../ e secrets/configs com file:, e diz o que dois testes ao mesmo tempo dividem (container_name, volume externo ou com nome fixo). Com uma porta fixa do compose já em uso (ou nome fixo de container ou volume com outro QA do mesmo projeto no ar), o QA não sobe um segundo ambiente por cima, e um aviso novo que a pessoa não viu ao aprovar faz a pergunta voltar.
  • A descoberta do repositório lê de novo o que já tinha achado quando as regras de risco mudam, sem esperar a main do repositório andar.
  • Atualização sozinha da cópia git do instalador: a tag da versão precisa estar na main do origin (tag fora da main é recusada) e o git fetch que passa do tempo para junto com o processo de rede que ele abriu.

Instalar: curl -fsSL https://raw.githubusercontent.com/davibauer/planou-agent/v0.93.1/install.sh | sh

agent v0.93.0

Choose a tag to compare

@davibauer davibauer released this 05 Oct 17:45
  • O funcionário passa a dizer ao Planou se a cópia do plugin que ele lê atualiza sozinha pelo provisionador e, quando não, o motivo (atualização desligada, sem provisionador, cópia de desenvolvimento, clone com mudança local, commit local, outra branch ou outro remote). A ficha mostra "Atualiza sozinho em até 30 min" sem o comando, ou o motivo e o comando. A regra é a mesma que o provisionador usa para decidir.
  • O provisionador deixa como está o clone que tem um arquivo não rastreado no lugar de um que a versão nova traz, com o motivo no log, em vez de tentar o avanço e falhar a cada 30 min.

Instalar: curl -fsSL https://raw.githubusercontent.com/davibauer/planou-agent/v0.93.0/install.sh | sh

agent v0.92.0

Choose a tag to compare

@davibauer davibauer released this 05 Oct 16:54
  • travel-agent: cada plano de viagem vira um card no projeto do Planou (com "plan_cards": {"detail": true} no config), com título (datas, voo e voo+hotéis para o grupo) e descrição (roteiro, voo, hotéis, total, meta e referência). O card é atualizado em todo tick e logo depois dos passos do Expedia e dos hotéis (--done expedia, --done hoteis), o plano escolhido (card.chosen) fica com prioridade alta, e o card fecha quando o voo é comprado (feito) ou a viagem é pausada ou sai do config (sem ação). card.code adota um card que já existe. --plan-cards sincroniza na hora e --plan-cards --dry mostra o que subiria.

Instalar: curl -fsSL https://raw.githubusercontent.com/davibauer/planou-agent/v0.92.0/install.sh | sh

agent v0.91.2

Choose a tag to compare

@davibauer davibauer released this 05 Oct 16:35
  • O attach não trata mais como recusa definitiva um anexo que o Planou só pediu para tentar de novo (por exemplo, dois envios do mesmo arquivo ao mesmo tempo) nem um erro sem motivo conhecido: o aviso mostra a mensagem do Planou e o anexo vai de novo no próximo tick. Só o limite de anexos por tarefa, o tamanho, o tipo e os erros de validação seguram o arquivo até ele mudar, e o aviso de recusa não repete mais duas vezes que o anexo não vai de novo.

Instalar: curl -fsSL https://raw.githubusercontent.com/davibauer/planou-agent/v0.91.2/install.sh | sh