elevate: default socket to XDG_RUNTIME_DIR, add to sandbox env

Both x/elevate and elevate-adapter-superpowerd now default the socket
path to $XDG_RUNTIME_DIR/ollie/elevate.sock (falling back to
/run/user/<uid>/ollie/elevate.sock) when OLLIE_ELEVATE_SOCKET is unset.
Add OLLIE_ELEVATE_SOCKET to env sections of both sandbox configs.
Add {XDG_RUNTIME_DIR}/ollie to restricted sandbox filesystem rw rules
so x/elevate can reach the socket. Update README env block and
scripts/README socket path docs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Levi Neely 2026-04-25 11:43:24 +02:00
parent 7a88fb3437
commit 16d4fc57ff
6 changed files with 23 additions and 13 deletions

View File

@ -55,7 +55,7 @@ OLLIE_KIRO_TOKEN=... # bearer token or sqlite:// path (auto-detected f
OLLIE_MODEL=qwen/qwen3-235b-a22b
OLLIE_TOOLS_PATH=~/.config/ollie/tools # directory for tool scripts ({tool} steps)
OLLIE_MEMORY_PATH=~/.config/ollie/memory # directory for memory files (ollie/m)
OLLIE_ELEVATE_SOCKET=~/.run/ollie-elevate.sock # socket path for x/elevate adapter
OLLIE_ELEVATE_SOCKET=${XDG_RUNTIME_DIR}/ollie/elevate.sock # socket path for x/elevate adapter (default: $XDG_RUNTIME_DIR/ollie/elevate.sock)
```
Shell environment variables take precedence over the env file.

View File

@ -118,6 +118,7 @@ env:
- OLLIE_SESSION_ID
- OLLIE_SKILLS_PATH
- OLLIE_TMP_PATH
- OLLIE_ELEVATE_SOCKET
- OLLIE_TOOLS_PATH
- OLLIE_TRANSCRIPT_PATH
- HOME

View File

@ -24,6 +24,7 @@ filesystem:
- "/dev/null"
- "/tmp"
- "{NAMESPACE}"
- "{XDG_RUNTIME_DIR}/ollie"
rwx:
- "{CWD}"
- "{OLLIE}"
@ -37,6 +38,7 @@ env:
- OLLIE_SESSION_ID
- OLLIE_SKILLS_PATH
- OLLIE_TMP_PATH
- OLLIE_ELEVATE_SOCKET
- OLLIE_TOOLS_PATH
- OLLIE_TRANSCRIPT_PATH
- PATH

View File

@ -219,10 +219,13 @@ returns the result.
exit_code}`. The adapter on the other end is backend-specific. Multiple adapters can
coexist at different socket paths; switching backends is a single env var change.
Set `OLLIE_ELEVATE_SOCKET` in `~/.config/ollie/env`:
Set `OLLIE_ELEVATE_SOCKET` in `~/.config/ollie/env`. The default is
`$XDG_RUNTIME_DIR/ollie/elevate.sock` (falling back to
`/run/user/<uid>/ollie/elevate.sock`), so this only needs to be set when using
a non-default path:
```
OLLIE_ELEVATE_SOCKET=~/.run/ollie-elevate.sock
OLLIE_ELEVATE_SOCKET=${XDG_RUNTIME_DIR}/ollie/elevate.sock
```
### Protocol

View File

@ -13,11 +13,13 @@ import socket
import sys
def default_socket_path():
xdg = os.environ.get("XDG_RUNTIME_DIR") or f"/run/user/{os.getuid()}"
return os.path.join(xdg, "ollie", "elevate.sock")
def main():
sock_path = os.environ.get("OLLIE_ELEVATE_SOCKET")
if not sock_path:
print("elevate: OLLIE_ELEVATE_SOCKET not set", file=sys.stderr)
sys.exit(1)
sock_path = os.environ.get("OLLIE_ELEVATE_SOCKET") or default_socket_path()
if len(sys.argv) < 3:
print("usage: elevate -- <cmd>", file=sys.stderr)

View File

@ -9,7 +9,8 @@ Usage:
superpowers run-session -- python3 elevate-adapter-superpowerd
Environment:
OLLIE_ELEVATE_SOCKET path for the listening socket (required)
OLLIE_ELEVATE_SOCKET path for the listening socket
(default: $XDG_RUNTIME_DIR/ollie/elevate.sock)
SUPERPOWERD_SESSION_TOKEN set automatically by superpowers run-session
SUPERPOWERD_SOCKET override superpowerd socket path
SUPERPOWERD_SOCKET_DIR directory containing superpowerd.sock
@ -22,6 +23,11 @@ import sys
import threading
def default_socket_path():
xdg = os.environ.get("XDG_RUNTIME_DIR") or f"/run/user/{os.getuid()}"
return os.path.join(xdg, "ollie", "elevate.sock")
def sp_socket_path():
if p := os.environ.get("SUPERPOWERD_SOCKET"):
return p
@ -95,11 +101,7 @@ def main():
os.execvp("superpowers", ["superpowers", "run-session", "--",
sys.executable, __file__] + sys.argv[1:])
sock_path = os.environ.get("OLLIE_ELEVATE_SOCKET")
if not sock_path:
print("elevate-adapter-superpowerd: OLLIE_ELEVATE_SOCKET not set", file=sys.stderr)
sys.exit(1)
sock_path = os.environ.get("OLLIE_ELEVATE_SOCKET") or default_socket_path()
sock_path = os.path.expanduser(sock_path)
os.makedirs(os.path.dirname(sock_path), exist_ok=True)