prometeu-runtime/discussion/workflow/plans/PLN-0007-full-migration-to-atomic-telemetry.md

2.5 KiB

PLN-0007: Full Migration to Atomic Telemetry

Briefing

Este plano detalha a remoção técnica dos campos legados de telemetria no VirtualMachineRuntime e a migração de todos os consumidores para o modelo de AtomicTelemetry introduzido na DEC-0007.

Decisions de Origem

  • DEC-0008 (Full Migration to Atomic Telemetry)
  • DEC-0007 (Host Debug Overlay Isolation)

Alvo

  • crates/console/prometeu-system
  • crates/console/prometeu-hal
  • crates/host/prometeu-host-desktop-winit

Escopo

  • Remoção de telemetry_current e telemetry_last de VirtualMachineRuntime.
  • Refatoração do VirtualMachineRuntime::tick para remover atualizações redundantes.
  • Atualização do VirtualMachineRuntime::lifecycle para remover inicialização e reset dos campos legados.
  • Refatoração do LogService para consumir logs via AtomicTelemetry.
  • Atualização do HostRunner (Desktop) para remover qualquer referência residual aos campos legados.
  • Atualização das especificações técnicas em docs/specs/runtime/.

Fora de Escopo

  • Mudanças no formato do TelemetryFrame (a menos que estritamente necessário para compatibilidade).
  • Otimizações de performance não relacionadas à telemetria.

Plano de Execucao

  1. Fase 1: HAL & Telemetry
    • Verificar se AtomicTelemetry possui todos os campos necessários.
    • Garantir que LogService está alinhado com o novo modelo.
  2. Fase 2: Runtime Refactor
    • Remover campos de VirtualMachineRuntime em mod.rs.
    • Limpar inicialização em lifecycle.rs.
    • Limpar loop de atualização em tick.rs.
  3. Fase 3: Host & Integration
    • Corrigir chamadas no HostRunner que ainda usem os campos antigos.
    • Validar que o snapshot atômico atende às necessidades de inspeção.
  4. Fase 4: Specs & Cleanup
    • Atualizar 10-debug e 11-portability.
    • Emitir lição aprendida LSN-0028.

Criterios de Aceite

  • O projeto compila sem warnings relacionados a campos não utilizados.
  • O Host Desktop inicia e o overlay (F1) exibe telemetria correta via atômicos.
  • Não existem mais os campos telemetry_current e telemetry_last no código fonte.

Tests / Validacao

  • cargo check em todos os crates afetados.
  • Execução manual do host desktop para validar overlay.

Riscos

  • Perda de Snapshot de Frame: Se o snapshot() não for chamado no momento certo ao final do frame, o overlay pode mostrar valores parciais de ciclos (resolvido chamando snapshot() no Host no momento de renderização do overlay).