Skip to content

aiox update 5.0.x → 5.0.7 falha: manifest sem assinatura .minisig + validate sem flag --no-signature #633

@ruibrunocunha

Description

@ruibrunocunha

Summary

aiox update falha sempre ao actualizar para a versão 5.0.7 com erro Manifest signature verification failed: Manifest signature file not found (.minisig) e faz rollback automático — mesmo quando o npm install aiox-core@5.0.7 correu com sucesso antes.

Parece ser um bug do release 5.0.7 (não um problema de ambiente): o package npm foi publicado sem o ficheiro de assinatura, e a CLI não expõe forma de saltar a verificação.

Environment

  • AIOX CLI: 5.0.7 (global install via npm i -g aiox-core@5.0.7)
  • Previous AIOX version: 5.0.4 (installed 2026-04-08)
  • Node: v24.13.0
  • Platform: macOS (darwin arm64)
  • Project mode: project-development

Steps to reproduce

# Projecto com AIOX 5.0.4 instalado
aiox update

Expected behavior

Update bem-sucedido para 5.0.7, com validação pós-install a passar.

Actual behavior

[downloading] Downloading update...
npm install aiox-core@5.0.7 --save-exact   ← corre com sucesso
[finalizing] Updating version info...
[validating] Validating installation...
[PostInstallValidator] WARNING: Signature verification disabled - development mode only
[PostInstallValidator] Loaded manifest v5.0.4 with 1107 files   ← carrega manifest ANTIGO
[rollback] Validation failed, rolling back...

✗ Update failed
  Error: Validation failed (integrity: 0%)
  Rolled back to previous version.

Execução directa do aiox validate confirma a causa raiz:

✗ Manifest signature: NOT VERIFIED
✗ Status: FAILED
  Integrity Score: 0%

Critical Issues
  ✗ Manifest signature verification failed: Manifest signature file not found (.minisig)
    → Obtain a properly signed manifest from the official source

Root causes (3 problemas distintos)

1. Package npm 5.0.7 foi publicado sem .minisig

ls node_modules/aiox-core/.aiox-core/*.minisig
# No such file or directory

packages/installer/src/installer/post-install-validator.js linha 417 exige assinatura por default (requireSignature: true). Como o package oficial não inclui .minisig, a validação falha sempre para qualquer utilizador.

2. CLI aiox validate não expõe --no-signature

Ver .aiox-core/cli/commands/validate/index.js — as flags disponíveis são:

  • --repair, --dry-run, --detailed, --no-hash, --extras, --verbose, --json, --source

A classe PostInstallValidator aceita requireSignature: false (documentado em docs/security/MANIFEST_SIGNING.md secção "Development Mode"), mas não há forma de passar essa opção via CLI.

3. Rollback automático em aiox update sem override

O aiox update não tem flag equivalente para dizer "ignora a assinatura em falta". O utilizador fica preso.

Workaround usado

Como o npm install aiox-core@5.0.7 realmente correu com sucesso antes da validação falhar, bastou copiar o manifest novo do node_modules para o projecto e actualizar version.json:

cp node_modules/aiox-core/.aiox-core/install-manifest.yaml .aiox-core/install-manifest.yaml
# Editar manualmente .aiox-core/version.json: "version": "5.0.4" → "5.0.7"

Depois disto:

  • aiox --version → 5.0.7 ✓
  • aiox info → 22 agents, 205 tasks, 11 templates, 15 workflows ✓
  • Hashes dos ficheiros batem com o manifest 5.0.7 ✓

Suggested fixes

Pelo menos uma das opções:

  1. Recomendado — publicar .minisig no package npm. Garantir que scripts/generate-install-manifest.js + signing step corre antes do npm publish. Validar que files em package.json inclui .aiox-core/install-manifest.yaml.minisig.

  2. Expor --no-signature em aiox validate e em aiox update. Mapear para requireSignature: false. Documentar como "development only, insecure".

  3. Detectar ausência do .minisig e degradar para warning em vez de error. Se o package oficial não inclui signature, a validação deve emitir warning (requireSignature: false comportamento) em vez de fail+rollback. Produção podia ser activada via env var AIOX_REQUIRE_SIGNATURE=true.

Referências

  • packages/installer/src/installer/post-install-validator.js:334-347 — opção requireSignature
  • packages/installer/src/installer/post-install-validator.js:417-432 — bloqueio em requireSignature: true sem .minisig
  • .aiox-core/cli/commands/validate/index.js:56-68 — flags expostas na CLI
  • docs/security/MANIFEST_SIGNING.md:189-213 — Development Mode documentado mas sem forma de activar via CLI

Impact

Qualquer projecto que tente aiox update para 5.0.7 vai falhar com rollback. Bloqueia adopção do release.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: cliCLI tools (bin/, packages/aios-pro-cli/)area: installerInstaller and setup (packages/installer/)status: needs-triageAwaiting initial triage

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions