Pular para o conteúdo principal
Versão: Atual

Auditoria da UX de terminal gerenciada

Connections multi-server (v0.9.7)​

O par legado Connect/Disconnect de default único foi substituído por IVOAI Servers. Add somente cria; cada profile oferece Test, Enable/Disable, Edit metadata, Re-enroll e Remove confirmado. CLI e TUI usam ServerConnector/ServerPool e a secret store existente por ID estável. Não existe configuração paralela da TUI. Enrollment não é apresentado como health live. Testes explícitos ficam em cache por um minuto; após restart, o estado volta a not_probed.

Tokens de cor existentes, fonte do terminal, alinhamento à esquerda, teclado, largura adaptativa e NO_COLOR foram preservados, sem nova paleta ou decoração. A confirmação destrutiva identifica o alias. Labels distinguem enabled, conexão, health e metadados da credencial sem depender apenas de cor. O smoke com fixtures cobre launcher real, teclado, entrada oculta, persistência, falhas e remoção seletiva.

Validada para a experiência AUTO OpenCode-first em 2026-09-04. A regra orientadora é um único modelo de estado autoritativo: dados de sessão, executor, quota e conhecimento têm origem no IVOAI e são renderizados pelo frontend gerenciado. Saídas JSON e non-TTY nunca recebem branding nem decoração ANSI.

Hierarquia da informação​

O caminho normal é ivoai auto: preflight, seleção de conhecimento, backend privado e então a TUI OpenCode com tema IVOAI. O rodapé da tela inicial mostra somente um resumo acionável do estado; a barra lateral mostra as fontes de conhecimento; /ivoai abre o painel completo e limitado. Símbolos são sempre acompanhados por palavras, de modo que o estado nunca dependa apenas de cor.

Campo da UIFonte autoritativaEvidência ausente
versãometadados de build do binárioN/A
frontendmetadados da sessãoN/A
executor primaryscheduler de quota/sessãoUnknown
workertask ledger/runtimeNot available
autenticaçãoprobe de auth do executor oficialauthentication required
quotaquota managerN/A
Memory / Contextbootstrap de conhecimento da sessãodegraded
servidoresServerPool + observações do router da sessãonot-probed; enrollment não prova saúde atual
permissões do OpenCodeconfiguração de inicialização da sessãointeractive por padrão
escopo de conhecimentoseleção do Knowledge Routerautomatic ou restricted
compressãopolicy do CompressionProviderUnknown
skillsSkill RegistryNot available

Inventário de menus e rotas​

SuperfícieDecisãoJustificativa no modo gerenciado
Launcher IVOAI: AutomaticKEEP / PRIMARYAbre o frontend OpenCode sob controle do IVOAI.
Launcher IVOAI: CodexKEEPEscape hatch explícito para a TUI oficial do Codex.
Launcher IVOAI: ClaudeKEEPEscape hatch explícito para a TUI oficial do Claude Code.
Launcher IVOAI: OpenCodeRENAMEAbre o frontend OpenCode gerenciado do IVOAI.
ivoai opencodeKEEPMesmo control plane gerenciado do AUTO.
provider OpenCode standaloneMOVEsession start --executor opencode --mode direct explícito.
status / doctorKEEPDiagnósticos operacionais e legíveis por máquina.
monitorKEEPVisão read-only existente do runtime; não é duplicada no painel da TUI.
OpenCode /ivoaiADDEstado completo de sessão, executor, quota e fontes.
rodapé/barra lateral da home do OpenCodeADDEscopo e saúde persistentes e compactos.
OpenCode /connectHIDE BY CONFIGSomente o provider IVOAI fica habilitado; a autenticação dos executores permanece oficial.
seletor de modelo/provider do OpenCodeKEEP / GROUP BY CONFIGAUTO mais modelos explícitos descobertos por capabilities e variantes nativas de reasoning; sem login duplicado.
política de aprovação do OpenCodeADDopencode.permission_mode persistente no IVOAI; /ivoai mostra o modo da sessão. Alterações valem na próxima sessão.
share do OpenCodeDISABLE IN MANAGED MODEImpede publicação acidental da conversa.
auto-update do OpenCodeDISABLE IN MANAGED MODEO pin e o rollback da supply chain permanecem autoritativos.
update do OpenCodeHIDE IN MANAGED MODEO IVOAI atualiza o componente pinado.
seletor de sessãoKEEPSessões OpenCode são mapeadas para IDs limitados de sessão dos executores IVOAI.
seletor de temaKEEPO tema IVOAI é instalado e selecionado; a acessibilidade permanece disponível.
menus de opencode diretoKEEP UPSTREAMO IVOAI não altera o uso fora do modo gerenciado.

Política de terminal responsivo​

O IVOAI usa o renderer e os slots de plugin compatíveis do OpenCode, em vez de fazer parsing de ANSI ou automatizar teclas. Aliases e purposes longos são sanitizados e limitados; o painel mostra no máximo oito linhas de fontes mais a contagem restante. O OpenCode é responsável por largura Unicode, resize, foco, cursor e limpeza do terminal. TERM=dumb, NO_COLOR, pipes e JSON continuam pelas superfícies non-TUI existentes do IVOAI.

