Skip to content

fix: make beam installer and daemon launch portable - #14

Merged
ejgallego merged 1 commit into
mainfrom
fix/macos-daemon-startup
Mar 23, 2026
Merged

ejgallego merged 1 commit into
mainfrom
fix/macos-daemon-startup

Conversation

@ejgallego

Copy link
Copy Markdown
Collaborator

Summary

  • make plugin library naming platform-aware instead of hardcoding .so
  • replace install symlinks portably instead of relying on GNU mv -T
  • launch beam-daemon via IO.Process.spawn with direct pid capture, removing shell backgrounding via & echo $!
  • drop the rg dependency from tests/test-install.sh

Why

The macOS investigation surfaced a chain of portability bugs in the install/startup path:

  • plugin path assumptions were Linux-only
  • symlink replacement relied on GNU mv -T
  • daemon startup relied on sh -c '... & echo $!', which hung before pid capture / registry write on macOS

This PR keeps the fix surface targeted to those portability issues.

Validation

  • lake build beam-cli
  • bash scripts/lint-shell.sh
  • targeted stale-import repro with BEAM_REQUEST_ID=install-stale-sync returned syncBarrierIncomplete locally after the spawn-based launch change

@ejgallego
ejgallego force-pushed the fix/macos-daemon-startup branch from edc7913 to 2ea1907 Compare March 23, 2026 20:54
@ejgallego
ejgallego merged commit 542fbf0 into main Mar 23, 2026
8 checks passed
@ejgallego
ejgallego deleted the fix/macos-daemon-startup branch March 23, 2026 21:01
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