feat(installer): --preset, --with/--without-gateway, 3-way onboard prompt#6385
Open
singlerider wants to merge 4 commits intozeroclaw-labs:masterfrom
Open
feat(installer): --preset, --with/--without-gateway, 3-way onboard prompt#6385singlerider wants to merge 4 commits intozeroclaw-labs:masterfrom
singlerider wants to merge 4 commits intozeroclaw-labs:masterfrom
Conversation
Three additive changes per zeroclaw-labs#6292: 1. `--preset minimal|full` named alias for the existing `--minimal` and default-features paths. `--minimal` is preserved as a back-compat alias for `--preset minimal`. 2. `--with-gateway` / `--without-gateway` toggles to override the preset/feature default for the gateway feature specifically. 3. 3-way post-install onboarding prompt replaces the unconditional `zeroclaw onboard` launch. Operators choose CLI/TUI, gateway in browser, or skip. Non-TTY runs (CI, piped install) auto-skip silently as before. Scoped TODOs not in this commit (intentionally separate work): - TTY-detected interactive feature picker (spacebar selection) when no flags are passed. - Source-build web/dist handling (cargo web build invocation tied to --with-gateway). The pre-built path already installs web/dist correctly; the source path is the gap. - Wiring `--with-gateway` / `--without-gateway` into the actual CARGO_FLAGS string. Right now the variable is captured but the feature derivation still flows through --features / preset only. Refs zeroclaw-labs#6292.
… reads Three correctness fixes on top of the earlier installer scaffold: * `--with-gateway` and `--without-gateway` were parsed and documented in --help but the resulting WITH_GATEWAY variable was never read. The flags were a no-op. Now `--without-gateway` switches to --no-default-features and re-adds the rest of the default set (`agent-runtime,acp-bridge,tui-onboarding,observability-prometheus, schema-export`); `--with-gateway` is a no-op when defaults are on (gateway is already there) and adds `gateway` to the explicit feature list when --minimal/--no-default-features is in play. * All four `read` calls now pass `-r`, so backslashes in operator responses are no longer mangled. Was failing shellcheck SC2162. * The 3-way onboard prompt comment described an "auto-launch CLI onboard if onboarding is not needed (status check would say already onboarded)" path that does not exist in the script. Replaced with a comment that matches what the code actually does. Refs zeroclaw-labs#6292
… source on --without-gateway/--preset full Hardcoded DEFAULT_FEATURES_NO_GATEWAY duplicated Cargo.toml's default = [...]. Replace it with a runtime filter over $DEFAULT_FEATURES (already parsed by parse_cargo_toml), keeping only the literal 'gateway' check. Also extend the source-implication block: --without-gateway and --preset full must force a source build. Prebuilt binaries always ship with default features, so without this the flags were silently dropped on the prebuilt path (e.g. --dry-run --without-gateway in non-TTY would describe a download with gateway included).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Three-part installer.sh overhaul:
--preset minimal|fullnamed alias on top of the existing--minimaland default-features paths.--minimalpreserved as a back-compat alias for--preset minimal.--with-gateway/--without-gatewaytoggles override the preset / feature default for the gateway specifically.--without-gatewayswitches to--no-default-featuresand re-adds the rest of the default set;--with-gatewayis a no-op when defaults are on (gateway is already there) and addsgatewayto the explicit feature list when--no-default-featuresis in play.zeroclaw onboardlaunch. Operators choose CLI/TUI, gateway in browser, or skip. Non-TTY runs (CI, piped install) auto-skip silently.All four
readinvocations now pass-rso backslashes in operator responses are not mangled (shellcheck SC2162).Closes #6292
Validation Evidence
All four dry-runs print the expected
cargo install --path . --locked --force [...]invocation:--minimal --with-gateway:--no-default-features --features gateway--without-gateway:--no-default-features --features acp-bridge,agent-runtime,observability-prometheus,schema-export,tui-onboarding--with-gateway(defaults on): no extra flags--preset minimal --with-gateway:--no-default-features --features gatewaySecurity & Privacy Impact
zeroclaw onboardandzeroclaw daemonbinaries the previous flow already invoked.Compatibility
--minimalbecomes equivalent to--preset minimal. Thezeroclaw onboarddefault at choice [1] (also bare-Enter) preserves the previous unconditional behaviour.Rollback
git revert <merge-sha>. Single-file change. Operators who do not want the new prompt continue to pass--skip-onboard.