# A página Runs: execuções, jobs e logs

> Leia as execuções e os jobs que o Latchkey atendeu no seu workspace: o que está rodando agora, o histórico e seus filtros, o detalhe e o log de um job, e os jobs e as pernas de uma execução.

Source: https://latchkey.dev/pt/documentation/runs

## Summary

- **Runs** lista as execuções de pipeline, os jobs da CLI e os jobs do Latchkey on GH que o Latchkey atendeu neste workspace, e nada que ele não tenha atendido.
- **Running now** mostra os jobs de pipeline e da CLI rodando, iniciando ou retidos agora; **History** percorre a janela 25 linhas por vez, restrita por filtros e por uma busca.
- Escolha uma execução ou um job da CLI para abrir o detalhe do job ao lado da lista, com **Download log** no rodapé; **Export CSV** salva o histórico como um arquivo.
- A página de uma execução desenha os jobs pelo que cada um precisa, um job de matriz abre a sua grade de pernas, e um job cujo próprio comando falhou pode ser entregue ao seu agente de código.

A página Runs. Running now, marcado Live, se enche com os jobs de um push, Lint, quatro shards de Unit e Integration do CI e três navegadores do E2E, e um job da CLI rodando npm ci && npm test. Cada job mostra Starting enquanto inicia em um runner e depois roda, e o Lint termina e sai da lista. A linha acima dos jobs conta os runners em uso, até 10 de 80 e depois 9 de 80, e os que ainda estão iniciando, com warm 6, parked 4 e 0 held, e a taxa de gasto, que sobe a $4,80 por hora e cai a $4,65 quando o Lint sai; uma legenda sob os jobs indica queued, starting e running. Abaixo, History, em 30d, lista execuções e jobs com o resultado, o pipeline, o repositório, o custo, o início e a duração: uma execução do CI que passou com Healed ao lado, um job da CLI, E2E, Bench e uma execução do CI que falhou, sob Spend in this window, $41,25.

Running now mostra os jobs rodando, iniciando ou retidos neste momento e a taxa de gasto em dólares por hora; History lista o que rodou na janela. Spend in this window conta só as cobranças já lançadas.

A página **Runs** fica na barra lateral do dashboard. Ela tem dois painéis, **Running now** e **History**, e a partir das linhas deles leva ao detalhe de um job ao lado da lista, à página de uma execução e à página de um job.

Cada linha é algo que o Latchkey executou, lido dos próprios registros dele. Um job do GitHub Actions só aparece na página quando o Latchkey o atendeu nos runners dele: ele é uma linha **Latchkey on GH** para aquele job, nunca a execução do GitHub da qual ele faz parte, e não abre nada, porque o Latchkey não tem uma página própria para ele.

## A barra de título

