O início das sessões
O Bromure Agentic Coding abre nas suas sessões. Uma sessão é uma conversa com um agente de programação, a trabalhar numa pasta numa máquina — sendo uma máquina (um espaço de trabalho, no editor de definições) a VM Linux isolada descrita em Conceitos e arquitetura. Inicia uma sessão dizendo o que quer; a aplicação acorda a máquina se for preciso, arranca o agente na pasta certa e, a partir daí, fala com ele num chat. O terminal continua ali por baixo, a um clique de distância, mas o chat é a superfície principal.
Este capítulo cobre a janela em volta do chat: a barra lateral que lista as suas sessões, o cabeçalho e a barra de ferramentas acima do chat, a paleta de comandos ⌘K, o que fazem arquivar, encerrar e eliminar, e o teclado. Iniciar uma sessão é tratado em Iniciar uma sessão, o chat em si em O chat, e as máquinas por trás das sessões em Máquinas.
A janela
Todas as sessões vivem numa única janela intitulada Bromure. Está dividida em duas: uma barra lateral redimensionável à esquerda e o palco à direita, que mostra o que selecionou — o chat de uma sessão, o ecrã de nova sessão, uma sala, um quadro, o terminal ou o painel de uma máquina.
Quando a janela abre, o palco mostra a sessão que estava a ver por último, a não ser que ela tenha entretanto terminado ou sido arquivada. Caso contrário mostra a sessão mais recente no estado mais premente e, na falta disso, o ecrã de nova sessão.
Arraste o separador para redimensionar a barra lateral (até 600 pontos). Arrastá-lo para menos de cerca de 100 pontos encaixa-a na barra estreita; arraste de volta para além desse ponto para a expandir outra vez. ⌃⌘S alterna entre as duas.
A barra lateral
De cima para baixo, a barra lateral contém:
- O campo Procurar sessões.
- O botão Nova sessão (⌘N, dica «Iniciar um agente (⌘N)»), que abre o ecrã de nova sessão.
- A secção Sessões: a linha da Central, as suas salas e as suas sessões agrupadas por estado.
- A dobra Arquivadas, quando houver algo arquivado.
- Tarefas de código — o quadro de tarefas de código, com um + para adicionar uma.
- Automações — as suas execuções agendadas, com um + para adicionar uma.
- Máquinas virtuais (mostrada como VMs quando a barra lateral está estreita) — as máquinas, recolhidas por omissão. O cabeçalho mostra a verde o número de máquinas em execução e um + que cria uma nova. Expandida, lista a Grelha de terminais, cada máquina com os seus separadores de terminal, e quaisquer clusters Kubernetes, registos e o conector de mensagens. Ver Máquinas.
Procurar
Escreva em Procurar sessões para filtrar a lista. Uma sessão corresponde quando o seu texto aparece no título, na mensagem de abertura, na pasta ou no @apelido (pode escrever o apelido com ou sem o @). A partir de três caracteres, a procura também olha dentro das conversas: uma sessão cuja conversa contenha as palavras é listada igualmente, com as palavras em volta da correspondência em itálico em vez da linha de estado. Clicar numa linha dessas abre o chat e desloca-o até à primeira mensagem que contém as palavras.
Enquanto uma procura está ativa, todos os grupos recolhidos e a dobra Arquivadas abrem para que nenhuma correspondência fique escondida, e a linha da Central é ocultada. Limpe o campo (ou clique no seu ×) para recuperar a lista normal.
Nota: a procura em conversas lê a cópia de cada conversa guardada neste Mac, atualizada cerca de cada 30 segundos, pelo que uma mensagem dita há momentos pode levar até meio minuto a tornar-se pesquisável. O mesmo índice alimenta Nas conversas da paleta ⌘K.
A secção Sessões
Clique no cabeçalho Sessões para recolher ou expandir toda a lista (dica «As suas conversas com agentes — clique para recolher a lista»). O cabeçalho traz um sinal vermelho com o número de sessões que precisam de si, e o total.
Por baixo, por ordem:
- A linha da Central — um ícone de varinha, Central, e uma contagem numa linha como «1 precisa de si · 2 a trabalhar · 2 prontas». A Central é uma sessão por direito próprio que acompanha todas as outras; pergunta-lhe o que se está a passar, manda-a responder a uma sessão bloqueada, ou começa trabalho novo. A linha aparece assim que duas ou mais sessões estão em curso (a trabalhar, prontas, ou à espera de si), e também enquanto a própria Central está a trabalhar ou tem uma pergunta para si. Clicar nela abre o chat da Central, iniciando-a na primeira vez. Ver Central e mensagens.
- As salas — cada sala é uma linha com o seu mosaico colorido, o seu nome e uma contagem das suas sessões; as sessões ficam aninhadas por baixo, e uma seta recolhe-as. Clicar na linha da sala abre a sala: as suas sessões lado a lado, com uma Central própria. Arraste uma sessão para a linha de uma sala para a mover para lá. Ver Salas.
- Os grupos de estado, para as sessões fora de uma sala:
| Grupo | Ponto | O que contém |
|---|---|---|
| Precisa de si | Vermelho | O agente está à espera de uma resposta, ou precisa que inicie sessão |
| A trabalhar | Laranja | O agente está ocupado, ou está a arrancar |
| Prontas | Verde | O agente terminou a sua vez e espera a sua próxima mensagem |
| Em pausa | — | A máquina da sessão está a dormir ou desligada; a sua próxima mensagem acorda-a |
| Concluídas | — | O agente saiu (encerrou-o, ou ele terminou); a sua próxima mensagem volta a arrancá-lo na mesma conversa |
Os grupos só aparecem quando têm sessões, sempre nesta ordem, para que o que precisa de si fique no topo. Concluídas está recolhido por omissão — clique no cabeçalho para o abrir.
Os delegados aninham-se sob quem os delegou. Quando um agente entrega trabalho a outro, a sessão do delegado é listada indentada sob a sessão que a iniciou (vários níveis abaixo, se os delegados delegarem por sua vez). Ver Agentes a trabalhar em conjunto.
As sessões cuja máquina ou pasta desapareceu continuam legíveis mas ficam esbatidas, e a linha de estado diz porquê: Máquina removida ou Pasta removida (um ramo que foi integrado e limpo diz Integrado em …). Acumulam-se no grupo Concluídas. Abrir uma mostra a conversa com a nota «Máquina removida. A conversa continua legível aqui; elimine a sessão quando já não precisar dela.» — não há nada a que enviar uma mensagem.
Quando ainda não há sessões, a secção diz «Ainda não há sessões — Comece uma: escolha um agente, diga o que pretende, e siga.»
Dica: os agentes que não iniciou a partir do ecrã de nova sessão também aparecem aqui. Um agente que lance à mão no terminal de uma máquina, uma execução de tarefa de código ou uma execução de automação tornam-se, cada um, uma sessão na lista, com o seu próprio chat.
A dobra Arquivadas
Arquivadas («As conversas que guardou — ainda legíveis, de volta com uma mensagem») contém as sessões que arquivou, as mais recentes primeiro, e as salas arquivadas com as suas sessões. Está recolhida por omissão; clique no cabeçalho para a abrir. Quando abre uma sessão arquivada a partir de outro lugar (a paleta ⌘K, uma procura), a dobra abre-se sozinha para mostrar a linha, e fecha-se quando segue em frente.
As sessões arquivadas cuja máquina ou pasta desapareceu não são listadas uma a uma: uma única linha diz «1 sessão cuja máquina ou pasta desapareceu» (ou «N sessões cuja máquina ou pasta desapareceu») com um botão Eliminar que as elimina todas.
As linhas de sessão
Cada linha mostra, da esquerda para a direita:
- O avatar do agente, emoldurado por um anel na cor da máquina da sessão (passe o cursor no avatar para ver o nome da máquina), com o ponto de estado no canto — vermelho, laranja ou verde como na tabela acima.
- O título. O agente dá nome à sessão ele próprio assim que entende a tarefa (até aí, o título vem da sua primeira mensagem). Para a renomear, clique duas vezes no título no cabeçalho da sessão ou use Renomear… no menu ⋯ do cabeçalho. Quando duas sessões têm o mesmo título, a linha acrescenta o que as distingue: o @apelido, a pasta, a máquina ou a hora de início.
- O tempo desde a última coisa que a sessão fez, em forma curta: «agora», «3 m», «2 h», «5 d». Enquanto mantém ⌘ premido, as nove primeiras linhas mostram aqui o atalho ⌘1–⌘9.
- A linha de estado: o @apelido, se a sessão tiver um, e depois o estado — Precisa de si, Início de sessão necessário, A trabalhar…, A iniciar…, A acordar…, Quase lá…, Pronta, Em pausa, Concluída, Arquivada, Não conseguiu iniciar, Máquina removida ou Pasta removida. Uma sessão de ramo acrescenta um glifo de ramo e o ponto em que está o trabalho, por exemplo «Pronta · 3 commits · 2 ficheiros não confirmados», ou uma integração em curso, a cores.
Passe o cursor numa linha para ver a última resposta do agente numa dica. Clique nela para abrir a sessão. Arraste uma linha para a linha de outra sessão para pôr as duas numa sala (uma sala nova, ou a da própria sessão de destino); arraste-a para a linha de uma sala para a mover para essa sala.
O menu da linha
Clique com o botão direito numa linha para o seu menu. Os itens só aparecem quando se aplicam:
| Item | O que faz |
|---|---|
| Arquivar / Encerrar e arquivar | Guarda a sessão na dobra Arquivadas. Enquanto o agente corre, o item diz Encerrar e arquivar, porque arquivar pára-o. |
| Desarquivar | (Sessões arquivadas) Traz a sessão de volta à lista. |
| Encerrar sessão | (Agente a correr) Pára o agente; a sessão passa para Concluídas. |
| Apelido… | Dá um @apelido à sessão, o nome que os outros agentes e o seu compositor usam para a alcançar. Letras, dígitos, pontos, traços e sublinhados. Ver Agentes a trabalhar em conjunto. |
| Novo ramo… | Inicia uma nova sessão no seu próprio ramo git da pasta desta sessão. Ver Ramos e revisão. |
| Secção Ramo | (Sessões de ramo) Revisar alterações, as ações de integração, Abrir um pull request, Abrir terminal aqui, Descartar ramo… — ver Ramos e revisão. |
| Mover para uma sala › | Move a sessão para uma sala existente, ou Nova sala… para criar uma à volta dela. |
| Remover da sala | (Sessões numa sala) Tira-a de lá, de volta para a lista. |
| Definições de «máquina»… | Abre o editor de definições da máquina da sessão. |
| Abrir no terminal Linux | (Agente a correr) Mostra o separador de terminal em que o agente corre. |
| Eliminar sessão | Elimina a sessão. Ver Arquivar, encerrar e eliminar. |
A barra estreita recolhida
Recolhida, a barra lateral torna-se uma barra estreita de 44 pontos com ícones:
- + — uma nova sessão (⌘N).
- A varinha da Central, quando a linha da Central apareceria na barra lateral completa. A dica traz a contagem.
- Um avatar por sessão, na ordem em que a barra lateral as lista, cada um com o seu ponto de estado. As sessões em pausa e concluídas ficam esbatidas. Passe o cursor num avatar para ver o título e o estado; clique nele para abrir a sessão. As sessões arquivadas não estão na barra estreita.
- Um separador e depois o botão Grelha e, para cada máquina em execução, um ícone por separador de terminal.
Prima ⌃⌘S, ou arraste o separador para fora, para recuperar a barra lateral completa.
O cabeçalho da sessão
Acima do chat, o cabeçalho diz o que é a sessão e onde corre.
- O título. Clique duas vezes para renomear a sessão (Return grava, Esc cancela). Clique com o botão direito para o menu da máquina (abaixo).
- A linha de detalhes, separada por pontos:
- o @apelido, se houver;
- o estado, com o seu ponto e, onde ajuda, um tempo — «Pronta · 6 min», «Concluída · há 5 min», «A trabalhar · a arrancar»;
- o agente — o seu ícone e nome;
- a máquina — a sua cor e nome. Clique nela para abrir os detalhes da máquina (o seu painel); clique com o botão direito para Definições de «máquina»…, Abrir no terminal Linux (enquanto o agente corre), Detalhes da máquina e Ramos nesta máquina…;
- a pasta, como um caminho sob a home (
~/northwind-web); - para uma sessão de ramo, a etiqueta de ramo com o ponto em que está («3 commits», «ainda sem alterações»). Ver Ramos e revisão;
- para uma sessão iniciada a partir de um repositório, o repositório de onde foi extraída;
- a contagem de tokens, «N tokens», o total que a conversa consumiu. Passe o cursor para o detalhe: «Entrada · em cache · saída».
- À direita, o botão de integração de uma sessão de ramo (Ramos e revisão), depois Retomar quando a sessão está em pausa ou concluída («Acordar e continuar onde ficou» / «Retomar onde ficou»), e depois o menu ⋯.
O menu ⋯ tem Renomear…, Apelido…, Arquivar / Encerrar e arquivar (ou Desarquivar), Encerrar sessão e — quando a sessão trabalha numa pasta própria — Revisar alterações e Novo ramo…. Uma sessão de ramo acrescenta a sua secção Ramo. Depois os itens da máquina (Definições de «máquina»…, Abrir no terminal Linux, Detalhes da máquina, Ramos nesta máquina…) e, por último, Eliminar sessão.
Sessões em pausa e concluídas
Uma sessão cujo agente não está a correr mostra a sua conversa (lida da cópia guardada neste Mac, pelo que é legível mesmo com a máquina a dormir) e uma linha acima do compositor:
- «Em pausa. A sua próxima mensagem retoma a partir daqui.» — a máquina está a dormir ou desligada.
- «Concluída. A sua próxima mensagem retoma a partir daqui.» — o agente saiu.
- «Arquivada. A sua próxima mensagem traz a sessão de volta e continua a partir daqui.»
Escreva uma mensagem e envie-a, clique em Retomar, ou prima ⌘⏎. A aplicação acorda a máquina se for preciso, reabre o agente na mesma conversa (no seu antigo separador de terminal, se ainda existir, senão num novo na mesma pasta) e entrega a sua mensagem quando o agente estiver a postos. Retomar uma sessão arquivada traz-na de volta à lista.
A barra de ferramentas
Com uma sessão no palco, a barra de ferramentas no canto superior direito da janela contém:
- A cápsula Linux (⌥⌘U) — «A máquina Linux por trás desta sessão: o seu separador de terminal na lista de máquinas». Expande Máquinas virtuais e mostra o separador de terminal em que o agente corre, com a barra de ferramentas própria da máquina. A partir desse terminal, a cápsula diz Sessão («Voltar à sessão que este terminal aloja») e o mesmo atalho leva-o de volta ao chat. Se o separador da sessão já não existir, a cápsula abre o painel da máquina.
- O menu da máquina — uma cápsula com a cor e o nome da máquina («A máquina: as suas definições, o rastro, reiniciar…»). O menu contém Definições…, Detalhes da máquina, Copiar endereço IP (endereço), Inspecionar rastro (o Inspetor de rastros), Destacar para janela própria e Reiniciar. Quando a máquina não está a correr, o menu começa com «Não está em execução — arranca com a sua próxima mensagem» e oferece apenas Definições… e Detalhes da máquina.
- O globo — mostra ou oculta o navegador integrado (⌃⌘B).
- O botão do painel Ficheiros — mostra ou oculta o painel Ficheiros da pasta da sessão (⌃⌘E). Ver Máquinas.
O ecrã de nova sessão não mostra nenhum controlo de máquina. Os indicadores ao nível da máquina (o sinal do motor, o relâmpago Fusion) aparecem nos separadores de terminal de uma máquina, não por cima de uma sessão.
A paleta de comandos (⌘K)
Prima ⌘K (Espaços de trabalho › Ir para…) em qualquer ponto da janela para saltar para qualquer coisa ou executar uma ação.
Sem nada escrito, a paleta lista as ações, depois as sessões mais relevantes (até oito) e as salas (até quatro). Escreva para procurar tudo; cada palavra que escreve tem de corresponder. Os resultados vêm em secções:
| Secção | O que contém |
|---|---|
| Ações | Nova sessão, Nova sala…, Linha do tempo de segurança, Tarefas de código, Automações, Preferências, Nova máquina…. Com uma sessão no palco, também Novo ramo… e Revisar alterações (quando trabalha na sua própria pasta) e Integrar em ramo (para uma sessão de ramo). |
| Sessões | Todas as sessões, incluindo as arquivadas, com a sua máquina e estado. Os apelidos e as pastas também correspondem. |
| Salas | Todas as salas, com a sua contagem. |
| Máquinas | Para cada máquina: a máquina em si (abre Detalhes da máquina), Ramos em máquina e Definições de «máquina»…. |
| Nas conversas | A partir de três caracteres, as sessões cuja conversa contém o texto, com as palavras em volta da correspondência. Abrir uma desloca o chat até lá. |
Use ↑ e ↓ para se mover, Return para executar a entrada destacada e Esc (ou um clique fora) para fechar. A paleta funciona também nas janelas de espelho remoto (Acesso remoto e clientes).
Arquivar, encerrar e eliminar
Há três formas de dar uma sessão por terminada. Cada uma acontece de imediato, sem diálogo no caso comum, e mostra um aviso no fundo da janela — por exemplo ««Corrigir o início de sessão» arquivada» — com um botão Desfazer. Prima ⌘Z enquanto o aviso está visível para desfazer. O aviso desaparece depois de cerca de seis segundos, ou quando o seguinte o substitui.
| Ação | O que acontece | Desfazer |
|---|---|---|
| Encerrar sessão | O agente pára e o seu separador de terminal fecha. A sessão passa para Concluídas; a conversa fica na pasta e pode ser retomada. | Arranca o agente outra vez. |
| Arquivar (Encerrar e arquivar enquanto o agente corre) | O agente pára e a sessão passa para a dobra Arquivadas, ainda legível. Uma mensagem nova, Retomar ou Desarquivar trazem-na de volta. | Desarquiva-a. |
| Eliminar sessão | A sessão sai da lista de vez. A pasta e os seus ficheiros ficam na máquina. | Restaura a sessão e a conversa guardada (só quando nenhum agente estava a correr — ver abaixo). |
Alguns casos perguntam primeiro:
- ⌘W encerra a sessão no palco depois de perguntar «Encerrar «título»?» — «O agente pára. A conversa fica na sua pasta e pode ser retomada mais tarde.» — com Encerrar sessão e Cancelar. Depois de confirmar, mostra o mesmo aviso com Desfazer que Encerrar sessão. ⌘W nunca fecha o separador de terminal por baixo.
- Eliminar sessão numa sessão cujo agente está a correr pergunta «Eliminar «título»?» — «O agente pára e a sessão sai da lista. A pasta fica na máquina.» — com Eliminar e Cancelar. Uma eliminação confirmada assim não tem Desfazer.
- Arquivar ou eliminar uma sessão de ramo cujo trabalho não está integrado pergunta «Arquivar «título» — e o seu ramo?» (ou «Eliminar …») com Manter ramo e Descartar ramo. Ver Ramos e revisão.
- Tirar uma sessão de uma sala mostra «Removida de «sala»», com Desfazer a pô-la de volta.
Arquivamento automático
A lista guarda algumas sessões por si própria, para se manter sobre o que está vivo:
- Uma sessão concluída há mais de três dias é arquivada automaticamente. As sessões numa sala e as Centrais nunca são arquivadas assim.
- A sessão de um delegado é arquivada quando a delegação que servia é fechada, cancelada ou falha; a de uma tarefa de código quando a tarefa é integrada, marcada como concluída ou descartada (fica ativa durante a revisão, para que as devoluções e a integração cheguem à mesma conversa — ou após cerca de duas horas inativa em Revisão); a de uma execução de automação quando a execução acaba com o separador configurado para fechar ao terminar.
As sessões arquivadas continuam legíveis e voltam com uma mensagem.
Teclado
| Atalho | Ação |
|---|---|
| ⌘N | Nova sessão |
| ⌘K | Paleta de comandos (Ir para…) |
| ⌘1 – ⌘9 | Abrir as nove primeiras sessões na ordem da barra lateral (mantenha ⌘ para ver os números) |
| ⌥⌘↑ / ⌥⌘↓ | Sessão anterior / seguinte na ordem da barra lateral (dá a volta) |
| ⌘⏎ | Retomar a sessão em pausa ou concluída no palco |
| ⌘W | Encerrar a sessão no palco (pergunta primeiro) |
| ⌥⌘U | Saltar entre uma sessão e o seu terminal Linux |
| ⌘Z | Desfazer a ação do aviso no ecrã |
| ⌃⌘S | Recolher ou expandir a barra lateral |
| ⌃⌘R | Sala seguinte |
| ⌃⌘B | Mostrar ou ocultar o painel do navegador |
| ⌃⌘E | Mostrar ou ocultar o painel Ficheiros |
A ordem da barra lateral usada por ⌘1–9 e ⌥⌘↑/↓ é: primeiro as sessões de cada sala, depois as sessões soltas desde Precisa de si até Em pausa. As sessões concluídas e arquivadas são ignoradas.
No separador de terminal de uma máquina (em vez de uma sessão), os atalhos clássicos de terminal voltam a aplicar-se — ⌘T para um novo separador, ⌘W para o fechar, ⌘1–9 para os seus separadores. A lista completa está no Apêndice.