fix(installer): install maestro-relay CLI shim on PATH#43
Conversation
The curl-pipe installer was only symlinking the *-ctl service wrappers, leaving the user-facing CLI (`maestro-relay send …`) unreachable on a fresh install — even though README and CLAUDE.md document it as the agent → chat entrypoint. `npm install -g` would publish the package.json `bin` entries, but tarball-based installs skip that path. Wire the shim ourselves in install.sh: chmod +x the dist/cli entrypoint (which already declares `#!/usr/bin/env node`) and symlink `maestro-relay`, `maestro-bridge`, and `maestro-discord` into BIN_DIR. Fixes #42. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Warning Review limit reached
More reviews will be available in 20 minutes and 54 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (7)
📝 WalkthroughWalkthroughThe installer now creates executable symlinks for the ChangesCLI Installation
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
The direction here conflicts with the current naming decision: we only want This PR adds or continues support for legacy control aliases in the wrong direction:
I think we should tighten this instead:
Separate question: the agent-facing chat CLI ( |
Chris flagged on PR #43 that maestro-relay-ctl is the single supported control entrypoint; the maestro-bridge-ctl and maestro-discord-ctl aliases should not be provisioned or documented. - install.sh: stop creating the *-ctl alias symlinks; scrub any leftover ones on upgrade, mirroring the existing systemd/launchd legacy-unit cleanup pattern - bin/maestro-relay-ctl.sh: drop the "(Aliases: …)" line from usage() (uninstall still removes leftover *-ctl symlinks) - README.md: drop the "legacy aliases still work" sentence The maestro-bridge / maestro-discord non-ctl shims on the agent-facing CLI side are left alone for now; that direction is still open per the review comment. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Per Chris's follow-up on PR #43: only maestro-relay remains; the non-ctl shims are dropped to complete the rename started by the previous *-ctl cleanup. - install.sh: install_cli() symlinks only maestro-relay and scrubs leftover maestro-bridge / maestro-discord symlinks on upgrade - package.json: drop maestro-bridge / maestro-discord from bin and scripts (package-lock.json regenerated) - src/cli/maestro-relay.ts: remove the "Aliases: …" line from ROOT_USAGE - bin/maestro-relay-ctl.sh::cmd_uninstall: also rm -f the legacy maestro-bridge / maestro-discord shims (plus the new maestro-relay shim) so uninstall leaves no stale binaries - README.md, AGENTS.md (CLAUDE.md symlink), docs/api.md: drop "alias preserved for back-compat" mentions; migration note now points callers at maestro-relay Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Summary
Fixes #42. The curl-pipe installer was only symlinking the
*-ctlservice wrappers, so the user-facingmaestro-relay send …CLI was missing fromPATHon a fresh install — even though README andCLAUDE.mddocument it as the agent → chat entrypoint. Thebinentries inpackage.jsononly materialize vianpm install -g/npm link, not the tarball-based curl installer.This PR adds a new
install_clistep toinstall.shthat:chmod +x'sdist/cli/maestro-relay.js(which already declares#!/usr/bin/env node)maestro-relay,maestro-bridge, andmaestro-discordfrom$BIN_DIRto that entrypointThe path table in the README gains a row for the new binary.
Test plan
bash -n install.sh— syntactically validinstall_cli()in a temp dir: all three shims (maestro-relay,maestro-bridge,maestro-discord) executed and forwardedargvcorrectlyinstall_clicorrectlydies withCLI entrypoint missing at …npm run buildproducesdist/cli/maestro-relay.jswith the expected#!/usr/bin/env nodeshebangnpm test— 211/211 tests passmaestro-relayonPATH🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Documentation
Chores