Schedule no Kavor: dê um relógio ao seu grafo
Schedule é uma causa visível de atividade: você escolhe quando algo deve acontecer, conecta um único alvo e mantém cada tentativa inspecionável no Canvas.
No domínio do Kavor, Schedule é a fonte de Trigger disponível. Ele não executa o trabalho e não decide se vale a pena agir. Possui somente duas responsabilidades: quando disparar e qual payload entregar.
O alvo dá significado ao payload:
- conectado a um CodingAgent, o payload é um prompt;
- conectado a um Terminal, o payload é um comando de shell.
O restante pertence ao alvo. Workspace, diretório, provider ou shell, Git mode, permissões, Guardrails e contexto do grafo continuam exatamente como já estavam.
Um Schedule inicia a atividade; o CodingAgent usa o contexto alcançável para executar e explicar o resultado.
Três usos que justificam um Schedule
Acordar um Maintainer com contexto
Um Schedule entrega um prompt diário a um CodingAgent. Esse agente alcança uma Specification com o contrato de manutenção, um Terminal para executar verificações, um File com dados de entrada, uma Sticky Note para o relatório e um Reviewer para uma avaliação independente.
O Schedule inicia uma causa. O grafo fornece intenção, ferramentas, memória e colaboração.
Executar um comando operacional visível
Um Schedule conectado diretamente a um Terminal pode entregar uma verificação, um script ou um comando de manutenção. Se um File também estiver conectado ao Terminal com uma variável de ambiente, o comando pode consumir o caminho canônico sem copiar valores entre janelas.
sqlite3 app.db < "$CHECK_SQL"
O processo continua no Terminal real. O histórico do Schedule registra o que o Kavor conseguiu observar sobre a entrega, sem inventar sucesso a partir do texto exibido pelo shell.
Criar um sistema semiautônomo pequeno
Schedule — Maintainer — Specification
├─ Terminal
├─ File
├─ Sticky Note
└─ Reviewer
As linhas representam Connections sem direção persistida. O Schedule possui um único alvo direto: Maintainer. O
CodingAgent usa o restante do componente alcançável para cumprir o prompt e deixa evidências para a decisão humana.
Configure primeiro, solte o relógio depois
Um Schedule novo começa Paused como uma execução única futura. Isso permite escrever o payload, escolher a recorrência, conectar o alvo e revisar o preview antes de autorizar atividade.
Uma configuração segura segue esta ordem:
- adicione um Schedule ao Canvas;
- escreva um payload específico e verificável;
- escolha uma execução única ou uma recorrência;
- confira
Next occurrencese a zona exibida; - conecte diretamente um CodingAgent ou Terminal;
- use
Resumesomente quando a estrutura estiver pronta.
Um Trigger pode existir sem alvo enquanto é configurado. Não trate isso como configuração completa: um Schedule em
execução sem Connection de alvo registra o momento como Blocked, e Run now sem alvo é recusado antes de criar uma
tentativa.
Escreva um payload que possa terminar
Um bom prompt para CodingAgent informa objetivo, recursos do grafo, evidência esperada e condição de parada:
Analise as falhas recentes de CI. Execute apenas as verificações relevantes no Terminal Checks, registre um resumo com evidências na Sticky Note Daily report e peça ao Reviewer uma avaliação independente. Não altere código antes de registrar a causa provável e pare se a correção exigir ampliar o escopo da Specification.
Um bom comando para Terminal é explícito, não interativo e deixa um resultado observável:
pnpm test -- --runInBand
O payload não substitui Connections. Mencionar uma Sticky Note, File ou Specification não concede acesso se o Node não estiver no componente alcançável do CodingAgent.
Recorrência sem esconder o calendário
O editor oferece atalhos para os casos comuns:
Once;Hourly;Daily;Weekdays;Weekly;Monthly;Custompara uma expressão cron avançada.
Os atalhos e o editor avançado alteram a mesma expressão; não existem dois agendamentos paralelos que possam divergir. O intervalo mínimo é de um minuto. Uma recorrência que cron não representa corretamente, como “a cada duas semanas a partir desta data”, não deve ser aproximada com uma expressão enganosa.
O Kavor salva uma zona IANA explícita e mostra as próximas ocorrências na zona local da máquina que apresenta o
Canvas. A zona não é um campo editável na interface; ela é estampada a partir do host quando a configuração é salva.
Confira sempre o preview antes de usar Resume.
Em mudanças de horário de verão, uma sobreposição local dispara uma vez. Um horário inexistente no avanço do relógio é deslocado para o primeiro instante local válido, em vez de desaparecer silenciosamente. No preset mensal, um dia que não existe naquele mês é pulado; dia 31, por exemplo, não executa em fevereiro.
Pause, Resume e Run now são coisas diferentes
- Pause interrompe novas ocorrências imediatamente. O tempo pausado não produz tentativas nem registros
Missed. - Resume volta a considerar somente ocorrências futuras. Ele exige payload válido; uma execução única também precisa continuar no futuro.
- Run now cria uma tentativa manual independente. Funciona enquanto o Schedule está pausado e não desloca a próxima ocorrência da recorrência.
Run now é útil para validar o payload e o alvo antes de liberar o relógio. Ele não é um retry automático de uma
tentativa anterior e não altera o estado Paused ou Running.
Uma execução Once volta para Paused depois que seu instante é consumido. O histórico permanece e Run now continua
disponível.
O que acontece quando chega a hora
O Kavor registra uma tentativa durável para o instante e arbitra a entrega junto com mensagens já aceitas pelo alvo.
A tentativa pode passar por Pending e Delivering antes do resultado observado.
O histórico distingue situações diferentes:
- Completed — o Kavor observou a conclusão;
- Needs attention — o CodingAgent pediu intervenção e ainda pode concluir depois;
- Fired — a entrega ocorreu, mas aquele caminho não oferece conclusão observável;
- Failed — houve uma falha observável;
- Interrupted — a entrega começou, mas foi interrompida antes de um resultado confiável;
- Blocked — o alvo ou Workspace não estava disponível no momento da entrega;
- Missed — o instante passou enquanto o runtime não podia reivindicá-lo;
- Coalesced — outra tentativa já ocupava o único slot pendente daquele alvo.
Horário programado não é evidência de execução. Consulte a última apresentação no Node e abra o histórico para ver horário nominal, entrega, resultado e diagnóstico disponível.
Quando a máquina dorme ou o Kavor não está aberto
Schedules dependem do runtime local. O Kavor precisa estar em execução, a máquina precisa estar acordada, o usuário precisa estar autenticado e a sessão do alvo precisa estar ativa.
Se uma ou várias ocorrências passam durante uma indisponibilidade, o Kavor registra somente a ocorrência perdida mais
recente daquele Schedule, em vez de criar milhares de linhas depois de uma ausência longa. Ele não executa o trabalho
de surpresa ao voltar. A interface informa Missed e oferece uma ação explícita equivalente a Run now.
Não existe catch-up automático nem retry de efeitos externos. Essa escolha evita que um comando antigo execute fora de contexto sem você perceber.
Quando o alvo já está ocupado
O Schedule mantém no máximo uma tentativa pendente enquanto o alvo trabalha. Novas ocorrências que chegam com esse
slot ocupado são registradas como Coalesced e não serão entregues depois.
Esse limite impede que um agente ou Terminal acorde para processar uma fila antiga sem controle. Se a tarefa pode durar mais que a recorrência, aumente o intervalo ou faça o próprio alvo reconciliar o estado atual de forma idempotente.
Limites que você deve assumir
- um Schedule possui no máximo um alvo direto;
- o alvo precisa ser um CodingAgent ou Terminal;
- o Schedule não inicia uma sessão que você fechou deliberadamente;
- ele não amplia o grafo, permissões ou Guardrails do alvo;
- ele não substitui critérios de aceite nem decide se o resultado está correto;
- ele faz no máximo uma tentativa automática de entrega por tentativa registrada;
- ele não promete efeito externo exatamente uma vez;
- ele não acumula todas as ocorrências perdidas ou coalescidas para executar depois.
Se o trabalho exige fan-out, aprovação em etapas, compensação ou orquestração transacional, não esconda isso dentro de um Schedule. Modele responsabilidades no grafo e mantenha a decisão humana explícita.
Checklist antes de usar Resume
- o payload descreve objetivo, evidência e condição de parada?
Next occurrencescorresponde ao horário que você espera?- a zona exibida é a correta para esta máquina?
- existe exatamente uma Connection de alvo?
- a sessão do alvo deve permanecer ativa naquele horário?
- o grafo contém somente o contexto e as capacidades necessários?
- repetir o trabalho é seguro caso um efeito externo já tenha acontecido?
- você sabe onde consultar o resultado e o histórico?
Continue
- Consulte a matriz de Connections para revisar o contrato do alvo.
- Entenda como CodingAgents enxergam e constroem o Canvas.
- Use CodingAgents e papéis para separar manutenção, revisão e decisão.