ae4a90352e
Delete the entire dynamic-loading infrastructure that produced issue #5 and the per-API-bump plugin breakage cycle: - crates/owlry-plugin-api/ (ABI-stable interface, gone) - crates/owlry-lua/ (Lua runtime cdylib, gone — replaced by mlua in Phase 3) - crates/owlry-rune/ (Rune runtime cdylib, gone per D3) - owlry-core/src/plugins/ (loader, manifest, registry, watcher — all gone) - owlry-core/src/providers/native_provider.rs - owlry-core/src/providers/lua_provider.rs - owlry-core/src/providers/config_editor.rs (per D11, 1127 LOC) - owlry/src/plugin_commands.rs (per CLI restructure, 1296 LOC) Provider trait gains submenu_actions(), execute_action(), prefix(), icon(), position(), priority() as default methods so future built-in providers can declare their UI metadata directly instead of relying on the hardcoded match table. ProviderManager simplified: drops native_providers, static_native_providers, dynamic_providers, widget_providers, runtimes, runtime_type_ids, plugin_registry fields and the reload_runtimes / find_native_provider / get_widget_item / widget_type_ids methods. ProviderPosition enum carries the Normal/ Widget distinction on the trait instead. IPC Request::PluginList and Response::PluginList removed; Submenu and PluginAction stay (route to Provider trait methods now). owlry -d / --daemon flag added as the future daemon entry point; the old owlryd binary is still produced from owlry-core for Phase 1 compatibility but will fold into the single binary in task #2. Workspace shrinks from 5 members to 2. Tests: 142 passed. LOC: -13,796 / +273 (net -13,523). Tasks #3, #4, #5 complete.