feat: add back navigation, review step, and error retry to TUI

Implements three UX improvements (TODO #1–#3):

- Back navigation: Esc returns to the previous input step. The Model keeps
  a history stack of input steps (advance/goBack helpers); action/wait
  steps are excluded via isInputStep so back never re-enters a
  side-effecting step. Form values are preserved.
- Review step (StepReview): shows all collected config for confirmation
  before any file is written; Enter installs, Esc edits.
- Retry vs. fix: transient failures (image pull, container run) offer
  "r: tentar novamente" instead of quitting; validation failures route
  back to the relevant form to correct the value.

Adds nav_test.go for the history/navigation logic and updates
README/CLAUDE/docs (incl. docs/TODO.md tracking the remaining ideas).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
jb
2026-06-19 12:19:49 -03:00
co-authored by Claude Opus 4.8
parent 3edfaa4ab2
commit 255b4cc299
9 changed files with 433 additions and 56 deletions
+20 -11
View File
@@ -17,15 +17,18 @@ os arquivos de configuração (`config.toml` e `envs`) e sobe os containers nece
## Sumário
- [O que ele faz](#o-que-ele-faz)
- [Pré-requisitos](#pré-requisitos)
- [Como usar](#como-usar)
- [Fluxo de instalação](#fluxo-de-instalação)
- [Conectividade: IP público vs. vproxy](#conectividade-ip-público-vs-vproxy)
- [Arquivos gerados](#arquivos-gerados)
- [Containers e rede Docker](#containers-e-rede-docker)
- [Build a partir do código](#build-a-partir-do-código)
- [Documentação adicional](#documentação-adicional)
- [App do Dono — Instalador Cliente (TUI)](#app-do-dono--instalador-cliente-tui)
- [Sumário](#sumário)
- [O que ele faz](#o-que-ele-faz)
- [Pré-requisitos](#pré-requisitos)
- [Como usar](#como-usar)
- [Navegação na interface](#navegação-na-interface)
- [Fluxo de instalação](#fluxo-de-instalação)
- [Conectividade: IP público vs. vproxy](#conectividade-ip-público-vs-vproxy)
- [Arquivos gerados](#arquivos-gerados)
- [Containers e rede Docker](#containers-e-rede-docker)
- [Build a partir do código](#build-a-partir-do-código)
- [Documentação adicional](#documentação-adicional)
---
@@ -80,6 +83,8 @@ go run ./cmd
| `Shift+Tab` / `↑` | Campo anterior |
| `←` / `→` | Alternar opção (campos de seleção) |
| `Enter` | Confirmar campo / avançar etapa |
| `Esc` | Voltar à etapa anterior |
| `r` | Tentar novamente (em telas de erro) |
| Qualquer tecla | Avançar em telas de status |
| `Ctrl+C` | Sair a qualquer momento |
@@ -111,11 +116,15 @@ go run ./cmd
│ │
▼ ▼
┌─────────────────────────────────────────┐
│ Config. Aplicação → Servidor → │
│ Banco de Dados → Certificados │
│ Config. Aplicação → Servidor → │
│ Banco de Dados → Certificados │
└────────────────────┬────────────────────┘
▼
┌──────────────────┐
│ Revisão (Review) │ ← esc volta para editar
└────────┬─────────┘
▼
┌──────────────────┐
│ Gera config.toml │
└────────┬─────────┘
▼