`entire` hangs in `_dyld_start` when `syspolicyd` is wedged, blocking Claude Code session-start hooks
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 5.1k
- Forks
- 475
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 178
Description
Summary
On macOS 26.3.1, every entire subcommand (including entire --version) can hang indefinitely if the system's syspolicyd is in a bad state. This silently blocks Claude Code's SessionStart hook, which in turn blocks Claude Code from starting in any repo where entire hooks claude-code session-start is wired in.
Mechanically this is a macOS bug, not a CLI bug — but the impact for entire users is severe (Claude Code becomes unusable across every enabled repo), and the workaround documented in #380 (xattr -d com.apple.provenance) no longer works on macOS 14+ because that attribute is now SIP-protected.
Environment
- macOS 26.3.1 (25D2128), arm64
- entire 0.5.6 (c9fedb4b), installed via
brew install --cask entire - Standard
SessionStarthook callingentire hooks claude-code session-start
Symptom
- Claude Code hangs silently at session start
entire --versionfrom any shell hangs indefinitely- Stale
entireprocesses accumulate (in my case, 8 of them, oldest 18+ hours old, all in stateSwith 0% CPU) sample <pid>shows every one stuck in_dyld_start— the binary never reachesmain()
Root cause
syspolicyd was wedged. PID had been alive for 42 days, 4 hours.
Kernel:
kernel: (AppleSystemPolicy) ASP: Security policy would not allow process: <pid>, /opt/homebrew/Caskroom/entire/0.5.6/entire
syspolicyd looping:
syspolicyd: [com.apple.syspolicy.exec:default] Unable to initialize qtn_proc: 3
syspolicyd: [com.apple.syspolicy.exec:default] dispatch_mig_server returned 268435459
When syspolicyd can't init the quarantine subsystem, dyld stalls every new process that triggers a policy check.
Fix
sudo kill <syspolicyd-pid> # launchd respawns it within ~1s
launchctl kickstart -k system/com.apple.security.syspolicy does not work — SIP blocks it (150: Operation not permitted while System Integrity Protection is engaged). kill does work because SIP doesn't restrict signaling root processes.
Suggested CLI improvements
- Self-imposed timeout in hook entry points.
entire hooks claude-code session-startshould bound itself to ~5s. A wedgedsyspolicydcurrently cascades into permanently broken Claude Code sessions; a timeout + stderr would degrade gracefully. - Update troubleshooting docs. The
xattr -d com.apple.provenanceadvice from #380 doesn't work on current macOS. Include thesyspolicyddiagnostic (kernel log signature +kill <pid>). entire doctorhealth probe. Attempt a self-launch with a short timeout; if it hangs, surface the kernel log signature so users can diagnose this in minutes instead of hours.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the entire hooks claude-code session-start entry point and reproduce the hang described for macOS 26.3.1 with a wedged syspolicyd. Compare the three suggested directions—hook timeout, troubleshooting documentation, and an entire doctor health probe—and define which scope is intended. Done means the selected path degrades gracefully or guides diagnosis without blocking Claude Code startup.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100