Skip to content

fix(pulse): create ~/Library/LaunchAgents before writing launchd plist#1310

Closed
stevetr68 wants to merge 1 commit into
danielmiessler:mainfrom
stevetr68:fix/pulse-manage-launchagents-mkdir
Closed

fix(pulse): create ~/Library/LaunchAgents before writing launchd plist#1310
stevetr68 wants to merge 1 commit into
danielmiessler:mainfrom
stevetr68:fix/pulse-manage-launchagents-mkdir

Conversation

@stevetr68

Copy link
Copy Markdown

Problem

PULSE/manage.sh install writes the launchd plist to $HOME/Library/LaunchAgents/:

PLIST_DST="$HOME/Library/LaunchAgents/$PLIST_NAME.plist"
...
sed -e "s|__HOME__|$HOME|g" -e "s|__BUN_PATH__|$BUN_PATH|g" "$PLIST_SRC" > "$PLIST_DST"

…but the install) case only creates state/ and logs/:

mkdir -p "$PULSE_DIR/state" "$PULSE_DIR/logs"

On a fresh macOS user account, ~/Library/LaunchAgents/ does not exist until something
creates it. When it's missing, the > "$PLIST_DST" redirect fails with
No such file or directory, the install aborts, and the user sees a confusing
port 31337 did not bind error with no obvious cause.

Fix

Add "$HOME/Library/LaunchAgents" to the existing mkdir -p. One-line, idempotent,
no behavior change on accounts where the directory already exists.

-    mkdir -p "$PULSE_DIR/state" "$PULSE_DIR/logs"
+    mkdir -p "$PULSE_DIR/state" "$PULSE_DIR/logs" "$HOME/Library/LaunchAgents"

Hit this on a fresh-account PAI 5 install; this exact patch has been running locally
since. Related to the opaque-install-failure reports.

@danielmiessler

Copy link
Copy Markdown
Owner

Hey @stevetr68, thanks for raising this, and sorry it sat for a while.

We're changing how LifeOS ships. Instead of cloning a full ~/.claude directory and running it as a complete system, LifeOS is becoming a skill you install through an agentic installer. The installer hands integration to your own AI, which reads your actual machine (your OS, your paths, your harness) and wires the hooks and system prompt in where they belong.

That's aimed right at what you hit here. The old "one directory, one layout, hope it matches your setup" approach is exactly what broke for so many people, and the new model should handle it far better because your AI does the integration per machine instead of us guessing.

So we're closing this in prep for that release. If it still bites you once the skill-based version is out, reopen or file a fresh one and we'll jump on it. Appreciate you taking the time.

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.

2 participants