Inventário estável de ações públicas​

Cada ação abaixo é coberta pelo teste de regressão da árvore de menus. As decisões são KEEP, exceto quando a tabela acima diz explicitamente RENAME, MOVE, HIDE, DISABLE ou ADD; entradas de seções aninhadas são agrupadas no launcher em vez de duplicadas no nível superior.

auto
status doctor doctor.inventory version
setup update.dry-run update rollback uninstall
connect.list connect.chatgpt disconnect.chatgpt connect.claude disconnect.claude connect.server
servers.list servers.add servers.manage servers.test servers.toggle servers.edit servers.re-enroll servers.remove
mcp.list mcp.add mcp.remove mcp.auth mcp.auth.remove mcp.header mcp.test
mcp.tools mcp.enable mcp.policy mcp.direct-policy
launch.codex launch.claude launch.opencode
memory.status memory.configure
session.direct.codex session.direct.claude session.direct.opencode session.orchestrated.codex session.orchestrated.claude
session.list session.monitor session.stop
session.continuity session.scope.adopt session.scope.restore
project.status project.init
config.show config.headroom config.memory config.ruflo config.auto config.auto-planner config.auto-failover config.auto-checkpoint
config.auto-strategy config.auto-parallel config.auto-bootstrap config.auto-escalation config.session-mode config.primary config.reviewer config.workers
config.auto-gate config.auto-plan
config.auto-policy policy.sources policy.concurrency policy.worker-cap policy.writes policy.provider policy.low-quota policy.primary policy.mcp policy.confirmation
capabilities.update capabilities.ponytail capability.inspect capability.enable capability.disable capability.pin capability.unpin capability.update capability.rollback
server.setup server.status server.doctor server.start server.stop server.restart server.logs
server.enrollment.create server.enrollment.list server.enrollment.revoke
server.web-access.create server.web-access.list server.web-access.revoke
server.connector.list server.connector.add server.connector.remove server.context.status server.memory.status
server.gateway.configure server.backup server.restore
remote.status remote.doctor remote.connector.list

Sistema visual​

O tema da TUI usa superfícies neutras ink/slate, um azul primário contido e âmbar como destaque. As cores semânticas de sucesso, alerta e erro possuem marcadores textuais. As paletas clara e escura são criadas independentemente, com texto, bordas e cores de diff em alto contraste. O lettering IVOAI usa o slot oficial home_logo; o binário, a licença, os notices e a proveniência do OpenCode upstream não são alterados nem ocultados.

Aceite de capacidades P1/P2 (2026-10-12)​

Toda capacidade pública alterada deve reutilizar o contrato de runtime, oferecer uma interface gerenciada útil e registrar sua validação. TestUXAuditCoversEveryPublicMenuAction verifica o inventário na CI; o help canônico é comparado à estrutura da CLI. O modelo de PR exige evidências e justificativa para exceções administrativas.

Ação / capacidadeInterface gerenciadaAutoridade compartilhada e limites
config.auto-profiles, profile.show, profile.restoreConfiguração → Automation Profiles, prévia e APPLY/RESTORE exatosConfig Store, alteração atômica permitida e recibo de rollback; exibe herança/personalização; somente sessões futuras
doctor.repair-hooksDiagnósticos do Dashboard, reparo explícitoPropriedade pelo recibo de Memory; doctor mostra diagnóstico; hooks externos não são adotados por nome
Telemetria operacionalOpenCode /ivoai, atividade e statusObservações versionadas e SSE autenticado; replay limitado, reconexão e indicação de lacunas/desatualização; sem probes por evento
session.scope.adopt, session.scope.restoreSession Control → ações da conversaTransição explícita de metadados com conta verificada e backup privado; o provedor retomado continua vendo o histórico nativo
Transporte bruto e caminhos de backupCLI/bridge administrativoNão é editor alternativo de eventos nem importação arbitrária; TUI utiliza o mesmo serviço

Paridade da experiência Codex​

CapacidadeSituação anteriorEntrega P1/P2 e limite da validação
Modelo e raciocínioSeletor nativo e variantes descobertasPreservados; valores pedidos/efetivos vêm do estado da sessão
Histórico e retomadaSeletor nativo e mapeamentos IVOAIBusca por escopo; adoção explícita de legado com backup; testes sintéticos e reais opt-in
Diffs, clipboard e navegaçãoControles nativos OpenCodePreservados; testes semânticos, teclado e integração continuam obrigatórios
Aprovação e cancelamentoContrato IVOAI e cancelamento nativoEventos reais de tarefas/aprovações; política continua no IVOAI
Ferramentas e workersRegistro de tarefas e streamingCorrelação, dependências DAG, duração real e atividade limitada
Contexto e quotaObservações parciais dos provedoresLeitura em cache; ausência ou desatualização nunca equivale a zero
PerfisConfiguração avançada manualSete perfis permitidos; prévia, confirmação, restauração e personalização
Inferência ClaudeAdaptador suportadoSomente fixtures nesta rodada; validação real depende de assinatura disponível