The host-side port mapping and seccomp compatibility-mode selections
were only used in-memory for docker run args and never written to
config.toml, so a re-run of the installer couldn't recover them as
form defaults (worse, the host port field silently defaulted to the
container's internal port). Add host_port and seccomp_unconfined to
[server] and decode them back via AppConfig.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Drop the hardcoded dummy fallback for Certificates.DirPath in loadConfig
so the field shows its placeholder instead of a pre-filled value, matching
the DB URL and central server URL fields. An existing config.toml still
seeds it on re-run.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Drop the hardcoded dummy fallbacks for Database.URL and
Application.CentralServerURL in loadConfig so these inputs display their
placeholder instead of a pre-filled value. An existing config.toml still
seeds them on re-run via the decode, so real defaults are preserved.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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>
The container always listens on 8080 internally while the user-provided
port is only the host-side mapping. Make this explicit without changing
behavior or the generated config:
- add a named containerAppPort constant and use it in both the docker -p
mapping and the config.toml generation (was a bare 8080 literal in two
places)
- document why config.toml hardcodes the port, so it isn't "fixed" back
to the form value
- relabel the form field to "Porta (host)"
The generated config.toml is byte-identical (port = 8080).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>