Changelog
O formato segue o Keep a Changelog e versionamento semântico.
0.1.0
Primeira versão. Implementa o MVP descrito no documento de requisitos do produto.
Publicada no npm como @livetest/core e @livetest/cli, e no Visual Studio Marketplace como livetest-vscode.
Adicionado: core
- Watcher com filtragem por glob e poda de diretórios antes da varredura recursiva.
- Motor de debounce com os três modos (
idle,batch,both) e timers injetáveis. - Grafo de dependências com propagação reversa por busca em largura, seguro com ciclos e com profundidade configurável por arquivo.
- Adapter de grafo JS/TS pela API do compilador TypeScript: resolve
paths,baseUrl,index.*e o mapeamento./x.jspara./x.tsde projetos ESM. - Adapter de grafo Python pelo módulo
astnativo, com fallback por expressão regular quando não há interpretador disponível. - Mapeamento de fonte para teste por templates com os tokens
{dir},{relDir},{relDirTail},{name}e{ext}. - Adapters de runner: Vitest, Jest (relatório JSON), pytest (JUnit XML) e
commandgenérico por código de saída. - Três canais de saída simultâneos: relatório de terminal, log NDJSON append-only com rotação, e
status.jsoncom escrita atômica. - Canal de eventos em TCP loopback com NDJSON, snapshot na conexão e arquivo de descoberta que distingue daemon vivo de registro órfão.
- Ponto de entrada
@livetest/core/clientcom apenas a superfície de consumo.
Adicionado: CLI
start,run,why,status,watch,stop,init,doctor.- Códigos de saída estáveis, documentados, adequados a CI.
runCliembutível, que devolve o código em vez de chamarprocess.exit.
Adicionado: extensão do VSCode
- Árvore de arquivos com status, motivo da execução no tooltip e falhas como nós filhos.
- Diagnósticos no editor, canal de log e item de barra de status.
- Conexão a um daemon existente com reconexão automática; botão de início manual quando não há daemon. A extensão nunca o sobe sozinha.
Adicionado: site de documentação
- Site estático em Vite, sem dependências em runtime.
- Terminal animado na home, encenando um daemon real, inclusive a regressão que só aparece nos importadores.
- Demonstração interativa de propagação: o visitante escolhe a profundidade e o grafo recalcula os arquivos alcançados, as arestas percorridas e o motivo de cada teste, com a mesma busca em largura do core.
- Realce de sintaxe próprio, em cerca de 120 linhas testadas, no lugar de uma biblioteca.
prefers-reduced-motiondesliga todas as animações e entrega a página completa.
Decisões sobre pontos em aberto
O documento de requisitos deixou quatro questões em aberto. As respostas desta versão:
- Protocolo do canal de eventos. TCP em
127.0.0.1com NDJSON, porta escolhida pelo sistema operacional e arquivo de descoberta.livetest/daemon.json. Named pipes e sockets Unix exigiriam dois caminhos de código; TCP em loopback é idêntico nas três plataformas. - Formato do log para IA. Três níveis de esforço: uma linha
LIVETEST chave=valorao fim de cada lote, umstatus.jsonsempre atual, e o NDJSON completo.