Conversation
macOS $TMPDIR resolves to /var/folders/xx/<random>/T/ where the hash changes after each reboot, making SSH_AUTH_SOCK in shell profiles break. Switch to ~/Library/Caches/bwssh which is the macOS equivalent of Linux's $XDG_RUNTIME_DIR — stable, per-user, and not backed up by Time Machine. https://claude.ai/code/session_01DcH3AgbT2qn854whDedajU
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Changes the macOS runtime directory for bwssh from
$TMPDIRto~/Library/Caches/bwssh, which is stable across reboots and aligns with macOS conventions.Key Changes
get_runtime_dir()to return~/Library/Caches/bwsshinstead of using$TMPDIRor falling back to/tmp/bwssh-$UID. Added documentation explaining this is the macOS equivalent of Linux's$XDG_RUNTIME_DIR.$TMPDIRenvironment variable mocking and asserting the path matches~/Library/Caches/bwssh.Implementation Details
The previous implementation relied on
$TMPDIR, which on macOS points to/var/folders/…/T/and changes after each reboot. This caused issues with persistent socket paths. The new implementation uses~/Library/Caches/, which is the standard macOS location for application cache data and remains stable across reboots, making it suitable for long-lived socket files.https://claude.ai/code/session_01DcH3AgbT2qn854whDedajU