Deluan
b84089cea4
feat(plugins): add WASI build constraints to client wrapper templates, to avoid lint errors
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:29 -05:00
Deluan
44c69de525
feat(scheduler): add Scheduler service interface with host function wrappers for scheduling tasks
2025-12-31 17:06:29 -05:00
Deluan
c059db4c9c
refactor(generator): remove error handling for response.Error in client templates
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:28 -05:00
Deluan
ba27a8ceef
feat(plugins): generate client wrappers for host functions
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:28 -05:00
Deluan
a0a5168f5f
fix(generator): error-only methods in response handling
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:28 -05:00
Deluan
097774f9c2
feat(plugins): implement SubsonicAPI host function integration with permissions
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:28 -05:00
Deluan
62612391da
feat(subsonicapi): update Call method to return JSON string response
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:28 -05:00
Deluan
de90e191bb
feat(hostgen): add hostgen tool for generating Extism host function wrappers
...
- Implemented hostgen tool to generate wrappers from annotated Go interfaces.
- Added command-line flags for input/output directories and package name.
- Introduced parsing and code generation logic for host services.
- Created test data for various service interfaces and expected generated code.
- Added documentation for host services and annotations for code generation.
- Implemented SubsonicAPI service with corresponding generated code.
2025-12-31 17:06:28 -05:00
Deluan
9481ba3662
feat(plugins): add metadata agent and scrobbler schemas for bootstrapping plugins
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:28 -05:00
Deluan
1733129537
refactor(plugins): clean up manifest struct and improve plugin loading logic
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:28 -05:00
Deluan
415eac5399
feat(plugins): integrate logs
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:28 -05:00
Deluan
905cd613f3
feat(plugins): implement scrobbler plugin with authorization and scrobbling capabilities
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:28 -05:00
Deluan
876ecb29c8
feat(plugins): enhance plugin logging and set User-Agent header
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:28 -05:00
Deluan
5ddc763bb4
feat(plugins): add Wikimedia plugin for Navidrome to fetch artist metadata
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:28 -05:00
Deluan
6ac3ce3511
test(plugins): ignore goroutine leaks from notify library in tests
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:28 -05:00
Deluan
fed00e1838
tests(plugins): more optimizations
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:28 -05:00
Deluan
f0f191266c
tests(plugins): optimize tests
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:28 -05:00
Deluan
39be1878cb
tests(plugins): change BeforeEach to BeforeAll in MetadataAgent tests
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:28 -05:00
Deluan
42d48300bb
fix(plugins): race condition in plugin manager
2025-12-31 17:06:28 -05:00
Deluan
40ce71294e
refactor(plugins): implement plugin function call helper and refactor MetadataAgent methods
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:28 -05:00
Deluan
8cd3785ac4
fix(plugins): improve error handling and logging in plugin manager
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:28 -05:00
Deluan
41bc04214f
refactor(plugins): standardize variable names and remove superfluous wrapper functions
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:28 -05:00
Deluan
66bd5f7a55
feat(plugins): add auto-reload functionality for plugins with file watcher support
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:28 -05:00
Deluan
373f5fb3d9
feat(plugins): add auto-reload functionality for plugins with file watcher support
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:28 -05:00
Deluan
22561abadc
feat(plugins): add capability detection for plugins based on exported functions
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:28 -05:00
Deluan
b3ec005fa2
feat(plugins): implement new plugin system with using Extism
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:28 -05:00
Deluan
c8887eac6b
chore(plugins): remove the old plugins system implementation
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:28 -05:00
Deluan
735c0d9103
chore(deps): remove direct dependency on golang.org/x/exp
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:03:44 -05:00
Deluan
fc9817552d
fix(subsonic): make getUser?username comparison case-insensitive
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-19 17:56:40 -05:00
Xabi
0c1b65d3e6
fix(ui): update Basque translation ( #4815 )
...
Added missing strings and a fix or two
2025-12-19 08:32:13 -05:00
Deluan
47b448c64f
chore(deps): update action versions in pipeline configuration
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-19 08:30:18 -05:00
Deluan
834fa494e4
chore(deps): update golangci-lint to v2.7.2
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-19 08:25:51 -05:00
Deluan
5d34640065
chore(deps): update dependencies for maruel/natural to v1.3.0 and tetratelabs/wazero to v1.11.0
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-19 08:24:45 -05:00
Deluan
9ed309ac81
feat(scanner): implement file-based target passing for large target lists
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-16 16:08:32 -05:00
Deluan
8c80be56da
fix(scanner): ensure FullScanInProgress reflects current scan request during interrupted scans
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-16 12:16:00 -05:00
Deluan
cde5992c46
fix(scanner): execute GetFolderUpdateInfo in batches to avoid "Expression tree is too large (maximum depth 1000)"
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-16 11:37:13 -05:00
Deluan
017676c457
fix(ui): export all missing files instead of first 1000
...
Fixes #4721
2025-12-16 06:43:02 -05:00
Deluan
2d7b716834
fix(scanner): remove stale role associations when artist role changes. Fix #4242
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-16 06:38:50 -05:00
Deluan
c7ac0e4414
chore(docker): update Alpine base image to version 3.20 and bump XX_VERSION to 1.9.0
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-15 14:10:34 -05:00
Deluan
c9409d306a
chore(deps): update Go dependencies to latest versions
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-15 13:09:06 -05:00
Deluan
ebbe62bbbd
fix(ui): update delete button color in AMusic theme
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-14 13:51:01 -05:00
dragonish
42c85a18e2
fix(ui) Improve player buttons in AMusic theme ( #4797 )
...
* fix(ui): improve the lyric button of the AMusic theme
* fix(amusic): update styles for music player panel SVG and disabled button states
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
Co-authored-by: Deluan <deluan@navidrome.org>
2025-12-13 13:04:29 -05:00
Deluan
7ccf44b8ed
feat: rename HTTPSecurityHeaders.CustomFrameOptionsValue to HTTPHeaders.FrameOptions
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-13 12:38:43 -05:00
Deluan
603cccde11
fix(subsonic): always enable getNowPlaying endpoint regardless of configuration
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-11 15:44:21 -05:00
Deluan
6ed6524752
fix(subsonic): add username parameter validation for GetUser endpoint
...
Fixes #4794
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-10 18:30:26 -05:00
Deluan
a081569ed4
fix(deezer): add order parameter to artist search for improved ranking
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-10 13:31:24 -05:00
Deluan
e923c02c6a
chore: enhance Deezer logging for artist search results
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-10 08:38:28 -05:00
Deluan
51ca2dee65
fix: log environment variable configuration loading when no config file is found
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-09 19:40:46 -05:00
Deluan
6b961bd99d
fix: update default legacy clients to include SubMusic. See #4779
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-09 08:44:56 -05:00
Deluan
396eee48c6
fix: preserve user context in async NowPlaying dispatch
...
Fixed issue #4787 where plugin scrobblers received an empty username during NowPlaying events. The async worker was passing context.Background() which lost all user information.
Changed nowPlayingEntry to store the full context (with cancellation removed via context.WithoutCancel) and pass it to dispatchNowPlaying. This ensures plugin scrobblers can extract username from the context for authorization checks.
Updated tests to verify username is properly propagated through the async workflow, matching the actual plugin adapter behavior of checking both request.UsernameFrom and request.UserFrom.
2025-12-09 08:43:56 -05:00