Shipyard v1.9.0
Cards do Trello em ordem útil, copiar/colar funcionando no Claude CLI, MCP com cobertura total do sistema e um app bem mais leve.
Sincronização com o Trello
O Trello só ordena uma lista por data de criação ou alfabeticamente — e o agente MCP cria as tarefas de uma milestone inteira no mesmo segundo, então a ordem de criação não dizia nada. Agora o Shipyard controla a posição de cada card e a reescreve a cada push:
- Done — concluídas mais recentes no topo
- In Progress — iniciadas mais recentes no topo
- To Do / Backlog — a ordem do kanban (prioridade, depois ordem manual)
Cards concluídos passam a exibir a data de conclusão como selo no próprio card. O board abre já organizado, sem precisar mudar nenhuma configuração de ordenação — o que o torna apresentável para um cliente.
O push também ficou muito mais barato: antes era um PUT sequencial por tarefa; agora ele compara com um snapshot do board e envia apenas os campos que mudaram, em paralelo e com backoff em caso de rate limit. Um push sem mudanças não faz nenhuma escrita. Uma edição feita direto no Trello não é sobrescrita.
MCP
Correção importante: nenhuma mutação via MCP disparava o auto-sync. Tarefas criadas ou concluídas pelo agente só chegavam ao Trello/ClickUp quando alguém mexia na interface.
De 16 para 24 ferramentas:
- Milestones completos:
create_milestone,update_milestone,delete_milestone, elist_milestonescom contagem por status - Operações em lote:
create_tasks,bulk_update_tasks,bulk_delete_tasks,reorder_tasks update_taskmove tarefas entre milestonesget_git_diff,update_project- Controle de sync:
list_sync_integrations,sync_push,sync_pull
Ferramentas somente-leitura e destrutivas agora são anotadas conforme a spec do MCP.
Terminal integrado
Colar em uma sessão do Claude CLI estava quebrado por dois motivos somados. O texto ia cru pelo WebSocket, sem os marcadores de bracketed paste, então o CLI lia cada quebra de linha como Enter e submetia linha por linha. E o servidor fatiava o texto em blocos de 256 caracteres, cortando emoji e sequências de escape ao meio — um marcador de fim de colagem partido deixava o CLI travado.
- Colagem via
term.paste(): as quebras de linha viram\re o texto é enviado como uma única colagem - O fatiamento nunca quebra pares substitutos nem sequências de escape
- Toda escrita no PTY passa por uma fila por sessão, então uma tecla digitada não cai mais no meio de uma colagem
- Botão direito copia a seleção ou cola; botão do meio cola
Sobre a fluidez: o renderer WebGL substituiu o DOM (com queda automática se o WebGL não estiver disponível), e a saída do PTY é agrupada em quadros de ~8 ms em vez de uma mensagem por pedaço — o Claude CLI repinta a tela constantemente e gerava centenas de mensagens por redesenho.
Performance
Boot: 735 KB → 182 KB de JavaScript comprimido (−75%). CodeMirror, xterm e react-markdown saíram do caminho crítico.
Servidor:
syncStoreserve leituras da memória — uma única mutação de tarefa relia e reparseava o JSON inteiro de 8 a 15 vezes- O caminho de leitura do
taskStorenão escreve mais em disco, egetAllTaskslê os projetos em paralelo - O poll de git de 15 s caiu de 4 para 2 subprocessos por projeto e reusa a fila por repositório
- Escritas de log são bufferizadas em vez de uma syscall por linha
Cliente:
['tasks','all']— a consulta mais cara — deixou de ser refeita a cada 5 s em todas as páginas por causa da busca global sempre montada- Cartões de tarefa memoizados
- O auto-pull só invalida as consultas quando algo realmente mudou
Nota
Sub-repositórios agora são detectados no refresh completo do projeto, e não a cada 15 s. Se você rodar git init numa subpasta, atualize o projeto para ele aparecer. Um .git na raiz continua sendo detectado automaticamente.
Esta release não traz instaladores. Use pnpm dist:win, dist:mac ou dist:linux para gerá-los.
Full Changelog: v1.8.0...v1.9.0