31ba54f9b6
Append §17 documenting the implementation round that closed the blocking and high-severity items flagged by the round-2 5-lane review (§16). Version bumped from 4.1 to 4.2. §17 R1 — StatusNotifierWatcher: fix bus name wire-mismatch (BUS_NAME + #[interface(name)] now org.kde), canonicalize item keys as <sender><path> to fix multi-client collision, narrow purge to vanished unique names, emit unregister signals on purge. §17 R2 — sessiond: add per-FD POLLHUP monitoring to reap inhibitors when the returned FD closes (logind contract compliance). The §16 G8 claim that reaping was missing was factually wrong (the sender reaping was already in place); the gap was actually FD-close detection. §17 R3 — notifications: full lifecycle — bounded at 1024 with FIFO eviction, replaces_id semantics (update existing record), expiry-timeout sweep emitting NotificationClosed(EXPIRED), sender-loss purge via DBusProxy::name_has_owner, InvokeAction cleanup removing the record. §17 R4 — wifictl: add AccessPointInterface and serve it at every returned path via serve_at(). ActiveAccessPoint now returns the actual matched index instead of always 0. §17 R5 — Mesa: fix three batch pool follow-on defects — format=0 → 0-byte BO allocation (redox_drm_bo.c handles PIPE_BUFFER + NONE format specially), unchecked mtx_init failure (winsys now returns false on init failure + initialized flag), oversized batch size truncation (rejects byte_count > UINT32_MAX). §17 R6 — doc corrections: §16 G1 honesty flag (bus name NOW changed), §16 §3.3 note (daemon IS wired into redbear-full.toml:233), §16 G8/G9/G14 (inhibitor reaping WAS applied — G2 above is the actual FD-close gap). §17 R7 — remaining gaps documented: dbus_nm backend wiring (deferred to NM round), NM StateChanged signal, partial write_all error propagation, hardcoded root password (operator decision out of scope), no canonical build-redbear.sh redbear-full run yet. All 6 implementation commits already pushed to origin/0.3.1:1ffc9299be— mesa batch pool follow-ons5fdfa4384c— sessiond FD-close inhibitor removal25cb25c373— statusnotifierwatcher bus name + identity + lifecyclecd429e8c74— wifictl dbus_nm AP interface + active index4d00f7ad09— notifications full lifecycle + this §17 doc commit.