Skip to content

Release v0.3.1 - #10

Merged
blackfoxsoftware merged 2 commits into
mainfrom
dev
Sep 2, 2026
Merged

Release v0.3.1#10
blackfoxsoftware merged 2 commits into
mainfrom
dev

Conversation

@blackfoxsoftware

Copy link
Copy Markdown
Owner

Promove a dev para a main e lança a v0.3.1.

O que sai nesta versão

O Windows Update subiu a wslc de 2.9.4 para 2.9.9 e quebrou o app. Esta versão é o acerto com ela — o que ela mudou embaixo de nós, e o que ela ganhou que ainda não estava na tela.

Corrigido. A view Redes voltou a abrir: o --format json da 2.9.9 devolve um objeto por linha em vez de uma lista, e o app quebrava ao carregar a tela. Duas falhas eram silenciosas, sem erro nenhum: as colunas de CPU e memória chegavam sempre vazias no motor CLI, e três das quatro limpezas — containers parados, imagens sem uso, volumes sem uso — nem começavam, porque a 2.9.9 recusa a opção que o app passava. A coluna Portas voltou a mostrar o endereço publicado, o status voltou a dizer há quanto tempo o container está naquele estado, e as redes bridge/host/none deixaram de oferecer uma remoção que só dava erro.

Adicionado. Copiar arquivos entre o Windows e um container, nos dois sentidos — comando que a wslc ganhou na 2.9.8 e o app não tinha. Logs com recorte: o botão abre nas últimas 500 linhas em vez de despejar o log inteiro, e "Logs com opções…" escolhe linhas, hora e intervalo. Remover container em execução ou imagem em uso deixou de ser um beco sem saída: o aviso da falha traz o botão para remover assim mesmo. Mais a aba Avançado do build, as cinco opções novas do conectar à rede, a faixa de IPs no criar rede, "criar sem iniciar", IP fixo e montagens detalhadas no executar, opções no comando rápido, sinal e espera no parar, e rótulos de volume.

Alterado. Imagens, volumes, redes e a versão da CLI passaram a ser lidos em JSON em vez da tabela de texto, que vem traduzida conforme o idioma do Windows. Os erros do motor nativo passaram a dizer o que aconteceu, em vez de mostrar só o código. E o que só existe na CLI some da tela quando o motor nativo está ativo, em vez de falhar depois de clicado.

Verificado

383 testes de unidade e 178 E2E, com cada flag sondada contra a wslc 2.9.9 instalada antes de entrar no código. Detalhe do que foi medido — inclusive onde a wslc não se comporta como o docker — na #9 e nas regras 19 a 21 do ROADMAP.md.

O que o merge dispara

O workflow de release lê a versão do package.json (0.3.1) e as notas do patchnotes.json, roda o CI inteiro no estado que vai virar tag, empacota, abre o .exe na fumaça e só então cria a tag anotada v0.3.1 e publica a release com o instalador, o portátil, o .blockmap e o latest.yml.

Quem está na 0.3.0 recebe esta versão pelo próprio app: é a primeira atualização automática do projeto.

O Windows Update subiu a wslc de 2.9.4 para 2.9.9 e quebrou o app. O
`--format json` virou NDJSON — um objeto por linha, sem array em volta — e
`network list` renomeou `Id` para `ID`, então a view Redes morria em
"Unexpected non-whitespace character after JSON". Todas as listagens passam
agora por parseJsonLines, que aceita as duas formas: a CLI é instalada pelo
Windows Update, não por nós, e o app não escolhe qual versão vai encontrar.

Duas falhas silenciosas vieram junto, e nenhuma dava erro na tela. O `stats`
chegava sempre vazio no motor CLI, porque o fallback era `--no-stream`, que
deixou de existir. E três das quatro limpezas nem rodavam: nenhum `prune` da
2.9.9 aceita `--force`, e `image`/`volume prune` precisam de `--all`, senão
limpam só as pendentes e os anônimos — bem menos do que o rótulo promete.

A auditoria seguinte foi feita contra a árvore de `--help` da CLI, recursiva,
não contra uma lista nossa. Foi assim que apareceu o `container cp` inteiro,
que duas auditorias anteriores tinham deixado passar por enumerarem o que já
conhecíamos. Ele chega como diálogo próprio, nos dois sentidos, e não é igual
ao docker: entrando, o destino precisa ser uma pasta que já existe — a wslc não
renomeia —, enquanto saindo ela cria o arquivo. Medido nos dois casos.

Os logs abriam despejando o arquivo inteiro desde o primeiro byte, porque só
mandávamos `--follow`. O botão da lista agora pede uma cauda e o título do
painel diz qual recorte está em tela; "Logs com opções…" escolhe linhas, hora e
intervalo. No motor nativo o log vem por callback, sem recorte, e lá o título
não promete o que não pode entregar.

A remoção forçada não virou item de menu. A ação normal continua onde estava e,
quando a CLI recusa por "em execução" ou "em uso", o botão aparece no próprio
aviso da falha — quem clica já leu o motivo. O dublê passou a seguir as mesmas
duas regras, senão esse caminho só existiria contra a máquina de verdade.

O resto da 2.9.8/2.9.9 entrou onde já havia lugar: as cinco opções do `network
connect`, `--ip-range` no create, as nove do `image build`, `container create`
como "criar sem iniciar", `--ip`/`--mount`/`--pull` no run, as cinco do `exec`,
sinal e espera no stop (que o SDK também aceita, então valem nos dois motores) e
labels de volume. O `-f` de `volume rm` e `network rm` NÃO é força: a ajuda diz
"não gere erro se não existir", e ele só é usado na remoção em massa, onde a
lista pode ter envelhecido entre ler e remover.

Cada flag foi sondada contra a CLI instalada antes de entrar, e o que é
exclusivo dela some da tela no motor nativo em vez de falhar depois de clicado.
Um teste do terminal também era uma corrida latente: "conectado" casava tanto o
chip de status quanto a primeira linha que o shell imprime.
Acerto com a CLI wslc 2.9.9: o que ela mudou, e o que ela ganhou
@blackfoxsoftware
blackfoxsoftware merged commit 26ca228 into main Sep 2, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant