Pular para o conteúdo

v0.9.6

Release date: 2026-11-04

A interface de linha de comando passa a ser confiável na integração contínua, e o app desktop recebe as mudanças de motor que tornam isso possível. Várias delas mudam o comportamento de propósito; estão marcadas como Mudança de comportamento.

  • Valores definidos por um script agora chegam à próxima requisição de uma execução. Um token que uma requisição de login guarda com fp.environment.set é usado pela chamada autenticada seguinte; fp.environment.remove é propagado da mesma forma. Antes ele era descartado, e a chamada falhava com um 401.
  • Segredos não vazam mais por meio de scripts. O que um script registra, o nome de um teste, a mensagem de uma asserção que falhou e um erro de script agora mostram um segredo como {secret:<name>} no terminal, em todos os relatórios, no histórico de execuções e no console de scripts do desktop — incluindo um valor que o próprio script escreve sob o nome de uma variável secreta.
  • Bodies binários de requisições são enviados pela linha de comando. Uma requisição cujo body é um arquivo anexado saía com o body vazio. Um arquivo ausente, ou uma referência inválida no arquivo da requisição, agora faz essa requisição falhar como “not run” em vez de enviá-la vazia. (Mudança de comportamento)
  • Respostas comprimidas são decodificadas (gzip, deflate, br) tanto no desktop quanto na linha de comando, então as asserções e o visualizador leem o body real. Um body que não pode ser decodificado é mantido como recebido, com um aviso, e fp.response.json() falha com essa causa. O log de atividade registra como texto uma resposta de texto comprimida que foi decodificada.
  • Execuções que não fizeram nada não passam mais. Uma pasta de destino sem nenhuma requisição para a execução com o código de saída 19 (Mudança de comportamento).
  • Valores que a linha de comando não podia respeitar são recusados. --timeout e --delay aceitam números inteiros de 0 a 2147483647; qualquer outro valor é um erro de uso (saída 3) em vez de ser ignorado. (Mudança de comportamento)
  • Uma configuração ilegível interrompe a execução. Um .fetchpier/settings.json que não pode ser parseado, ou um config.json que não pode ser parseado do ambiente selecionado, sai com o código 4 nomeando o arquivo, em vez de executar com os padrões (o que descartava as configurações de TLS) ou de reportar o ambiente como ausente. fp env list avisa sobre ambientes ilegíveis. Um arquivo de ambiente que é parseado mas não tem name ou id (ou cujo variables não é um objeto) também conta como ilegível: antes ele derrubava todo fp run e fp env list do workspace com um erro interno, mesmo quando outro ambiente estava selecionado. (Mudança de comportamento)
  • O terminal mostra o ambiente pelo nome da pasta em vez do identificador interno, -v / -vv / -vvv agora acrescentam detalhes, e a saída de scripts (fp.log) é mostrada em execuções de vários arquivos.
  • Um timeout expirado é reportado como timed out after <limit> nas duas superfícies, e não como um cancelamento.
  • Nenhuma linha de diagnóstico interno ([execute] …, [parser] …) chega à saída; agora são avisos, também no relatório JSON, com um código estável.
  • O User-Agent padrão não anuncia mais a versão 0.1.0.
  • A dica “Did you mean …?” para um path ausente está correta quando o diretório atual ou o workspace é alcançado por meio de um link simbólico (como as pastas temporárias do macOS); antes ela sugeria um path que subia até a raiz.
  • Suporte a proxy na linha de comando: HTTPS_PROXY / HTTP_PROXY / NO_PROXY, --proxy <url> e --no-proxy. O cabeçalho nomeia o proxy e a lista de exclusões; em -v, cada requisição informa se passou pelo proxy ou foi direta. Uma URL de proxy inutilizável para a execução (saída 3).
  • --persist-env salva as mudanças de variáveis feitas por scripts nos valores locais exatamente como o desktop. Sem ela, uma execução não escreve nada no workspace.
  • Redação de credenciais e cookies na saída do terminal e nos relatórios da linha de comando: a credencial de auth por API key (query ou cabeçalho) e os valores de Cookie / Set-Cookie, além de Authorization. --show-secrets os revela. O histórico de execuções (--save-history) não muda.
  • Um aviso quando uma variável usada por uma requisição vem de um {{$env.NAME}} que não está definido em lugar nenhum, e por isso foi enviada vazia.
  • Avisos que antes eram linhas de log agora são mostrados: um cookie jar ou material TLS que não pôde ser usado, um downgrade de HTTP/2, um Content-Type multipart substituído, uma escrita de script que não pôde ser salva — nos avisos da linha de comando e, no desktop, em um aviso descartável acima da resposta.
  • O relatório JSON ganha campos opcionais: environmentName e, por resposta, compressedBytes, decompressedBytes e decodingStatus; por requisição, notRun e via. Sua versão continua 1.0. Os scripts ganham fp.response.decodingStatus.
  • O visualizador de respostas mostra tanto o tamanho recebido quanto o decodificado de uma resposta comprimida, e sinaliza um body que não pôde ser decodificado.
  • Timeout padrão de 30 segundos por requisição na linha de comando (o padrão do desktop). --timeout 0 é a única forma de desativá-lo. (Mudança de comportamento)
  • Accept-Encoding: gzip, deflate, br é enviado por padrão nas duas superfícies quando uma requisição não o define. (Mudança de comportamento)
  • User-Agent padrão: Fetchpier/<app version> a partir do desktop e Fetchpier-CLI/<CLI version> a partir da linha de comando, aplicado no momento do envio e nunca escrito nos arquivos de requisição; ambos os padrões aparecem no editor de cabeçalhos como linhas somente leitura. Um valor já salvo em um arquivo continua sendo enviado como foi escrito. (Mudança de comportamento)
  • Uma requisição que não obteve resposta aparece como no response: <reason> quando houve uma tentativa de envio e como not run: <reason> quando não houve; o caso de teste JUnit antes chamado request not sent é renomeado de acordo. (Mudança de comportamento)
  • Um valor que um script define prevalece sobre --env-var a partir desse ponto.
  • A referência da CLI documenta a configuração de TLS, o comportamento com variáveis ausentes, os limites do mascaramento de segredos, que o histórico mantém os valores de cookies e que a CLI pode alinhar o nome de exibição de um ambiente com sua pasta.

Release completa: v0.9.6 no GitHub.