Skip to content

Releases: windupjs/windup

v1.9.0

Choose a tag to compare

@prhost prhost released this 30 Jul 15:16

windup claude logout [--profile ] [--remove]: retire an account profile in one command — names the account before dropping it, clears only that profile's credential, and --remove deletes its config dir (refused without --profile, so the default ~/.claude is never removed). And the status no longer renders a token with no account metadata as a plausible identity: it reads 'account email not reported' and prints how to repopulate it.

v1.8.1

Choose a tag to compare

@prhost prhost released this 30 Jul 14:36

--force now rebinds the project to another profile (instead of 'edit it by hand'), and with --profile it no longer signs a working account out — it rebinds and leaves the session alone. windup claude status lists the profiles on the machine and marks the active one.

v1.8.0

Choose a tag to compare

@prhost prhost released this 30 Jul 14:11

Claude account profiles: windup claude login --profile <name> gives an account its own config dir and binds the project to it via .envrc (never clobbered) — so a client project stops burning your personal plan. Plus an honest already-connected message with --force to switch, claude status --profile, and a non-TTY guard on login (a killed browser flow used to leave you logged out).

v1.7.0

Choose a tag to compare

@prhost prhost released this 30 Jul 13:25

A regressão capturada passa a falar mais alto que o self-heal: se o re-plano também falhar (resposta truncada, chave inválida), a falha de postcondição continua sendo a manchete — com expected/actual e kind=verification — e o problema do re-plano vira uma nota. Antes o run lia '[plan_invalid] transient API failure', ou seja 'o Windup teve um problema', quando a verdade era 'o app quebrou e a ferramenta pegou'. Além disso: truncation agora é retentada com budget de saída maior (8k→16k) em vez de repetir a mesma chamada, com mensagem acionável; docs de custo explicitam o caminho de retry (10-30x).

v1.6.0

Choose a tag to compare

@prhost prhost released this 29 Jul 14:38

Fecha o buraco do h2 e torna o cenário autorável: (1) quando a task cita o texto entre aspas, o Windup escreve a asserção text_contains sozinho — determinístico, sem chamada extra de LLM, e só após confirmar que a página contém o texto; (2) o guard passa a CONTAR matches na página ao vivo — um seletor de visibilidade nua que casa >1 elemento é rejeitado (h2 numa página com 5 títulos), com a contagem no erro; (3) docs de custo de planejamento corrigidas (melhor caso vs caso difícil medido). Follow-up do re-teste da 1.5.0.

v1.5.0

Choose a tag to compare

@prhost prhost released this 29 Jul 13:32

Rejeita postcondição trivial no plano (um expect: {selector: 'body'} passa sempre e não é evidência — agora é rejeitado na validação e re-planejado, com regra + exemplos BAD/GOOD no prompt; planos já cacheados seguem rodando e o windup explain sinaliza os fracos). Corrige carregamento de windup.config.ts quando o projeto hoista jiti v1 (Tailwind 3), editar hints passa a invalidar o cache, e erro de config (modelo inválido/chave faltando) vira kind=config em vez de falha de teste retryable. Planner agora diz POR QUE re-tentou; llm.apiKeyEnv aceito no nível llm. Feedback de primeiro contato.

v1.4.0

Choose a tag to compare

@prhost prhost released this 28 Jul 15:38

Cache de planos versionável por padrão: windup init passa a gitignorar só .windup/state|runs|reports e versiona .windup/cache (planos) + .windup/map (site map) — commite o cache e a suíte roda em CI/qualquer máquina em replay $0, sem LLM e sem a CLI do Claude. Mensagem acionável no cache-miss (commitar o cache OU usar provider não-interativo). Feedback do dogfood (rodar em CI/Windows).

v1.2.0

Choose a tag to compare

@prhost prhost released this 27 Jul 17:45

windup record com output durável: seletores únicos verificados na captura (escada de âncoras #id → data-testid → name → aria-label → placeholder → texto limpo único; texto dinâmico como preço/contagem nunca vira âncora), aviso das interações sem âncora estável (gap de a11y), e task legível sintetizada dos rótulos visíveis (não '14 interaction(s)') para sobreviver à invalidação de cache. Mensagem de no-TTY aponta o workaround de PTY. Feedback #12 do dogfood.

v1.1.0

Choose a tag to compare

@prhost prhost released this 27 Jul 14:39

Diagnostics de runtime: casar failOn.ignore pela URL do request (não só pelo texto), separar erros de recurso (4xx de img/font/xhr) de erros de JS com gates próprios (--fail-on-resource vs --fail-on-console), e guardar a URL + kind (js/resource) de cada console error no diagnostics. Feedback do dogfood.

v1.0.0 — first stable release

Choose a tag to compare

@prhost prhost released this 27 Jul 14:12

First stable release: the CLI and programmatic API built across 0.x are now committed to under semver. Includes a pre-1.0 security hardening — scenario-id path-traversal (assertSafeScenarioId rejects '..'/absolute ids). $0 deterministic replay, self-healing, depends_on + session snapshots, cross-browser/device, config.network/clock (global + per-scenario), rich expect asserts, runtime-health gates, CI guard-rails, diagnostics family, suggest-scenarios, and authoring via windup new or windup record.