- **Export CSV** salva o histórico como você o restringiu, em um arquivo CSV (veja Exportar o histórico, abaixo).
- **Run workflow** inicia manualmente um [arquivo de workflow](https://latchkey.dev/pt/documentation/workflow-files) do Latchkey CI, um que declare `on: workflow_dispatch`: você escolhe o repositório, o arquivo de workflow, a branch ou tag e as entradas dele.
- **Run a job** abre um painel com os comandos para instalar o [Latchkey CLI](https://latchkey.dev/pt/documentation/latchkey-cli), entrar com uma chave que possa executar jobs e executar um.
- No Easy, **Filters** abre os filtros do histórico em um popover. O Pro os mostra como uma linha acima de Running now.

## Running now

**Running now**, marcado **Live**, lista todo job do workspace que está rodando, iniciando ou retido agora, tanto os jobs de execuções de pipeline quanto os jobs da CLI, e o seu cabeçalho conta os jobs que lista. Quando não lista nenhum, mostra "No pipeline or CLI job is running now." A linha acima dos jobs traz:

- **Runners at once**: os runners em uso em relação ao seu limite ("Runners at once: 3 of 40 in use"), depois quantos deles ainda estão iniciando e quantos rodam jobs do Latchkey on GH, quando há algum.
- **warm** e **parked**: os runners de prontidão do próprio workspace, um runner warm contado até terminar o único job que ele pega; **held**: os jobs ainda na fila por um runner, como no limite de runners simultâneos do workspace ou no limite de gastos dele.
- A taxa de gasto, pelo preço de tabela, dos jobs iniciados nos seus runners e dos cold starts ainda inicializando, incluindo os jobs do Latchkey on GH, em dólares por hora.

Abaixo dela, cada job é uma linha em um único eixo de tempo: um ponto e o seu rótulo (o pipeline e o job de uma execução, ou **CLI job** e o seu comando), um chip **Starting** ou **Held** enquanto ele espera, e uma barra desde quando ele entrou na fila: queued até ser entregue a um runner, starting até começar, depois running. A legenda indica queued e running, e starting sempre que uma barra o desenha. Um job retido também ganha uma linha sob o eixo com o motivo da espera, quando o Latchkey nomeia um.

Cada linha abre a página do próprio job. Nada é cancelado a partir de Running now: um job da CLI é cancelado na própria página, e uma execução na sua linha em History ou na própria página. **View fleet** abre a [página de Runners](https://latchkey.dev/pt/documentation/runners-dashboard). Passando de 100 jobs, o painel mostra os 100 primeiros e avisa isso.

## History

**History** lista as execuções na janela e os jobs que terminaram nela, uma linha cada, os mais recentes primeiro; clique em **Started** para inverter a ordem. O painel mostra 25 linhas por página, com o intervalo sob a tabela ("1 to 25 of 140 runs and jobs"). A janela fica nas ferramentas do histórico: **7d**, **30d** (o padrão) e **90d**, além de **1d** e **Custom** no Pro, onde Custom escolhe um início e o seu horário até 90 dias atrás.

Ao lado da janela, o campo de busca ("Pipeline, job, sha or ref") restringe as linhas, e **Spend in this window** é o que foi cobrado na janela inteira, quaisquer que sejam os filtros ou a página na tela. Sob a tabela, **By key** e **By batch** dividem esse gasto pela chave de API e pelo lote que enviou o trabalho: os três maiores pelo nome, o restante contado em uma linha.

### Filtros

No Pro, os filtros ficam em uma linha acima de Running now, um chip para cada um definido, com **Clear filters** no fim; no Easy, eles abrem a partir de **Filters** na barra de título. O Latchkey os aplica à janela inteira, então toda página do histórico é restringida, não só a que está na tela.

- **All runs and jobs** mostra todo tipo de linha; escolha **Pipelines**, **CLI jobs** ou **Latchkey on GH** para mostrar um tipo. O tipo mostrado não é um filtro: não ganha chip, e **Clear filters** o mantém.
- **Runner** escolhe um tamanho de runner e mostra só jobs da CLI e jobs do Latchkey on GH.
- **Repository** e **Pipeline** aceitam várias escolhas cada, e Pipeline oferece **No pipeline** para execuções sem arquivo de workflow para rodar. Qualquer um dos dois deixa de fora os jobs da CLI, que não pertencem a nenhum repositório, e uma escolha em Pipeline deixa de fora também os jobs do Latchkey on GH.
- **Branch** escolhe uma branch das execuções da janela, e mostra só execuções.
- **Triggered by** lista as **People** que iniciaram execuções e as **API keys** que enviaram jobs da CLI (**not recorded** quando a chave de um job não é nomeada). Uma pessoa mostra só execuções, e uma chave só jobs da CLI.
- **Result** escolhe um resultado: Failed, Passed, Running, Stopped, Cancelled, Timed out, Action needed, Not run, Out of date ou No result. Running e Not run mostram só execuções, e Stopped deixa de fora os jobs do Latchkey on GH.

### Linhas

| Coluna | O que mostra |
| --- | --- |
| Result | O resultado, com **Healed** ao lado de um sucesso que o autorreparo consertou. |
| Pipeline | O pipeline de uma execução, **CLI job** com o comando abaixo, ou o workflow de um job do Latchkey on GH. No Pro, uma execução traz a tag **Latchkey CI**, um job do Latchkey on GH traz a sua tag com o job abaixo, e a segunda linha de uma execução dá a frase da falha, ou diz que ela foi retida, substituída ou interrompida. |
| Repository | Uma coluna no Pro a partir de 1.280 px de largura enquanto nenhum detalhe de job está aberto; caso contrário, o repositório fica sob o nome. |
| Runner | O tamanho de runner de um job, a partir de 1.280 px de largura. |
| Cost | O que foi cobrado, **free** quando seus minutos gratuitos o cobriram, ou um valor **so far** pelo preço de tabela até a cobrança ser lançada. |
| Commit, Ref e Event | No Pro, o commit de uma execução, a sua branch, tag ou pull request e o que a iniciou, a partir de 1.920 px de largura enquanto nenhum detalhe de job está aberto. |
| Started e Took | Quando começou e quanto tempo levou. |

A linha de uma execução termina com no máximo uma ação, conforme o estado da execução: **Cancel run** enquanto ela está em andamento, que pede confirmação antes; **Re-run**, para os jobs que não passaram, quando ela terminou sem passar, a menos que mostre Not run ou seja um preflight; **Approve** em um pull request retido vindo de um fork, que abre a página da execução para aprovar o commit; **Newer run** em uma execução que uma mais nova substituiu; **Open billing** em uma execução que o faturamento interrompeu; e **Docs** em uma execução que não encontrou arquivo de workflow. Enquanto um detalhe de job fica ao lado da tabela, as linhas não mostram ação.

### Exportar o histórico

**Export CSV** na barra de título e o ícone de download nas ferramentas do histórico (chamado **Download CSV**) salvam o mesmo arquivo: as linhas que a janela, os filtros, a busca e a ordem mantêm, não só a página na tela, com o nome dos dias que ele cobre (`latchkey-history-2026-10-01-to-2026-10-31.csv`). As colunas são Kind, Result, Pipeline or job, Repository, Runner, Cost (USD), Cost so far (USD), Commit, Ref, Event, Triggered by, Started (UTC), Took (seconds) e Id. Um arquivo guarda no máximo 1.000 linhas; quando não cabem todas, o histórico diz quantas ele guarda ("The file holds the first 1,000 of 1,240 rows. Narrow the window or the filters to export the rest.").

## O detalhe do job ao lado da lista

Escolha a linha de uma execução ou de um job da CLI e um job abre ao lado do histórico: o próprio job da CLI, ou o primeiro job com falha de uma execução, ou, se não houver, o mais recente; uma execução sem nenhum job diz "No jobs". A partir de 1.280 px de largura ele fica ao lado da tabela, e abaixo disso, sob ela. **Escape** ou o controle de fechar leva você de volta à linha.

O cabeçalho nomeia um job da CLI e o seu resultado, ou o pipeline de uma execução e o resultado da execução, com o job que ele mostra na trilha acima. Depois vem **This job**: Result, Started, Took e **Queue to start**, o Cost de um job de execução, o Command e o Budget de um job da CLI e, no Pro, o Runner e **Served by** (warm, parked ou cold start). Abaixo deles vêm os ids do job, o tempo antes do primeiro passo e o log. O rodapé traz **Open the run** para o job de uma execução, **Download log**, que salva o log como **Raw** o mostra depois que o log inteiro é lido, como `<job id>.log`, e **Open job page**. Em um job cujo próprio comando falhou, **Hand to agent** monta um prompt para colar no seu agente de código, que lê a falha pelo [servidor MCP do Latchkey](https://latchkey.dev/pt/documentation/connect-your-ai-agent).

## A página da execução

A página de uma execução ("How this run was served, where its time went, and its jobs.") abre a partir de **Open the run**, da trilha da página de um job e dos checks do Latchkey no seu host de código. O cabeçalho traz o resultado, o pipeline (no Pro, com o arquivo de workflow), o ref, o commit e o repositório, depois **Triggered by**, **Event**, os **Inputs** de uma execução manual, **Started**, **Took** e **Cost**, sobre o **Run id**. Quando uma execução tem uma segunda tentativa, o cabeçalho a conta ("Attempt 2 of 2"), e a página de uma tentativa anterior diz que é uma tentativa anterior.

A barra de título traz uma ação: **Re-run jobs that did not pass** quando a execução terminou sem passar, a menos que mostre Not run, seja um preflight ou uma execução mais nova a tenha substituído, **Cancel run** enquanto ela está em andamento ("Cancel this run? Every job in it that has not finished is cancelled.") ou **Approve this commit** em um pull request retido vindo de um fork.

**Jobs** desenha os jobs da execução como blocos, em colunas pelo que cada um precisa, entre os checks da execução; uma linha de um job a outro significa que o segundo precisa do primeiro. Um bloco dá o resultado do job e a sua linha de texto, e o bloco de um job de matriz conta as pernas por resultado. Clique em um bloco para abrir o job em uma seção própria, encabeçada pelo nome dele e por **Open the job page**, com os dados dele, **Services** quando o job iniciou serviços, e o log. A seção de um job de matriz é encabeçada, em vez disso, por **Open the leg grid**, que o bloco do job de matriz também traz, e lista as pernas do job; clique em uma para abrir os dados, os Services e o log dessa perna abaixo da lista, com **Open the job page** sobre os dados dela.

Acima dos jobs, cada ambiente que os jobs da execução nomeiam ganha um painel **Approval for**. Enquanto a execução espera, um owner ou admin a aprova ou rejeita ali; depois, o painel diz quem decidiu e quando, ou que o ambiente não precisava de aprovação (veja [Arquivos de workflow](https://latchkey.dev/pt/documentation/workflow-files)). Abaixo dos jobs, **Artifacts** lista o que os jobs da tentativa enviaram, cada um com o seu tamanho, o job que o enviou, quando expira e **Download**.

## A página do job

A página própria de um job ("How this job was served, where its time went, and its log.") traz This job, **Services** quando o job iniciou serviços, e o log, e o job de uma execução leva de volta à execução pela trilha na barra de título. A barra de título traz **Hand to agent** em um job cujo próprio comando falhou, e **Cancel job** em um job da CLI que não terminou ("Cancel this job? A cancelled job cannot be resumed.").

## A grade de pernas

**Open the leg grid** mostra as pernas de um job de matriz ("The legs of this job and how each ended."). Uma faixa dá **Legs**, **Failed**, **Median** e **Slowest**. A grade dispõe as pernas em dois dos eixos do job, escolhidos em **Rows** e **Columns** (um job de um só eixo tem apenas Rows), como **Chips** ou **Dots**, e em Chips uma perna que o Latchkey marca como lenta traz um triângulo: "over 1.5x the median". Um job de três eixos desenha uma grade para cada valor do terceiro. As pernas com falha e a mais lenta das pernas que passaram ficam ao lado da grade, cada uma com o caminho para a sua própria página, e uma perna com falha cujo próprio comando falhou oferece **Hand to agent**.

## O log

O log de um job é dividido pelos seus passos, cada um com o seu status, e as linhas fora de todo passo ficam sob **Outside the steps**. **Search the log** encontra um termo e percorre as ocorrências, **Raw** mostra o log como texto simples e, enquanto o job roda, **Follow** mantém a linha mais recente à vista. Os logs são guardados por 7 dias. Um passo que o Latchkey reparou traz **Healed**, com **What Latchkey did** e **Open the heal**; veja [Autorreparo](https://latchkey.dev/pt/documentation/self-healing).

### Por que uma execução do GitHub Actions não está na página Runs?

A página lista só o que o Latchkey executou. Um job do GitHub Actions que o Latchkey atendeu nos runners dele vira uma linha **Latchkey on GH** em History quando termina; o restante dessa execução do GitHub, e qualquer execução sem nenhum job atendido pelo Latchkey, não está na página.

### Por que um custo mostra "so far"?

Até a cobrança de uma execução ser lançada, o seu Cost são os minutos de cada job pelo preço de tabela do seu tamanho, não a sua fatura. A cobrança toma o lugar dele quando é lançada, e **Spend in this window** conta só as cobranças já lançadas. Os minutos gratuitos usados aparecem na [página de Runners](https://latchkey.dev/pt/documentation/runners-dashboard).

### Onde eu cancelo um job ou uma execução?

Um job da CLI na própria página, com **Cancel job** na barra de título. Uma execução na sua linha em History ou na página da execução, com **Cancel run**, que cancela todo job dela que não terminou. Running now abre a página de um job e não cancela nada por si só.

---

Latchkey runs CI/CD that repairs its own failures. Agent entry points: https://latchkey.dev/agent.txt, https://latchkey.dev/openapi.json, https://latchkey.dev/llms.txt
