22716fab2a
`scan_directory` (the PluginManager sweep every CLI/gateway/Desktop backend runs at startup) and `plugins_cmd._scan_level` (`hermes plugins list`, the dashboard plugins hub, the TUI plugin picker) probed `plugin.yaml` with `Path.exists()` outside any error handling. `stat()` raises instead of returning False when the plugin directory itself is unsearchable — Windows ACLs (WinError 5, the #111804 report) or a POSIX mode-000 folder — so a single bad plugin folder took every other plugin down with it and the Desktop backend exited before announcing its port. Both scans now warn and skip that one directory, matching the dashboard manifest scan fixed in the preceding (salvaged) commit. Part of #111804