OverviewFilesCommitsIssuesDocsReleasesPeers

pgh-sidecar commits / 199340e

_isAppLive: treat abstract-namespace ('@') udsPaths as live via pid check
fs.existsSync always fails for an abstract socket (no filesystem entry), so an app that binds an abstract udsPath (unrooted-Android/celltron forge) was wrongly pruned as dead. Skip the fs check for '@'-prefixed paths — liveness is the pid check above. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
199340e7a58e9b49ef5868a62efe7eb713c567dc
by plankatron <fleeky@gmail.com> · 2026-07-14T02:17:32.000Z

Changed files (2) +6 -2

lib/index.js +4 -0
……@@ -646,6 +646,10 @@ export class Sidecar {
646646 if (entry.pid) {
647647 try { process.kill(entry.pid, 0) } catch { return false }
648648 }
649 // Abstract-namespace sockets ('@'-prefixed) have no filesystem entry, so
650 // fs.existsSync always fails — liveness is the pid check above (an app on
651 // an unrooted-Android/celltron forge binds an abstract udsPath).
652 if (typeof entry.udsPath === 'string' && entry.udsPath[0] === '@') return true
649653 // udsPath exists?
650654 try { return fs.existsSync(entry.udsPath) } catch { return false }
651655 }
package.json +2 -2
……@@ -1,7 +1,7 @@
11{
22 "name": "pgh-sidecar",
3 "version": "0.2.47",
4 "description": "Small optional user-level daemon for pgh — shared identity vault, OTA polling, device linking, bootstrap seed, NameRegistry host",
3 "version": "0.2.48",
4 "description": "Small optional user-level daemon for pgh \u2014 shared identity vault, OTA polling, device linking, bootstrap seed, NameRegistry host",
55 "type": "module",
66 "main": "lib/index.js",
77 "bin": {