WU / DOCSMICROFRONTENDS UNIVERSAIS
PT

WU Framework 4.0 e CLI 1.2: atualização e migração

Novidades, mudanças incompatíveis, validação e suporte para migrar para Framework 4.0.0 e CLI 1.2.0.

Este guia cobre WU Framework 4.0.0 e WU CLI 1.2.0. Framework 4 é uma versão principal porque agora rejeita operações aceitas em versões anteriores. Atualizar a CLI não migra automaticamente o código das suas aplicações.

O que muda

  • Framework: hooks com identidade e permissões da aplicação, SSR com dados privados por requisição, cancelamento e limites de concorrência; sincronização de caminhos aninhados; supervisão e replay cooperativo. Veja confiabilidade do runtime e adapters.

  • Segurança: origem remota explícita, autenticação mútua do relay MCP, propriedade de contratos, validação de .wuapp, permissões de workflows de IA e nonces CSP por resposta. Veja segurança.

  • CLI: dependências e catálogos, resolução por aplicação, compilação paralela e invalidação de cache por configuração; servidor de desenvolvimento restrito a hosts autorizados; builds com hashes de conteúdo e implantação consistente de assets. Veja dependências, desenvolvimento e build.

A CLI 1.2 alinha WU_D003 à versão do Framework no catálogo. O diagnóstico distingue dependências incompatíveis de um projeto válido com Framework 4. Também corrige a execução de comandos de build com caminhos entre aspas no Windows.

1. Preparar uma atualização reversível

Salve código, manifests e lockfiles em um commit e preserve o artefato de produção anterior. Atualize primeiro em uma branch e ambiente de teste. Instale versões exatas e confira qual executável está usando.

npm view wu-framework@4.0.0 version
npm view @wu-framework/cli@1.2.0 version
npm install --global @wu-framework/cli@1.2.0 --include=optional
wu --version

Em um workspace existente, consulte wu upgrade --help, execute wu upgrade e revise o diff. A ferramenta atualiza dependências e arquivos de integração; não reescreve grants, hooks nem contratos de negócio. Depois execute wu install. Em projetos sem CLI, atualize wu-framework para 4.0.0 nos pacotes que o declaram e use seu gerenciador de dependências.

2. Corrigir mudanças incompatíveis

Hooks e store. Hooks dentro de uma microapp não herdam mais a autoridade do host. Solicite permissões em manifest.wu.permissions e conceda-as em grants do shell. Só a interseção é efetiva. Um emit negado retorna false; assinaturas ou acesso ao store podem lançar WU_EVENT_SUBSCRIBE_DENIED ou WU_CAPABILITY_DENIED. Conceda os canais e caminhos realmente usados pela aplicação.

const permissions = [
  "store.read:cart.*", "store.write:cart.*",
  "events.emit:cart:changed", "events.subscribe:cart:changed",
];
await wu.registerApp({
  name: "cart", url: "/apps/cart/", sandbox: "module",
  manifest: { name: "cart", entry: "index.js", wu: { permissions } },
  grants: permissions,
});

Aplicações remotas. connect e waitForPort exigem hostOrigin. Use a origem exata do shell; "*" aceita deliberadamente qualquer origem. A entrada deve corresponder à origem da URL registrada (WU_REMOTE_ORIGIN_MISMATCH). Apps remotas na mesma origem exigem iframe.allowSameOrigin: true; wu.detach() rejeita apps remotas com WU_WINDOW_REMOTE_UNSUPPORTED. Veja apps remotas.

MCP e CSP. Atualize o relay junto com o runtime: o bridge 4.0 usa autenticação mútua HMAC v2 e exige token. ws:// é recusado fora de loopback. O modo inseguro é explícito e apenas local. No middleware SSR, substitua nonce fixo por nonce: () => createNonce() para gerar um por resposta. Veja MCP e streaming e segurança.

Contratos e pacotes. Não sobrescreva a capability de outro provedor (WU_CAPABILITY_OWNED); revogue-a ou desmonte o provedor antes da troca. Instalar .wuapp sobre uma aplicação registrada pelo host exige { replace: true }. restore() valida entradas salvas. Trate erros por error.code, não pelo texto da mensagem. Aguarde lifecycles assíncronos com await.

CLI e implantação. Adicione hosts de túneis a dev.allowedHosts; apenas chaves VITE_* e WU_* do .env são expostas ao cliente. Esses prefixos não servem para segredos. Revise shared quando apps precisarem de uma única instância. Publique o dist/ completo; preserve assets anteriores com hash enquanto páginas antigas estiverem abertas e revalide HTML/manifests. Veja configuração e implantação.

3. Validar e reverter se necessário

wu doctor --json
wu contracts check
wu test
wu build
wu serve 4100 --mode static

Verifique montagem, atualização e desmontagem, permissões negadas, recarga direta, SSR/hidratação, CSP, RPC e reconexão remota conforme os recursos usados. Teste wu build --native separadamente, se aplicável. Verifique também uma aba aberta antes da implantação. Em caso de falha, restaure juntos o commit, lockfile e artefato anteriores; não misture runtime novo com relay ou assets incompatíveis.

Algo quebrou? Podemos ajudar

A equipe WU ajuda a diagnosticar problemas de atualização. Solicite suporte de migração ou abra uma issue no repositório do produto. Inclua versões anterior e nova, wu --version, npm ls wu-framework, sistema/navegador, código do erro e reprodução mínima sem segredos. Explique o que funcionava antes e o resultado esperado. O suporte comunitário não implica prazo garantido de resposta.

CONSTRUA O WU CONOSCO

Encontrou um bug? Tem uma ideia?

Sua experiência melhora o WU. Conte o que falhou ou ajude a manter seu desenvolvimento.