Skip to content

Let users install simbroker without building the macOS app - #4

Merged
VladimirBrejcha merged 1 commit into
mainfrom
cli/cli-only-install
Aug 18, 2026
Merged

Let users install simbroker without building the macOS app#4
VladimirBrejcha merged 1 commit into
mainfrom
cli/cli-only-install

Conversation

@VladimirBrejcha

Copy link
Copy Markdown
Contributor

Step 3 of the public onboarding sequence. A stranger can install only the CLI, keep simbroker on PATH in a new login shell, and see an honest warning before host init --bootstrap-config creates real Simulator devices.

Why

The only install path built the macOS app through XcodeGen and left simbroker off PATH unless the user sourced env.sh.

What changed

  • bash scripts/install_local.sh --cli-only copies the Node runtime and writes simbroker without XcodeGen or xcodebuild.
  • npm run install:local still builds and installs the app plus CLI.
  • PATH persist: Homebrew prefix bin when that is the install location, otherwise one guarded login-profile snippet for the default user bin directory. --profile keeps tests off the operator login rc. Custom isolated bin dirs do not edit a login profile unless --profile is set.
  • CLI-only installs to a custom prefix do not rewrite the default install metadata.
  • simbroker host init --bootstrap-config warns that it creates real iOS Simulator devices before those devices are created.
  • Newcomer README / getting-started Use-it box now starts with the CLI-only path.

Out of scope

CONTRIBUTING split, GitHub Releases, public test CI, issue/PR templates, Homebrew formula/cask, npm publish.

Verification

  • Isolated install_local.sh --cli-only twice: exit 0, no XcodeGen/xcodebuild, executable simbroker.
  • Installed simbroker --help twice: human usage.
  • Isolated --profile persist twice: one guarded snippet.
  • Isolated host init --bootstrap-config: warning before create.
  • npm run test:client passed (177 tests).
  • agent:verify spec-only passed.
  • agent:verify implementation passed (npm test including app suite).
  • agent:complete passed for task-sessions/20260818-cli-only-install.

Why:
The only install path built the macOS app through XcodeGen and left
simbroker off PATH unless the user sourced env.sh. A stranger could
not try the CLI without a full app build.

Changed:
Add install_local.sh --cli-only so the shipped installer copies the
Node runtime and writes simbroker without XcodeGen or xcodebuild.
Persist PATH through Homebrew prefix bin when that is the install
location, or one guarded login-profile snippet for the default user
bin directory. --profile keeps tests off the operator login rc.
host init --bootstrap-config warns that it creates real Simulator
devices before those devices are created. Tests drive the shipped
scripts and CLI on isolated prefixes.

Verification:
npm run test:client
npm run agent:verify -- --profile spec-only --paths scripts/install_local.sh,scripts/install_distribution.sh,broker-core/index.mjs,broker-core/test/broker-core.test.mjs,client/bin/simbroker.mjs,client/command-dispatch.mjs,client/test/install-distribution.test.mjs,client/test/simbroker.test.mjs,client/README.md,README.md,docs/getting-started.md,docs/status.md,docs/test/front-door.test.mjs,spec/README.md,spec/architecture.md,spec/build-and-test.md,spec/implementation-plan.md,spec/project-structure.md,spec/global-simulator-broker.md,spec/harness-integration.md --session-dir task-sessions/20260818-cli-only-install
npm run agent:verify -- --profile implementation --paths scripts/install_local.sh,scripts/install_distribution.sh,broker-core/index.mjs,broker-core/test/broker-core.test.mjs,client/bin/simbroker.mjs,client/command-dispatch.mjs,client/test/install-distribution.test.mjs,client/test/simbroker.test.mjs,client/README.md,README.md,docs/getting-started.md,docs/status.md,docs/test/front-door.test.mjs,spec/README.md,spec/architecture.md,spec/build-and-test.md,spec/implementation-plan.md,spec/project-structure.md,spec/global-simulator-broker.md,spec/harness-integration.md --session-dir task-sessions/20260818-cli-only-install

Affected:
scripts/install_local.sh
scripts/install_distribution.sh
broker-core/index.mjs
broker-core/test/broker-core.test.mjs
client/bin/simbroker.mjs
client/command-dispatch.mjs
client/test/install-distribution.test.mjs
client/test/simbroker.test.mjs
client/README.md
README.md
docs/getting-started.md
docs/status.md
docs/test/front-door.test.mjs
spec/README.md
spec/architecture.md
spec/build-and-test.md
spec/global-simulator-broker.md
spec/harness-integration.md
spec/implementation-plan.md
spec/project-structure.md

Refs:
https://github.com/fiveonecode/simulator-broker
spec/build-and-test.md

Session:
task-sessions/20260818-cli-only-install
@VladimirBrejcha
VladimirBrejcha merged commit 162fb35 into main Aug 18, 2026
1 check failed
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