{"version":"2.1.232","anchor":"cross-session-messaging-refuses-unsafe-socket-directories","canonical_anchor":"cross-session-messaging-refuses-unsafe-socket-directories","heading":"Cross-session messaging refuses unsafe socket directories","tier":"notice","area":"Cross-Session Messaging","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.232\/e\/cross-session-messaging-refuses-unsafe-socket-directories","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.232","markdown":"### Cross-session messaging refuses unsafe socket directories\n\nIf the socket directory for session-to-session messaging looks unsafe, messaging is turned off with a fix hint.\n\n**What**\n\nBefore creating the local socket directory that lets sessions talk to each other, Claude Code now inspects every component of that path and refuses to bind if it looks unsafe. When it refuses, cross-session messaging is simply off for that session rather than binding anyway, and you get a specific remediation hint.\n\n**Details**\n\n- Rejected: symlinks owned by another user, path components that are not directories, world- or group-writable directories without the sticky bit, symlink chains deeper than 16 levels, and dangling links.\n- Each refusal is classified (`directory_rule`, `foreign_owner`, `leaf_shape`, `raced`, `symlink_loop`, and others) and the session records the cause `socket_dir_refused` and logs at error level.\n- The directory is created with mode 0700 and chmod'ed back to 0700 if found otherwise.\n- The suggested fix is to point `XDG_RUNTIME_DIR` or `CLAUDE_CODE_TMPDIR` at a private directory you own.\n\n**Evidence**\n\n`Point XDG_RUNTIME_DIR or CLAUDE_CODE_TMPDIR at a private (0700) directory you own to use a different location.`\n\n- Area: Cross-Session Messaging\n- Tier: You'll notice\n- Useful: 3\/5\n- Signal: 3\/5"}