4578 Commits

Author SHA1 Message Date
Deluan
de45079ff6 feat(plugins): add Rust host function library and example implementation of Discord Rich Presence plugin in Rust
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
dfaf22248a feat(plugins): update config handling in PluginShow to track last record state
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
cef1d339a3 feat(plugins): integrate event broker into plugin manager
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
628e0b58b7 docs: enhance README with Extism plugin development resources and recommendations
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
b970ef6b26 feat(plugins): implement KVStore service for persistent key-value storage
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
7664b22f04 docs: update README for .ndp plugin packaging and installation instructions
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
9d4b838ecb feat(plugins): add support for .ndp plugin packages and update build process
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
64b63a9561 feat(i18n): add Portuguese translations for plugin management and notifications
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
bece0b671f feat(plugins): rename ErrorIndicator to EnabledOrErrorField and enhance error handling logic
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
2fa30e8779 feat(ui): adjust grid layout in InfoRow component for improved responsiveness
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
be5a47964b feat(plugins): implement configuration management UI with key-value pairs support
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
822fb0370c fix(build): update target to wasm32-wasip1 for improved WASI support
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
0fc0f3c105 docs: update README to reflect JSON configuration format for plugins
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
766689428d feat(plugins): add Library Inspector plugin for periodic library inspection and file size logging
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
eef9599013 feat(library): add Library service for metadata access and filesystem integration
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
9a070a63fc docs: update READMEs
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
422062921f refactor(plugins): introduce ToggleEnabledSwitch for managing plugin enable/disable state
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
d3d9af8a00 refactor(plugins): update newWebSocketService to use WebSocketPermission for allowed hosts
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
c51d1c8c26 refactor(plugins): streamline error handling and improve plugin retrieval logic
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
8b16065981 refactor(plugins): break manager.go into smaller, focused files
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
1f2a61b8e4 refactor(plugins): enhance debug logging for plugin actions and recompile logic
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
8e80a9b836 feat(plugins): add subsonicRouter to Manager and refactor host service registration
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
9d783eab9f refactor(plugins): update GetManager to accept DataStore parameter
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
e20af107cf refactor(plugins): inject PluginManager into native API
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
25f8ee7629 feat(plugins UI): add error handling for plugin enable/disable actions
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
6de941c4f0 feat(plugins UI): refactor to use MUI and RA components
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
02101de788 feat(plugins UI): enhance PluginShow with author, website, and permissions display
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
1fe685e944 refactor(plugins UI): improve PluginList structure
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
817b47f710 feat(plugins): optimize plugin change detection
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
3e9151c185 feat(plugins UI): add PluginList and PluginShow components with plugin management functionality
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
b10fce1bae feat(plugins UI): implement plugin synchronization with database for add, update, and remove actions
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
d671982c62 feat(plugins UI): add plugin management routes and middleware
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
1965e48446 feat(plugins UI): add plugin repository and database support
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
6d0a0f6d01 test: move purgeCacheBySize unit tests
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
354c042d83 feat: implement plugin cache purging functionality
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
adbe10880d add trace message for plugin recompiles
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
b58493141c feat: extend plugin watcher with improved logging and debounce duration adjustment
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
3c5b244b7e docs: update README to include WebSocket callback schema in plugin documentation
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
7961205517 feat: enable parallel loading of plugins during startup
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
065b076f45 feat: add Webhook Scrobbler plugin in Rust to send HTTP notifications on scrobble events
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
d8cc4d57eb feat: update Python plugin documentation and usage instructions for host function wrappers
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
dfa7e0d9fc feat: add generated host function wrappers for Scheduler and SubsonicAPI services
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
e2ab381cac feat: generate Python client wrappers for various host services
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
8c4d94e64f feat: add Now Playing Logger plugin to showcase calling host functions from Python plugins
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
edaa0dfdaf feat: add trace logging for plugin availability and error handling in agents
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
9132a7c1e2 feat: include plugin capabilities in loading log message
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
ca2b26f9bd feat: update Makefile and README to clarify Go plugin usage
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
f26448fb7c feat: add Cover Art Archive plugin as an example of Python plugin
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
a3a5412741 feat: add help target to Makefile for plugin usage instructions
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
b9fadfe50a refactor: rename fake plugins to test plugins for clarity in integration tests
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00