# Run development server
bin/dev
# Run tests
bundle exec rspec
# Run linting
bundle exec rubocop
# Auto-fix linting issues
bundle exec rubocop -aConductor runs commands in a non-interactive shell that doesn't source .zshrc. This means version manager shell hooks (like mise's PATH reordering based on .tool-versions) never run. Commands will use system Ruby/Node instead of project-specified versions.
Symptoms:
ruby --versionreturns system Ruby (e.g., 2.6.10) instead of project Ruby (e.g., 3.4.3)- Pre-commit hooks fail with wrong tool versions
bundlecommands fail due to incompatible Ruby versions- Node/pnpm commands use wrong Node version
Use the bin/conductor-exec wrapper to ensure commands run with correct tool versions:
# Instead of:
ruby --version
bundle exec rubocop
pnpm install
git commit -m "message"
# Use:
bin/conductor-exec ruby --version
bin/conductor-exec bundle exec rubocop
bin/conductor-exec pnpm install
bin/conductor-exec git commit -m "message" # Pre-commit hooks work correctlyThe wrapper:
- Uses
mise execwhen mise is available - Falls back to direct execution for non-mise users (asdf, rbenv, nvm, nodenv)
See react_on_rails-demos#105 for detailed problem analysis and solution development.