@@ -9,7 +9,7 @@ A command-line interface for querying Firefox Profiler profiles with persistent
99- ** Daemon process** : Long-running background process that loads a profile via ` ProfileQuerier ` and keeps it in memory
1010- ** Client process** : Short-lived process that sends commands to the daemon and prints results
1111
12- ** IPC:** Unix domain sockets with line-delimited JSON messages
12+ ** IPC:** Unix domain sockets (named pipes on Windows) with line-delimited JSON messages
1313
1414** Session storage:** ` ~/.pq/ ` (or ` $PQ_SESSION_DIR ` for development)
1515
@@ -94,17 +94,19 @@ npm publish
9494```
9595~/.pq/
9696├── current # Symlink to current session socket
97- ├── <session-id>.sock # Unix domain socket for IPC
97+ ├── <session-id>.sock # Unix domain socket for IPC (Unix only)
9898├── <session-id>.json # Session metadata (PID, profile path, timestamps)
9999└── <session-id>.log # Daemon logs (kept for debugging)
100100```
101101
102+ On Windows, IPC uses a named pipe (`\\.\pipe\pq-<session-id>`) instead of a `.sock` file.
103+
102104**Session metadata example:**
103105
104106```json
105107{
106108 "id": "abc123xyz",
107- "socketPath": "/Users/user/.pq/abc123xyz.sock",
109+ "socketPath": "/Users/user/.pq/abc123xyz.sock", // or \\.\pipe\pq-abc123xyz on Windows
108110 "logPath": "/Users/user/.pq/abc123xyz.log",
109111 "pid": 12345,
110112 "profilePath": "/path/to/profile.json",
@@ -181,7 +183,7 @@ type ServerResponse =
181183**Session validation (session.ts):**
182184
183185- Check PID is running (`process.kill(pid, 0)`)
184- - Check socket file exists
186+ - Check socket file exists (Unix only — named pipes on Windows are not filesystem files)
185187- Auto-cleanup stale sessions
186188
187189**Symlinks:**
@@ -194,7 +196,7 @@ type ServerResponse =
194196**Implemented:**
195197
196198- ✅ Persistent daemon with profile loading
197- - ✅ Unix socket IPC
199+ - ✅ Unix socket IPC (named pipes on Windows)
198200- ✅ Multiple concurrent sessions
199201- ✅ Session management (current session, explicit session IDs)
200202- ✅ Environment variable isolation (`PQ_SESSION_DIR`)
0 commit comments