Deluan
3dba572ce7
refactor: rename List method to Keys for clarity in configuration management
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 14:08:26 -05:00
Deluan
15a1d4152a
refactor: update interface types to use 'any' in plugin repository methods
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 10:03:35 -05:00
Deluan
d0482ec9ac
refactor: make MockPDK private
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 00:59:35 -05:00
Deluan
7b1126201e
feat: enhance plugin manager to support metrics recording
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 00:41:33 -05:00
Deluan
b90ecb9754
feat: implement ConfigService for plugin configuration management
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-01 19:56:33 -05:00
Deluan
4b66560f50
feat: conditionally include error handling in generated client code templates
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-01 19:53:07 -05:00
Deluan
20ae227bd3
fix: context cancellation and implement WebSocket callback timeout for improved error handling
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-01 17:52:16 -05:00
Deluan
b35928e598
fix: update return types in minimalPlugin and wikimediaPlugin methods to use pointers
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-01 17:24:54 -05:00
Deluan
3c83c44dc7
feat: add unit tests for Discord plugin and RPC functionality
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-01 17:15:35 -05:00
Deluan
9522b060d5
feat: add PDK abstraction layer with mock support for non-WASM builds
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-01 15:44:32 -05:00
Deluan
c6fe02a49c
feat: add support for experimental WebAssembly threads
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-01 13:19:52 -05:00
Deluan
a2ace6e84e
refactor: Discord RPC struct to encapsulate WebSocket logic
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 21:02:01 -05:00
Deluan
e111c5832f
feat: implement mock service instances for non-WASM builds using testify/mock
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 19:34:14 -05:00
Deluan
6b0ea10f4e
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.
2025-12-31 17:06:33 -05:00
Deluan
aa207fb521
docs: update README to include Rust PDK crate information for plugin developers
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
e2f64880e6
docs: clarify artwork URL generation capabilities in service descriptions
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
69ded80806
docs: correct example link for library inspector in README
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
477cec93a9
docs: update Go and Rust plugin developer sections for clarity
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
7b0db4f8d6
fix(plugins): update response types in testMetadataAgent methods to use pointers
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
ad9cda9d57
feat(plugins): implement XTP JSONSchema validation for generated schemas
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
e3bfcff8c4
test(plugins): add unit tests for rustOutputType and isPrimitiveRustType functions
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
6698e94a9c
fix(plugins): update IsAuthorized method to return boolean instead of response object
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
6fff476e93
fix(plugins): enhance type handling for Rust and XTP output in capability generation
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
e6b0af63ce
fix(plugins): update return types in metadata interfaces to use pointers
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
d6b412acde
refactor(plugins): update plugin instance creation to accept context for cancellation support
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
8d586f7425
docs: update README to reflect changes in plugin import paths
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
451475a7af
test(plugins): conditionally run goleak checks based on CI environment
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
dc5100e56a
fix(plugins): generate host wrappers
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
4678da1e5b
docs: update plugin registration docs
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
1fc1a667f1
refactor(plugins): update export wrappers to use //go:wasmexport for WebAssembly compatibility
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
59085145f5
refactor(plugins): rename scheduler callback methods for consistency and clarity
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
e6e2582abf
refactor(plugins): update macro names for websocket and metadata registration to improve clarity and consistency
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
06d75476f6
refactor(plugins): update Discord Rich Presence and Library Inspector plugins to use nd-pdk for service calls and implement lifecycle management
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
4f260c058d
refactor(plugins): reorganize Rust output structure to follow standard conventions
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
67ab3dc81a
feat: implement Rust PDK
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
ae41164c1f
refactor(plugins): consolidate PDK module path and update Go version to 1.25
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
4ea54fe176
build: mark .wasm files as intermediate for cleanup after building .ndp
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
ca36c5df13
refactor(plugins): update request/response types to use private naming conventions
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
7cad08ad09
refactor(plugins): update function signatures to return values directly instead of response structs
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
11d99ef673
refactor(plugins): update error handling for methods to return errors directly
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
6ee64ceeec
refactor(plugins): reorganize and sort type definitions for consistency
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
f221c01bd9
test: make all test plugins use the PDK
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
f1b85e6a19
refactor(plugins): update scrobbler interface to return errors directly instead of response structs
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
d43724c571
refactor(plugins): streamline plugin function signatures and error handling
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
301b2c850c
refactor(plugins): consistent naming/types across PDK
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
547363eab7
feat(plugins): implementation of the Navidrome Plugin Development Kit with generated client wrappers and service interfaces - Phase 5
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
8a453cb22c
feat(plugins): implementation of the Navidrome Plugin Development Kit with generated client wrappers and service interfaces - Phase 4
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
2e716ed780
feat(plugins): implementation of the Navidrome Plugin Development Kit with generated client wrappers and service interfaces - Phase 3
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
6d3c29912b
feat(plugins): implementation of the Navidrome Plugin Development Kit with generated client wrappers and service interfaces - Phase 2 (2)
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
6fa9ef0dfe
feat(plugins): implementation of the Navidrome Plugin Development Kit with generated client wrappers and service interfaces - Phase 2
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00