Gleam.br Wiki

GBR: ADR-0014 Interface de Terminal Avançada (TUI) via Rustler e Ratatui | Wiki

Documentação de engenharia e especificações técnicas da Gleam-BR.

GBR: ADR-0014 Interface de Terminal Avançada (TUI) via Rustler e Ratatui

  • *Status:* Rejeitado
  • *Data da Rejeição:* 2026-06-09
  • *Data da Proposta:* 2026-05-17

Contexto

A interface inicial do gleambr_ai baseava-se em interações de console síncronas sequenciais. À medida que o agente evoluiu para fluxos assíncronos e aprovação interativa (HITL), propôs-se construir uma TUI rica acoplando o motor de renderização ratatui em Rust por meio do Rustler (NIFs).

Motivo da Rejeição

A integração via FFI assíncrona com Rust/Cargo adiciona riscos operacionais severos para o monorepo:

  1. *Scheduler Starvation:* NIFs síncronas bloqueantes do Rustler podem congelar ou sobrecarregar as schedulers nativas da Erlang VM se não forem gerenciadas em threads nativas de background complexas.
  2. *Carga Operacional da Toolchain:* Exigir o compilador cargo (Rust) como dependência estrita para construir a ferramenta localmente prejudica a portabilidade em ambientes que necessitam apenas do ecossistema Erlang/Gleam.
  3. *Alternativa Nativa:* Com a criação do pacote local etui, foi possível implementar o padrão TEA (The Elm Architecture) e a técnica de buffer-diffing diretamente no ecossistema BEAM, fornecendo uma TUI pura em Gleam.

Consequências da Rejeição

O código Rust/Rustler relacionado à TUI foi descartado do projeto principal, optando-se por investir no desenvolvimento e refinamento do pacote nativo etui para renderizar os fluxos visuais de console de forma totalmente segura.