O que mudou
Release notes curtas, na mesma regra do site: só entra o que roda.
v0.8.1
2026-09- No Linux, **quando o `claude` que o TYBA subiu com gate termina com erro ou você o interrompe, não nasce mais um segundo `claude` sem gate por baixo.** Na 0.8.0, qualquer saída com erro do agente gateado relançava o `claude` cru no mesmo painel, sem inbox nem jaula, sem você ter digitado nada. Agora o painel volta ao prompt, com o código de saída do agente. `command claude` continua sendo o jeito de rodar sem o TYBA.
v0.8.0
2026-09- No Linux, **digitar `claude` num shell do TYBA já sobe o agente com gate** — sem o botão “Reabrir com gate” e sem derrubar nada. O TYBA intercepta o comando antes de o agente nascer e o sobe no mesmo painel, com inbox de aprovações, env filtrado e captura de subagentes; se a pasta está num repositório git dentro da sua home, com jaula também. Em outras pastas o gate continua valendo, e uma faixa avisa que ali não há jaula. Vale para o `claude` sem argumentos, em bash e zsh com shell integration ligada; `command claude` roda sem o TYBA. No Windows e para o `codex`, segue o aviso com o botão de reabrir.
- **Cada pedido de aprovação fica num lugar só para você agir.** O mesmo pedido podia aparecer ao mesmo tempo no toast, no inbox e na fila de agentes, com botões diferentes em cada um. Agora os botões são os mesmos em todo lugar — a fila ganhou “Sempre permitir” e o recusar dizendo ao agente o que fazer —, e abrir o inbox ou a fila tira da tela o toast do pedido que eles já mostram. Os atalhos `1` `2` `3` do inbox saíram: a decisão é pelos botões. Junto, a fila de agentes deixou de aprovar comando vermelho com um clique só: quando um pedido vermelho era resolvido em outro lugar e o seguinte da mesma sessão ocupava a linha, a confirmação armada para o primeiro valia para o segundo.
- No Linux, **o `/agents` do Claude Code passa a funcionar dentro do TYBA**: criar ou editar um subagente batia numa pasta somente-leitura e falhava. Como uma definição de agente muda o que o Claude faz, o TYBA avisa quando uma nova ou alterada aparece em `~/.claude/agents` — a checagem roda quando uma sessão de agente sobe.
v0.7.0
2026-09- No Linux, uma **sessão de agente Claude deixa de morrer em silêncio por autenticação**. Antes, quando o Claude parava por login expirado, token revogado, crédito zerado ou chave inválida, a sessão só ficava parada, sem dizer por quê. Agora o TYBA avisa: antes de subir, se você está deslogado; enquanto roda, se o agente esbarra num erro de auth e estaciona; e uma sessão que **saiu** por autenticação mostra o motivo junto do convite de retomar (“rode `/login` e retome”), em vez de só “retomar”. Vale para o Claude Code.
- A **aba que o TYBA abre para você logar no Claude fecha sozinha** quando o agente termina o trabalho, em vez de deixar uma aba órfã para você fechar na mão. Retomar a conversa continua funcionando — a aba some, a sessão fica.
v0.6.3
2026-09- No Linux, o **login do Claude Code volta a persistir ao retomar uma conversa de agente**. Uma versão anterior confinava a pasta de config do Claude da forma errada, e a sessão retomada caía na tela de login mesmo com você já logado — o problema chegava a afetar o `claude` rodado fora do TYBA. Agora a credencial persiste e a sessão nasce logada.
- Três acertos de uso. O **aviso de item novo em `~/.claude`** ganhou um botão de fechar e para de repetir o que você já dispensou — e não interrompe mais por um arquivo de estado inofensivo, só pelo que de fato pode rodar código. **`Ctrl+Alt+seta`** volta a navegar entre painéis mesmo com um agente em foco, em vez de a tecla sumir dentro dele. E o botão de **fechar uma sessão de agente em execução** perdeu um realce verde que vazava fora do lugar.
v0.6.1
2026-09- No Linux, a **última linha da saída no shell voltou a aparecer**. Ela sumia quando a altura da célula do terminal mudava sem o app perceber — escala fracionária de tela, troca de fonte — e o recorte comia o rodapé. Agora a geometria se reajusta antes do desenho seguinte, e a faixa ao vivo mede a última linha que o programa **escreveu**, não onde o cursor parou, então progress bar e spinner deixam de ser cortados. Junto, o app passou a **embarcar a própria fonte de terminal** (JetBrains Mono): o texto tem a mesma métrica em qualquer máquina, em vez de medir com uma fonte e desenhar com outra numa máquina que não a tinha instalada — no Linux, isso pode mudar a fonte que você via antes.
- No Linux, o **login do Claude Code dentro de uma sessão de agente volta a persistir**. A jaula montava a pasta de config do Claude como somente-leitura, e a gravação da credencial batia num erro que o Claude engolia sem avisar — você logava e a sessão seguinte pedia `/login` de novo. Agora a jaula deixa a credencial ser escrita, mantendo bloqueado o que dá execução (hooks, plugins, settings), e o link de login abre no seu navegador, fora da jaula, com um clique. O login depende de como o Claude Code guarda a credencial no Linux; se uma versão futura dele mudar isso, pode ser preciso um novo ajuste.
v0.6.0
2026-08- A linha do TYBA passou a **completar comandos**, e não só repetir o que você já rodou. O primeiro token vem de dois lugares ao mesmo tempo: os binários do seu `$PATH`, lidos do disco pelo app, e os alias, funções e builtins que só o shell daquela sessão conhece — então `nvm`, `asdf` e `direnv`, que reescrevem o `$PATH` depois que a sessão sobe, aparecem como aparecem no seu terminal, e não como o app imaginaria. Depois do comando vêm subcomando e flag; o argumento vem de quem sabe dele, como nome de branch ou de container. A ordem é a do que você usa de verdade, não alfabética. `⌘L` (`Ctrl+Alt+L` fora do macOS) limpa a tela. Como toda a linha do TYBA, vale em **zsh e bash** com shell integration ligada — em fish, PowerShell e cmd a sessão segue com o prompt do seu shell.
- Na primeira vez, o TYBA **importa o histórico que você já tem** — o arquivo do zsh, do bash e do fish é lido, mesmo que a linha do TYBA só rode nos dois primeiros —, então a sugestão nasce sabendo o que você roda, em vez de esperar você digitar tudo de novo. A busca de histórico ganhou escopo e filtros, para procurar dentro de uma pasta ou de uma sessão em vez de no monte inteiro.
- **A linha do TYBA vem ligada.** Antes ela nascia desligada: instalação nova entregava um terminal cru, e para ver o que o produto promete — blocos, histórico, estado de comando — era preciso descobrir uma caixa em Configurações. Quem já escolheu mantém a escolha, porque `off` continua sendo a única resposta que desliga. Ligada quer dizer ligada onde ela roda: zsh e bash. No Windows a sessão continua sendo um terminal comum, sem blocos nem histórico do TYBA. E o que você digitou e ainda não rodou sobrevive à troca de sessão, em vez de sumir quando você volta.
- **Quadro global de agentes**: todos os agentes de todos os workspaces num lugar só, aberto pela paleta de comandos e ordenado por quem precisa de você primeiro — aprovação pendente vem antes de pergunta, por ser a única das duas em que o agente espera uma decisão de risco. Dentro dele, um botão leva ao próximo que pede atenção e cicla, então o segundo da fila também é alcançável. E `⌘⇧A` abre a fila de agentes na barra lateral, com os da janela atual.
- O estado do agente voltou a ser legível quando ele **ocupa a tela inteira** — que é justamente como o Claude Code roda. Ali o TYBA só olhava o corpo da tela, que naquele modo vem vazio de propósito, e concluía que não havia nada acontecendo: o agente aparecia parado o tempo todo, e só saía disso se alguma saída mexesse na tela por acaso. Agora o título continua sendo lido, e o estado acompanha.
- **Reabrir o app oferece retomar a conversa do agente**, em vez de devolver um shell vazio no lugar onde a sessão estava. Nunca automático: retomar sobe um processo com contexto que pode voltar a agir, e ação de agente não começa sem você. Se a conversa não existe mais em disco, não há convite — convite que leva a erro é pior que convite nenhum.
- **Painel de estatísticas** do que os agentes custam de atenção: quantas aprovações foram pedidas, quantas passaram sozinhas, quantas você negou, e o tempo mediano até a sua decisão. Com filtro por período e por repositório, mais a lista dos comandos que o agente mais pede e a taxa com que cada um é aprovado.
- A árvore de arquivos nasce à direita, e quando a raiz dela se afasta da pasta onde você está o TYBA oferece re-ancorar em vez de deixar você navegando longe do trabalho. E abrir o app deixou de travar: a demora não era lentidão, era o macOS parando a interface para pedir permissão de pasta protegida. Junto vieram a rolagem que não convergia, o gesto da roda que andava o dobro, a saída de comando que se perdia sob carga, e o primeiro Enter de cada sessão, que era engolido.
v0.5.0
2026-08- Nova **linha de comando do TYBA**, que você liga em Configurações → Code. O prompt do shell sai da tela e a linha onde você digita vira um editor do app: o que você já rodou aparece em cinza à frente do cursor, `Tab` ou `→` aceita, e `↑` `↓` percorrem histórico e snippets sem sair da linha. Vale para sessões novas, em zsh e bash com shell integration ligada. Se alguma coisa travar, `Alt+~` dentro do terminal devolve o prompt do shell na hora, sem fechar a sessão.
- Com ela ligada, cada comando que você roda vira um **bloco**: o comando, a saída, o código de saída, quanto demorou e em que pasta rodou, num cartão que você copia inteiro, reexecuta ou marca junto com outros para copiar todos de uma vez. A saída ao vivo e o cartão ocupam o mesmo lugar, então o texto não muda de tamanho nem salta quando o comando termina. É a linha do TYBA que dá ao app a fronteira exata de cada comando — por isso os dois andam juntos.
- A paleta busca no seu histórico de comandos e nos seus snippets, com a pasta onde cada um rodou — `⌘R` e `⌘⇧R` no macOS, `Ctrl+Shift+R` e `Ctrl+Alt+Shift+R` no resto. Independe da linha do TYBA: funciona com o prompt do seu shell do jeito que sempre foi.
- No macOS, a barra de menu é do TYBA: Arquivo, Editar, Visualizar, Sessão, Janela e Ajuda com o que o app faz de verdade. Antes era o menu padrão do framework, com um Ajuda que levava para o site dele. O menu de contexto também parou de oferecer Recarregar e Inspecionar Elemento fora dos campos de texto.
- O que você digita enquanto um comando roda não suja mais a saída guardada: apertar seta escrevia `^[[A` nela — e ela some da tela quando você limpa, mas não do disco. No bash, comando iniciado por espaço voltou a ser respeitado; com `HISTCONTROL=ignorespace` o TYBA registrava o comando anterior mais uma vez, como se você o tivesse rodado de novo.
v0.4.1
2026-07- Trocar de painel não mexe mais no terminal. O painel sem foco era redesenhado com o texto mais pesado e a fonte mais larga, cabiam menos colunas e a TUI do agente refluía a cada clique — no Linux a diferença chegava a 10% da largura. Agora o desenho é o mesmo, com foco ou sem.
- No Linux e no Windows, fechar a janela encerra o TYBA de verdade. Antes ela só sumia: o processo seguia vivo e invisível, sem forma de encerrá-lo pela interface, e cada abertura empilhava mais um — levando junto os agentes daquela sessão, que continuavam rodando sem inbox de aprovações. Fechar agora derruba a árvore de processos dos agentes junto. No macOS nada muda: o app continua no Dock, como manda a plataforma.
v0.4.0
2026-07- Digitar `claude` num terminal comum roda o agente sem nenhuma proteção do TYBA — sem inbox de aprovações, sem sandbox, sem captura de subagentes — porque quem subiu o processo foi o shell, não o app. Agora o TYBA percebe e avisa naquela sessão, com o botão Reabrir gerenciado: ele encerra só o agente (seu shell sobrevive) e sobe um novo, com gate, na mesma pasta. Se você preferir seguir sem gate, a sessão fica marcada como tal — o TYBA nunca finge que ali há proteção.
- O painel Agentes passou a funcionar também nesse caminho cru: os subagentes de um `claude` digitado no shell aparecem na árvore, lidos do transcript em disco. E a captura foi consertada no modo real do Claude Code, que dispara subagentes em background — antes o painel travava, com subagente terminado eternamente "rodando" e mensagens suas virando entradas fantasma na árvore.
- No macOS, o agente nasce logado. A jaula bloqueava a leitura do keychain de login, então cada sessão nova começava pedindo autenticação de novo.
- Fechar aba, painel ou sessão com um agente em execução agora pede confirmação, com a opção de ver o que está rodando antes de decidir. Fechar no meio de um commit ou de uma escrita perdia trabalho sem nenhum aviso.
- O inbox de aprovações para menos no seu caminho: comandos de leitura e operações triviais passam direto, em vez de esperar um clique que nunca acrescentava nada. E o aviso de aprovação deixou de sumir sozinho — quando ele sumia, o agente ficava travado esperando uma resposta que você não tinha mais como dar.
- URLs no output do terminal viram links clicáveis, incluindo os links que o próprio programa marca (OSC 8). Só `http://` e `https://` abrem, e sempre no seu navegador.
- Configurações ganhou uma seção Sobre: a versão que você está rodando, o commit exato de onde o binário saiu, plataforma, e um botão que copia tudo isso pronto para colar num report — sem levar junto caminho de pasta, nome de conta ou qualquer coisa sua.
v0.3.0
2026-07- A sessão de agente deixou de ser caixa-preta: quando o Claude Code dispara subagentes, o painel Agentes mostra a árvore — o orquestrador na raiz e cada subagente com tipo, tarefa, status ao vivo e o resumo do que fez ao terminar. Hoje isso é um spinner no TUI; nenhum terminal mostra o que acontece dentro.
- No primeiro subagente, a sessão abre um split com o transcript dele ao vivo — o que ele lê, executa e responde — direto do arquivo que o Claude Code grava, sem tocar no TUI. Fechou o split ou o painel, o TYBA respeita e não reabre sozinho naquela sessão.
- Disparar subagente não pede mais aprovação — e isso deixou a sessão mais segura, não menos: ficou provado que cada comando executado por dentro de um subagente passa pelo mesmo inbox de aprovações da sessão. O gate mora onde o risco mora: nos comandos, não no spawn.
- Shell de host SSH agora abre mesmo quando o login shell do servidor é fish, csh ou tcsh — antes o pane fechava na hora, com um aviso enganoso sobre tmux. Os comandos internos passaram a rodar via sh -c, então o shell do servidor não parseia mais o bootstrap.
v0.2.0
2026-07- Painel de Arquivos: navegue, veja e edite o projeto dentro do TYBA, sem vazar pro editor externo no meio do trabalho. Tree com decorações de git, viewer com syntax highlight e markdown renderizado, edição com criar/renomear/deletar, fuzzy finder por nome (⌘P) e salto direto pro diff. O loop de revisar e ajustar o trabalho do agente agora fecha dentro do app.
- Language server no painel: completion, diagnostics, hover e goto-def para ~15 linguagens — e o server roda enjaulado. Um language server executa código do projeto que indexa; num worktree de agente isso é código que o agente escreveu, então ele roda contido, sem rede e sem escrever fora do workspace. Nenhum editor do mercado enjaula o server que roda.
- Você não instala o language server na mão: se ele não está no seu PATH, o TYBA baixa a versão pinada com o checksum conferido por release e sobe enjaulado — e se você já tem o seu, o seu ganha. Vale no Linux e no macOS; no Windows o LSP fica de fora nesta versão, o resto do painel funciona.
- Arquivos remotos por SSH: o mesmo painel numa sessão remota — navegar, editar, ver o status de git do host — tudo pela conexão que já está aberta, sem instalar nada no servidor.
v0.1.5
2026-07- Launch configs: desenhe o arranjo da tela — quais panes, em que pasta, com qual agente — salve, e monte tudo de novo por comando. O prompt de cada agente chega escrito no input esperando o seu enter, então abrir uma config nunca dispara trabalho sozinha. Pane remoto guarda só a referência ao host cadastrado, nunca credencial.
- Erro agora aparece como aviso dentro do app, com o detalhe técnico legível e a janela livre, no lugar do alerta do sistema.
- Os diálogos voltaram à largura em que foram desenhados: todos vinham sendo exibidos no mesmo tamanho, alguns bem mais largos que o previsto.
v0.1.4
2026-07- O túnel que vale sempre agora se cadastra junto da conexão: adiciona no próprio host e ele sobe em toda conexão — e fora do TYBA também (ssh, scp, DBeaver). Túnel que abre um caminho de volta pra sua máquina (-R, -D) pede uma confirmação que diz, em português, quem passa a te alcançar.
v0.1.3
2026-07- SSH chegou: cadastra o host uma vez e conecta em um clique, com os containers Docker do servidor no mesmo painel. O cadastro é escrito no seu ~/.ssh/config, então ssh, scp, DBeaver e VSCode Remote passam a conhecer o mesmo host — o TYBA não guarda seus servidores para si.
- A sessão remota parou de morrer junto com a conexão. Wifi caindo, dormir e fechar o app deixaram de custar trabalho: a sessão mora no servidor e o TYBA reata sozinho, com o comando que estava rodando ainda rodando. Só fechar a tab encerra.
- Broadcast: digita uma vez e roda no grupo de hosts. Se falhar em algum alvo, você vê — escrita em N servidores não pode engolir erro.
- Túneis sem decorar flag: abre e fecha port-forward num painel, e o estado fica à vista. O túnel do cadastro vale fora do TYBA; o da sessão volta sozinho quando a conexão reata — e se a porta local tiver sido tomada nesse meio-tempo, ele avisa em vez de sumir quieto e deixar você debugando a aplicação errada.
- O SSH ainda não foi testado no Windows — só no Linux e no macOS. Ele está lá e foi feito para funcionar; se não funcionar, é bug: abra uma issue.
v0.1.2
2026-07- Windows chegou: terminal de verdade via ConPTY, com escolha de shell (cmd, PowerShell ou WSL) ao abrir a sessão. Instalador .exe e pacote .msi.
- A jaula de agente também no Windows — token restrito, env por allowlist, fail-closed. Mesma regra das outras plataformas: sem jaula, a sessão é recusada, nunca roda solta.
- Os binários de Windows ainda saem sem assinatura: o SmartScreen mostra "o Windows protegeu seu computador" — clique em Mais informações → Executar assim mesmo. A assinatura entra quando o certificado estiver no lugar, igual ao macOS.
v0.1.1
2026-07- Primeira versão instalável — Linux (.deb, .rpm e AppImage). O build de macOS sai assim que o certificado da Apple estiver no lugar; assinar é condição, não detalhe.
- Sessões de agente (Claude Code e Codex) em git worktrees isolados: cada uma no seu branch, sem uma pisar na outra.
- O agente roda dentro de uma jaula do sistema — bubblewrap e seccomp no Linux, Seatbelt no macOS. Sem jaula, a sessão é recusada em vez de rodar solta.
- Toda ação de risco passa pela inbox de aprovação. E push para main ou master é recusado pelo core — não é preferência, é regra em Rust, com teste.
- Painel de git: revisar o diff da sessão, comentar linha a linha e mandar os comentários de volta pro agente; commit, push e PR sem sair do terminal. Conflito de merge se resolve arquivo por arquivo.
- Terminal de verdade: PTY em Rust, xterm.js com WebGL, splits, tabs e sessões que voltam no boot. 17 temas, com par light.
- Cada binário sai da CI com checksum e procedência atestada. Nada é compilado numa máquina pessoal.