Skip to content

fix(install.sh): comprehensive UX polish for installer output#1551

Merged
hijzy merged 1 commit into
MemTensor:mem-agent-0424from
hijzy:fix/install-sh-ux-polish
Apr 27, 2026
Merged

fix(install.sh): comprehensive UX polish for installer output#1551
hijzy merged 1 commit into
MemTensor:mem-agent-0424from
hijzy:fix/install-sh-ux-polish

Conversation

@hijzy
Copy link
Copy Markdown
Collaborator

@hijzy hijzy commented Apr 27, 2026

Summary

  • Fix box alignment: emoji (🧠, ✨) occupy 2 display columns — standardize all boxes to 50-col interior with manual padding so right aligns correctly
  • Fix "Terminated: 15" noise: use disown for background smoke-test processes so bash doesn't print job-control messages on kill
  • Fix ANSI escape codes leaking: switch printf from %s to %b so embedded \033[… sequences render as colors instead of literal text
  • Suppress npm postinstall noise: redirect npm install output to avoid > node scripts/postinstall.cjs and up to date in 12s cluttering the install log
  • Add step numbering: [1] [2] [3]… progress indicators make the install flow easy to follow
  • Viewer readiness spinner: replace premature lsof shortcut with actual HTTP check (curl) + spinner with elapsed timer — prevents "installed successfully" when viewer isn't actually ready yet
  • Handle launchctl conflict: when macOS KeepAlive auto-restarts the gateway after openclaw gateway stop, detect the already-running gateway instead of reporting a false error
  • Free stale Hermes port: proactively kill leftover processes on :18800 before smoke test to avoid "port already in use" skip
  • Improve interactive picker: [] brackets, emoji per option (🦞 OpenClaw, 👩 Hermes, 📦 Both), right-aligned option keys
  • Rename banner: 🧠 MemOS Local Plugin Installer
  • Consolidate warnings: better-sqlite3 Node 25+ warning reduced from 4 lines to 1 + tip

Test plan

  • Run bash install.sh --version 2.0.0-beta.1 with both OpenClaw and Hermes installed
  • Verify box borders align in terminal (banner, headers, success/error boxes)
  • Verify no "Terminated" messages or raw \033[ codes in output
  • Verify viewer spinner waits for actual HTTP readiness
  • Test interactive picker in TTY mode (options display correctly)
  • Test non-interactive mode via pipe (curl ... | bash -s -- --version ...)

- Fix box-drawing alignment: emoji (🧠, ✨) occupy 2 display columns,
  standardize all boxes to 50-col interior width with manual padding
- Fix "Terminated: 15" noise from background process kills by using
  disown before kill
- Fix ANSI escape codes leaking in output by switching printf from
  %s to %b format specifier
- Suppress npm postinstall noise by redirecting stdout/stderr
- Add numbered step indicators ([1] [2] [3]...) for install progress
- Add spinner with elapsed time for viewer readiness check, remove
  premature lsof shortcut that returned before HTTP was actually ready
- Gracefully handle launchctl kickstart conflict when macOS launchd
  KeepAlive auto-restarts the gateway after stop
- Proactively free Hermes port before smoke test to avoid stale
  process conflicts from OpenClaw gateway reload
- Improve interactive picker with [] brackets and emoji per option,
  right-align option keys
- Rename banner to "MemOS Local Plugin Installer"
- Consolidate better-sqlite3 warning from 4 lines to 1 line + tip
@hijzy hijzy merged commit 9d23d8d into MemTensor:mem-agent-0424 Apr 27, 2026
@hijzy hijzy deleted the fix/install-sh-ux-polish branch April 27, 2026 12:59
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