mirror of
https://github.com/stablyai/orca.git
synced 2026-11-13 17:37:40 +00:00
* feat(serve): refuse public source addresses on orca serve unless allowed `orca serve` listens on every interface. It now accepts connections from loopback, private LAN (10/8, 172.16/12, 192.168/16, 169.254/16, fc00::/7, fe80::/10) and Tailscale (100.64/10, fd7a:115c:a1e0::/48) sources, and drops public-source TCP connections before HTTP parsing or the WebSocket upgrade. Public sources stay accepted when: - --allow-public is passed (orca serve, orcad, serve service install); - a paired device has authenticated from a public address (persisted flag); - --pairing-address is a hostname or a public IP literal; - any device paired before this server first ran the check is still paired. The startup log states which rule applies; the first refused public address each hour is logged with the flag name. Desktop listeners and Orca Relay are unaffected. * feat(serve): accept on-link public addresses and add --refuse-public A public source inside a prefix of one of this host's own interfaces (os.networkInterfaces, re-read at most every 5 s) is a same-network peer, such as a LAN client using global IPv6, and is now admitted. Prefixes wider than /16 (IPv4) or /48 (IPv6) are ignored. --refuse-public (orca serve, orcad, serve service install) refuses public addresses regardless of grandfathered pairings, a remembered public connection or the pairing address; it cannot be combined with --allow-public.