Repository navigation
v0.3.0 — Live Agent Console e modos de autonomia
Promoção de 0.3.0-rc.2 a estável. As tags v0.3.0-rc.1 e v0.3.0-rc.2
continuam onde estavam e apontando para o que sempre apontaram: uma tag
publicada não se move.
O que separou o rc.2 do 0.3.0 foi uma sala limpa a partir do remoto
público — clone anônimo por HTTPS, npm ci, typecheck e npm test, exatamente
como um estranho recebe o produto. Ela reprovou na primeira execução, e por um
motivo que nenhuma validação feita na árvore de trabalho poderia ter encontrado.
Corrigido
-
npm testnão rodava no Node 26, e oenginesprometia uma faixa falsa
dos dois lados. O script passava um diretório nu ao runner
(node --test tests/), forma que funciona até o Node 22 e quebra a partir do
23: o runner tenta carregar o argumento como módulo e morre com
MODULE_NOT_FOUNDantes de rodar um único teste. Quem clonasse o repositório
público no Node 26 via a suíte inteira falhar sem que existisse defeito algum.
Por baixo o piso também estava errado: o executor chamanode --test <arq>.ts
sem--experimental-strip-types, então só roda de 22.18 em diante.
testpassou a delegar ao executor — que é o que a própria documentação manda
usar — eengines.nodepassou a>=22.18.0. Medido nas duas pontas: v22.23.1
e v26.0.0. (5ca4461) -
Números públicos que ninguém tinha medido. O README dizia "789 passes / 37
arquivos"; a página pública dizia "792 testes". O mesmo fato, dois números, e
nenhuma forma de escolher entre eles sem medir. A CLI era anunciada com 9
comandos: são 8, porquereplay verifyé uma forma de invocação dereplay,
não um comando — contaram a linha da ajuda em vez da entrada do registro.
Medido: 797 passes, 0 falhas, 38 arquivos, 8 comandos. (de6857c) -
Um relatório de evidência que se contradizia.
regressao-completa.sh
estampavaNOMOS_BROWSER_REGRESSION=PASSno cabeçalho três linhas abaixo do
seu próprioETAPAS_FALHA=1, porque o veredito olhava só para a suíte
TypeScript. E imprimia "em 37 arquivos" como literal, número que envelheceu
calado quando o 38º arquivo entrou. Cabeçalho e código de saída agora dizem a
mesma coisa, e o número vem da medição. (de6857c)
Adicionado
-
scripts/verificar-alegacoes-publicas.mjs— mede cada número que o produto diz
em público e compara com o texto declarado. Exige que a origem da medição da
suíte seja explícita (--resumo), porque a medição que vale é a da sala limpa,
não a da árvore de trabalho de quem escreveu o código. -
scripts/verificar-historico-publico.sh— um repositório público entrega o
histórico, não só a ponta. O scanner que existia olhavagit ls-files, ou
seja, o que está versionado agora; um segredo que entrou num commit e saiu no
seguinte continua sendo entregue a quem clona. Provado com controle de mutação:
um segredo plantado e removido da ponta passa batido pelo scanner antigo
(PUBLIC_REPO_SECRET_LEAK=0) e é pego por este. -
scripts/clean-room-publico.sh— a sala limpa que reprovou orc.2. Clona o
remoto público, apaga tudo antes, e rodanpm testcomo um estranho rodaria.
Também limpa o ambiente: esta máquina exportaNODE_ENV=productione
npm config omit=dev, e a primeira execução acusou umTYPECHECK=FAILque era
defeito do instrumento, não do produto. -
tests/entrada-publica.test.ts— guarda a porta de entrada, com controle de
mutação que reencena a forma antiga e exige que ela falhe. Em Node < 23 ele se
declara SKIP dizendo por quê, em vez de passar em silêncio num lugar onde o
defeito não pode aparecer.
Notas
Marcar 0.3.0 como estável não mede nenhuma plataforma nova. Continua
validado em macOS com Apple Silicon; as limitações de
docs/LIMITATIONS.md valem inteiras. Um número de versão
não é evidência.