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:
- *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.
-
*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. -
*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.