a7e5ffb84f
The SIGHUP worker previously only reloaded the SharedBlacklist. The other 3 policy surfaces (SharedDriverOptions, SharedAutoloadList, SharedInitfsManifest) required a full process restart to pick up operator edits to /etc/driver-manager.d/*.toml. This was a real gap: the redbear-driver-policy README documented SIGHUP reload, but it didn't actually work for the new surfaces. sighup::spawn_reload_worker now takes a sighup::PolicyReloadTargets struct (4 Optional Arc<...> fields, one per surface). main.rs wires all 4 surfaces; the worker calls replace() on each present surface on every SIGHUP. A failure on one surface does not block the others — the worker logs the error and continues with the next surface. The 3 new live Arc<...> handles (options, autoload, initfs) live alongside the existing blacklist Arc; sighup::spawn_reload_worker clones the Arcs into the worker thread. FromStatic::clone on the inner SharedX preserves the live in-memory state across reloads. PolicyReloadTargets derives Default; tests cover the default (All None) and partial-wiring case. Tests (2 new): - policy_reload_targets_default_is_empty - policy_reload_targets_supports_partial_wiring driver-manager tests: 162 -> 164. driver-manager-audit-no-stubs.py: 46 files, 0 violations.