Repository navigation
Releases: davibauer/planou-agent
Release list
agent v0.96.0
- 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
dailyetarefasdesligados:tarefa nova --title '...'abre a tarefa e devolve o PID, etarefa concluir <PID> --evidence '<link ou resultado>'fecha com a evidência (--doneregistra o que já foi feito). O custo da sessão vai para a tarefa aberta, o worker ligado comworker 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 comconfidentiality: minimumsobe 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
- 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"]) edescartados(padrão["Removed"]).
Instalar: curl -fsSL https://raw.githubusercontent.com/davibauer/planou-agent/v0.95.2/install.sh | sh
agent v0.95.1
- 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
- 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 emroles_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--loaddeixa 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 --roledo worker, e o--brief --roleaceita o papel da coluna mesmo fora debehaviors(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 comall_rolesligado (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
- 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_sno 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 comoFONTE 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 --validateapontasource_budget_sque 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
- Foco do dia (Planou 0.93.0): o agente dono do projeto, ou o
planounum 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
- 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
downsó 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 comfile:, 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 fetchque 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
- 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
- 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.codeadota um card que já existe.--plan-cardssincroniza na hora e--plan-cards --drymostra o que subiria.
Instalar: curl -fsSL https://raw.githubusercontent.com/davibauer/planou-agent/v0.92.0/install.sh | sh
agent v0.91.2
- O
attachnã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