- 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>