Adds a StepRunUpdater step that starts app-dono-updater after the app
container comes up: a poll loop (docker pull, compare image IDs,
recreate on change) baked into the official docker:cli image via
`sh -c`, reusing the same docker run argv as the initial container
start so the two can't drift.
Not built on Watchtower: containrrr/watchtower was archived upstream
in Dec 2025 with no maintained successor recommended for production
use, so this avoids taking on that dependency.
bubbles/v2 textinput truncates the placeholder to its first rune when the
input width is 0 (the default): it sizes the placeholder buffer to
Width()+1 and early-returns after the first character. Set a non-zero
width on every text input (defaultInputWidth) and resize inputs
responsively to the terminal on WindowSizeMsg via FormStep.SetWidth, so
placeholders render in full and inputs fill the available width.
Adds a regression test asserting the placeholder renders past its first
rune.
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>
DownloadImageCmd and DownloadWireguardImageCmd were identical except for
the image URL. Collapse them into one DownloadImageCmd that takes the
image as a parameter, passing imageName/wireguardImageName at the call
sites.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>