mirror of
https://github.com/zap-proto/zapd.git
synced 2026-10-30 15:06:58 +00:00
Everything that differs between the platforms now lives in src/os. On Windows the door for local nodes is the named pipe \\.\pipe\zapd-<user SID>-<runtime dir>, made with a DACL for the user and SYSTEM; the election is LockFileEx on the same lock file; the winner records its pid beside the lock, and a node checks the pipe's server process against it, as a Unix node checks the socket's peer against the fcntl lock. Private directories get a protected DACL, the 0700 counterpart, and a file is private when the token's user or owner SID owns it. tests/windows.rs runs the election with real processes: takeover after the router is killed, and a pipe the lock holder does not serve refused. CI and the release gain a Windows leg. The door's tests paired as our Chrome extension, which the door now admits without pairing; they pair as a per-install origin, and a new assertion admits the Chrome extension on its origin. The new-port test allows the well-known ports the door takes first, and clippy's allow sits on the callback it names. Claude-Session: https://claude.ai/code/session_01M8RoubcPN71KgJuZ8LdBUL