Skip to content

feat(setup): customize step at the Apply? prompt - #1

Merged
antomanc merged 1 commit into
mainfrom
feat/setup-customize
Oct 10, 2026
Merged

antomanc merged 1 commit into
mainfrom
feat/setup-customize

Conversation

@antomanc

Copy link
Copy Markdown
Owner

agbox setup now asks Apply? [Y]es / [n]o / [c]ustomize. Choosing customize runs a short wizard over the settings that vary between machines:

  • profile (homelab / vps)
  • agents, plus agent mode when any agents are selected
  • always-on services
  • components: Docker, Tailscale, Playwright, gh
  • user, hostname, timezone, git name and email

After the questions it lists the changes, reprints the plan and asks again.

Design

  • Answers are only --set overrides. They are reloaded through load_config, so profile layering, validation, --dry-run and save_config work unchanged, and nothing touches the system until the user answers yes.
  • Zero-config stays the default: Enter applies, and --yes, --dry-run and runs without a terminal never prompt.
  • Plain Bash with no dependencies. The prompts read the terminal through tty_read/tty_printf in lib/core.sh, and tests feed answers from a file with AGBOX_TTY.
  • The devtools plan line now matches the GH/PLAYWRIGHT toggles.

Tests: tests/wizard.bats covers the pure pick/toggle helpers, ask_apply, wizard answers, re-prompts, clearing and end of input. Two new CLI tests check the abort path and that customize updates the plan.

https://claude.ai/code/session_01LAwbf3NkNHZhz9kMSZZJMC

`agbox setup` now asks "Apply? [Y]es / [n]o / [c]ustomize". Customize asks
about the settings that vary from machine to machine (profile, agents,
agent mode, services, components, user, hostname, timezone, git identity),
then shows the updated plan and asks again.

Answers are applied as --set overrides and reloaded through load_config, so
profiles, validation, --dry-run and the saved config work unchanged. Runs
with --yes, --dry-run or no terminal are not affected. Prompts read the
terminal through tty_read/tty_printf; AGBOX_TTY lets tests supply answers
from a file.

Also: the devtools plan line lists gh and Playwright only when enabled, and
username/hostname validators are pure functions shared with the wizard.

Claude-Session: https://claude.ai/code/session_01LAwbf3NkNHZhz9kMSZZJMC
@antomanc
antomanc merged commit fe1663d into main Oct 10, 2026
5 checks passed
@antomanc
antomanc deleted the feat/setup-customize branch October 10, 2026 10:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant