host_view now picks the PC host on Windows only; Linux and macOS keep
the Mac view as on main, so #38's Linux adapter is never offered. The PC
host starts nothing, loads no native library and lists no windows until
the person ticks "Turn on PC in the headset" on the card (action
"enable" on /api/macview). Turning it off ends streams, viewers and the
helper. The choice is a client preference, like mvSeparate.
Tools lists "PC in the headset" on Windows only, beside the macOS-only
Mac link, with an Experimental tag and a short note on what hasn't been
tried. The Mac card's wording and Linux-portal tweaks from #38 go back
to main's, apart from the shared "your computer" hint.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- The 10 s watchdog no longer ends idle sessions. PipeWire and WGC deliver
frames only on damage; fail only when a frame entered the encoder and never
came out, or the pipeline never produced its initial frame.
- Controller.state/call/update are inert after close(), so a /status poll
racing Stop cannot dereference the freed native controller.
- Malformed viewer fields drop the event instead of ending the session.
- PATH/LD_LIBRARY_PATH prepends add no empty (current directory) entry.
- portal.c: document fd ownership. pipewiresrc dups the fd it is given
(gstpipewirecore.c, F_DUPFD_CLOEXEC), so the portal closing its own fd is
correct; clear it after close.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>