4662 Commits

Author SHA1 Message Date
Deluan
f4477fffd4 fix: rust plugin compilation error
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-14 14:52:47 -05:00
Deluan
bfb6476307 feat: enhance ConfigCard input fields with multiline support and vertical resizing
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-14 14:31:04 -05:00
Deluan
32172f2fce feat: update user configuration handling to use user key prefix for improved clarity
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-14 14:11:53 -05:00
Deluan
32bae38ffd feat: introduce ArtistRef struct for better artist representation and update track metadata handling
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-14 10:36:47 -05:00
Deluan
a88998c0d0 fix: enhance connection management with improved error handling and cleanup logic
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-14 09:31:20 -05:00
Deluan
57d606450e fix: don't record metrics for plugin calls that aren't implemented at all
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 23:46:38 -05:00
Deluan
2006474507 feat: refactor plugin host permissions to use RequiredHosts directly for improved clarity 2026-01-12 17:52:50 -05:00
Deluan
2e1166f718 feat: update plugin permissions from allowedHosts to requiredHosts for better clarity and consistency 2026-01-12 17:48:04 -05:00
Deluan
c0dd0f7282 feat: add ID fields to Artist and Song structs and enhance track loading logic by prioritizing ID matches
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
181152aeb7 feat: replace core mock services with test-specific implementations to avoid import cycles 2026-01-12 08:16:08 -05:00
Deluan
d5458d3135 feat: implement user/library and plugin management integration with cleanup on deletion
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
8722c7809d feat: add manual plugin rescan functionality and corresponding UI action
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
64baa16129 fix: remove unnecessary bulkActionButtons prop from PluginList component 2026-01-12 08:16:08 -05:00
Deluan
ce85775b66 reorder migrations
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
58165be3c7 feat: update Portuguese translations for user and library permissions
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
605792d7f8 feat: add GetAdmins method to retrieve admin users from the plugin
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
ae5ecc6ac3 fix: implement dynamic loading for buffered scrobbler plugins
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
01b31178c0 feat: add user permission for processing scrobbles in Discord Rich Presence plugin
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
06a2a4d89c feat: add library permission management to plugin system
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
801466445d fix: show proper error in the UI when enabling a plugin fails
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
5f54944366 feat: implement user permissions for SubsonicAPI and scrobbler plugins
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
d660bbd900 test: add integration tests for UsersService enable gate behavior
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
2d4a3c621c refactor: remove UserID from scrobbler request structure
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
5c1b8498ce refactor: streamline users integration tests and enhance plugin user management
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
08280eaea8 feat: add users permission management to plugin system
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
6ab277bf9e test: add ndpgen plugin tests in the pipeline and update Makefile
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
df1ed336cc refactor: rename List method to Keys for clarity in configuration management
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
1f24c14b9e refactor: update interface types to use 'any' in plugin repository methods
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
f8ea65dbc8 refactor: make MockPDK private
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
1fdeb54961 feat: enhance plugin manager to support metrics recording
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
84d421c9df feat: implement ConfigService for plugin configuration management
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
68b4e2052c feat: conditionally include error handling in generated client code templates
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
9e9d5cd615 fix: context cancellation and implement WebSocket callback timeout for improved error handling
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
5c7173b61c fix: update return types in minimalPlugin and wikimediaPlugin methods to use pointers
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
188a3a19d5 feat: add unit tests for Discord plugin and RPC functionality
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
363177e1d4 feat: add PDK abstraction layer with mock support for non-WASM builds
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
b95d3d7831 feat: add support for experimental WebAssembly threads
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
dd94355c46 refactor: Discord RPC struct to encapsulate WebSocket logic
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
93e9f12685 feat: implement mock service instances for non-WASM builds using testify/mock
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
a427166084 fix: handle URL parsing errors and use atomic upsert in plugin repository
Added proper error handling for url.Parse calls in PublicURL and AbsoluteURL
functions. When parsing fails, PublicURL now falls back to AbsoluteURL, and
AbsoluteURL logs the error and returns an empty string, preventing malformed
URLs from being generated.

Replaced the non-atomic UPDATE-then-INSERT pattern in plugin repository Put
method with a single atomic INSERT ... ON CONFLICT statement. This eliminates
potential race conditions and improves consistency with the upsert pattern
already used in host_kvstore.go.
2026-01-12 08:16:07 -05:00
Deluan
ac3889cac9 docs: update README to include Rust PDK crate information for plugin developers
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
5c087a12af docs: clarify artwork URL generation capabilities in service descriptions
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
0ec82e83f6 docs: correct example link for library inspector in README
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
f8149c320f docs: update Go and Rust plugin developer sections for clarity
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
374dd2343d fix(plugins): update response types in testMetadataAgent methods to use pointers
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
89d9aa1434 feat(plugins): implement XTP JSONSchema validation for generated schemas
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
aa03d53524 test(plugins): add unit tests for rustOutputType and isPrimitiveRustType functions
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
169bbb9d0a fix(plugins): update IsAuthorized method to return boolean instead of response object
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
e750bf8232 fix(plugins): enhance type handling for Rust and XTP output in capability generation
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
867000b70a fix(plugins): update return types in metadata interfaces to use pointers
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00