install: add one-line bootstrap setup#22
install: add one-line bootstrap setup#22fuller-stack-dev wants to merge 1 commit intoxDarkicex:mainfrom
Conversation
Collapse the supported Homebrew flow into a single installer script and document that plugin install now auto-selects the dual memory/context-engine slots. This removes the stale manual config step from the primary install path.
📝 WalkthroughWalkthroughInstallation documentation and a new bootstrap script are introduced to simplify the setup process. The changes consolidate multi-step Homebrew installation flows into a single remote Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (3)
install.sh (3)
33-37: Potential race condition between service start and plugin use.
brew services startreturns immediately after requesting the service to start, but the daemon may not be fully ready to accept RPC connections when the plugin installation begins. Ifopenclaw plugins installor subsequent commands attempt to communicate with the daemon before it's listening, they may fail transiently.Consider adding a brief poll or sleep to ensure the daemon is ready:
🔧 Suggested wait-for-ready loop
info "Starting the ${FORMULA_NAME} service..." brew services start "${FORMULA_NAME}" + +info "Waiting for ${FORMULA_NAME} to become ready..." +for i in {1..10}; do + if openclaw memory status >/dev/null 2>&1; then + break + fi + sleep 1 +done info "Installing the OpenClaw plugin and selecting its slots..." openclaw plugins install "${PLUGIN_SPEC}"🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@install.sh` around lines 33 - 37, There is a race between calling brew services start "${FORMULA_NAME}" and immediately invoking openclaw plugins install "${PLUGIN_SPEC}"; add a wait-for-ready loop after the brew services start that polls the daemon until it accepts connections (for example by retrying a lightweight CLI check like openclaw status or attempting the daemon TCP port) with a short sleep/backoff and an overall timeout, then proceed to run openclaw plugins install once the check succeeds to avoid transient failures.
14-17: Consider quoting color codes to avoid interpretation issues in some shells.The color escape sequences work in most environments, but using
$'...'syntax or quoting can prevent edge-case issues with certain terminal configurations.✨ Optional: Use $'...' syntax for robustness
-info() { printf "${CYAN}[install]${NC} %s\n" "$*"; } -ok() { printf "${GREEN}[install]${NC} %s\n" "$*"; } -warn() { printf "${YELLOW}[install]${NC} %s\n" "$*" >&2; } -die() { printf "${RED}[install]${NC} %s\n" "$*" >&2; exit 1; } +info() { printf '%b[install]%b %s\n' "${CYAN}" "${NC}" "$*"; } +ok() { printf '%b[install]%b %s\n' "${GREEN}" "${NC}" "$*"; } +warn() { printf '%b[install]%b %s\n' "${YELLOW}" "${NC}" "$*" >&2; } +die() { printf '%b[install]%b %s\n' "${RED}" "${NC}" "$*" >&2; exit 1; }🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@install.sh` around lines 14 - 17, The color escape variables used in the printing helpers (info, ok, warn, die) should be quoted to avoid shell interpretation issues; update the printf format strings to use quoted or $'...'-style strings for the color codes (the CYAN, GREEN, YELLOW, RED and NC usages) inside info, ok, warn, and die so escape sequences are preserved reliably across shells, e.g., change the printf format arguments to use quoted escape sequences rather than unquoted interpolation.
46-52: Consider distinguishing between "not ready yet" and actual failures.The current message "Verification did not pass yet" is appropriate for timing issues, but
openclaw memory statuscan also fail due to misconfigurations (wrong endpoint, plugin not loaded). The follow-up advice to "start or restart" the gateway may not address all failure modes.📝 Optional: More specific failure guidance
info "Verifying memory status..." if openclaw memory status; then ok "LibraVDB Memory is installed and ready." else warn "Verification did not pass yet." - warn "If the gateway was not running, start or restart it, then rerun: openclaw memory status" + warn "Possible causes: gateway not running, daemon still starting, or plugin not loaded." + warn "Try: openclaw gateway restart && sleep 2 && openclaw memory status" fi🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@install.sh` around lines 46 - 52, The "openclaw memory status" block should distinguish transient "not ready yet" from real failures: capture the command's exit status and stderr/stdout when running openclaw memory status, and branch on known failure patterns (e.g., connection refused, endpoint misconfigured, plugin not loaded) versus a non-ready state; update the messages in the else branch (the warn calls) to show the captured error details and offer specific next steps (e.g., check gateway endpoint, ensure plugin is loaded, inspect logs) rather than always suggesting only "start or restart" the gateway; reference the existing invocation openclaw memory status and the warn/ok messages to locate where to add the output capture and conditional messaging.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@install.sh`:
- Around line 33-37: There is a race between calling brew services start
"${FORMULA_NAME}" and immediately invoking openclaw plugins install
"${PLUGIN_SPEC}"; add a wait-for-ready loop after the brew services start that
polls the daemon until it accepts connections (for example by retrying a
lightweight CLI check like openclaw status or attempting the daemon TCP port)
with a short sleep/backoff and an overall timeout, then proceed to run openclaw
plugins install once the check succeeds to avoid transient failures.
- Around line 14-17: The color escape variables used in the printing helpers
(info, ok, warn, die) should be quoted to avoid shell interpretation issues;
update the printf format strings to use quoted or $'...'-style strings for the
color codes (the CYAN, GREEN, YELLOW, RED and NC usages) inside info, ok, warn,
and die so escape sequences are preserved reliably across shells, e.g., change
the printf format arguments to use quoted escape sequences rather than unquoted
interpolation.
- Around line 46-52: The "openclaw memory status" block should distinguish
transient "not ready yet" from real failures: capture the command's exit status
and stderr/stdout when running openclaw memory status, and branch on known
failure patterns (e.g., connection refused, endpoint misconfigured, plugin not
loaded) versus a non-ready state; update the messages in the else branch (the
warn calls) to show the captured error details and offer specific next steps
(e.g., check gateway endpoint, ensure plugin is loaded, inspect logs) rather
than always suggesting only "start or restart" the gateway; reference the
existing invocation openclaw memory status and the warn/ok messages to locate
where to add the output capture and conditional messaging.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 66703d8a-bbe8-47c9-8248-58b054aaa54b
📒 Files selected for processing (4)
README.mddocs/install.mddocs/installation.mdinstall.sh
Summary
install.shbootstrap so users can set up LibraVDB Memory with a singlecurl ... | bashcommandopenclaw gateway restartin the manual flowopenclaw plugins install @xdarkicex/openclaw-memory-libravdbnow auto-selects the dual memory/context-engine slots on supported OpenClaw buildsTesting
bash -n install.shbash -lc 'brew(){ printf \"brew %s\\n\" \"$*\"; }; openclaw(){ case \"$1 ${2-}\" in \"health \") return 0 ;; \"gateway restart\") printf \"openclaw gateway restart\\n\" ;; \"memory status\") printf \"openclaw memory status\\n\" ;; *) printf \"openclaw %s\\n\" \"$*\" ;; esac; }; export -f brew openclaw; ./install.sh'bash -lc 'brew(){ printf \"brew %s\\n\" \"$*\"; }; openclaw(){ case \"$1 ${2-}\" in \"health \") return 1 ;; \"memory status\") return 1 ;; *) printf \"openclaw %s\\n\" \"$*\" ;; esac; }; export -f brew openclaw; ./install.sh'pnpm check(currently fails on the existing repo issuescripts/setup.ts(11,31): Could not find a declaration file for module './child-env.js'; unrelated to this PR)Summary by CodeRabbit
New Features
Documentation