d4c0e8f0a1
Scans the same $XDG_STATE_HOME/slocker-lite/run/ directory as --list-processes and removes every pid file that's genuinely stale. The liveness check and the removal happen atomically per file (the same non-blocking flock() used to test it is held across the remove() call itself), rather than reusing a separate earlier scan, closing the race window where a new session could start in between. Only files actually removed are reported, one line each; sessions still running are left untouched and silently skipped. Refactored list_sessions() and the new clean_stale_sessions() to share a private open_session_file() helper for the open/read-pid/ recover-name step they both need. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Gv3s5jckJKzh6JkMoi2Akz