[BUG] CLI tool symlink disappears from ~/.local/bin/ after reboot (Claude Code)
bug
### New Issue Checklist
- [x] I updated Pearcleaner to the latest version and still observe the issue
- [x] I searched for [existing GitHub issues](https://github.com/alienator88/pearcleaner/issues)
- [x] OS Version: 27.0
- [x] Pearcleaner Version: 5.4.3
---
### Issue:
CLI tool symlink disappears from `~/.local/bin/` after reboot (Claude Code)
**Confirmed facts:**
- Installed Claude Code via `curl -fsSL https://claude.ai/install.sh | bash`
- Symlink `~/.local/bin/claude -> ~/.local/share/claude/versions/2.1.177` was present right after installation
- After rebooting, the symlink was gone — the `claude` command became unavailable
- The binary `~/.local/share/claude/versions/2.1.177` (225MB, Mach-O arm64) still exists
- Other symlinks in the same directory (`openclaw`, `claudeline`) were **not** removed — only `claude` was
- Prior to this issue, a Claude Code update was interrupted mid-installation
**Suspected cause (uncertain; no logs to confirm):**
- Pearcleaner Sentinel is running persistently in the background (`settings.sentinel.enable = true`, process `PearcleanerSentinel` started at boot)
- Claude Code is installed via a shell script (no .app bundle, no standard installation record). Its symlink may be misidentified as an orphaned leftover by Sentinel
- However, there are no logs or audit records proving Sentinel deleted the symlink
**Request:**
- Add an exclude-list feature for Sentinel, or make it ignore symlinks pointing to existing valid binaries
- Any suggestions on how to trace what deleted a file on macOS?
#### Steps:
1. Install Claude Code: `curl -fsSL https://claude.ai/install.sh | bash`
2. Confirm symlink exists: `ls -la ~/.local/bin/claude`
3. Reboot the system
4. After reboot, run `ls -la ~/.local/bin/claude` — the symlink is gone
5. The binary is still at `~/.local/share/claude/versions/2.1.177` — only the symlink was removed
#### Screenshots:
N/A
#### Debug Console
<pre>No logs captured. CMD+D debug console shows no relevant output.</pre>
#### Console Logs
<pre>
log stream --predicate 'subsystem == "com.alienator88.Pearcleaner"' returns no output (both with and without --debug flag).
Sentinel's launch agent (com.alienator88.PearcleanerSentinel.plist) does not configure StdoutPath/StderrPath, and the binary strings contain no os_log-related code — Sentinel appears to not emit any logs.
UndoHistory.json has no record of the deleted symlink.
macOS unified log shows no events matching "claude", "symlink", or file-deletion patterns.
Therefore, it's impossible to confirm from logs which process deleted the symlink.
</pre>
0 条评论