SpotiFLAC-Mobile/go_backend
Alex 3fc371b8c4 Extension OAuth + store: flatten action JSON, open auth URLs, spotiflac:// callback
Third-party extensions (e.g. Spotify PKCE addons) need three things the current app does not fully provide:

Extension button results – The Go runtime returned { success, result: { message, open_auth_url, … } } while Flutter read message / open_auth_url only on the outer map, so OAuth buttons appeared to do nothing. InvokeAction now merges the extension’s return object onto the top-level JSON (arrays/non-objects still use result).

Flutter – extension_detail_page: unwrap nested result for compatibility, merge setting_updates into saved extension settings (for copyable OAuth URLs), and launchUrl when open_auth_url is set.

Mobile OAuth return – spotiflac://callback?code=…&state=<extension_id> was not handled on Android (manifest + MainActivity) or iOS (AppDelegate open URL + cold-start launchOptions). This wires SetExtensionAuthCodeByID + invokeExtensionAction(..., "completeSpotifyLogin") so PKCE extensions can finish login after the browser redirect.

Extension store HTTP – Add Cache-Control: no-cache on registry and extension package downloads to reduce stale CDN/proxy responses.

Testing: Install a metadata extension that uses PKCE; tap Connect; confirm browser opens, return via spotiflac://callback, and tokens complete without pasting the code manually.

extension InvokeAction JSON was nested under result while the Flutter settings UI only read the top level, so OAuth-related buttons never showed messages or opened the browser. This PR flattens that payload, merges optional setting_updates, launches open_auth_url, adds spotiflac://callback handling on Android and iOS, and sends no-cache on store HTTP fetches. Needed for extensions like SpoitiLists (Spotify Web API + PKCE).
2026-04-12 02:40:31 -06:00
..
audio_metadata.go feat: add audio quality analysis widget and fix USLT lyrics detection 2026-03-26 01:11:29 +07:00
audio_metadata_mp3_test.go feat: add audio quality analysis widget and fix USLT lyrics detection 2026-03-26 01:11:29 +07:00
cancel.go refactor: more code cleanup 2026-01-17 10:04:21 +07:00
cover.go chore: clean up codebase 2026-03-26 16:43:56 +07:00
cue_parser.go chore: clean up codebase 2026-03-26 16:43:56 +07:00
deezer.go fix: unify search bar, filter chips, tab navigation, and clean up comments 2026-03-25 22:27:22 +07:00
deezer_download.go chore: clean up codebase 2026-03-26 16:43:56 +07:00
duplicate.go chore: remove redundant inline comments 2026-03-14 15:07:15 +07:00
exports.go refactor: unexport extension store types and methods (package-internal only) 2026-03-27 04:50:40 +07:00
exports_deezer_metadata_test.go feat: improve auto-fill track resolution in Edit Metadata sheet 2026-03-15 21:12:47 +07:00
exports_test.go feat: add home feed provider setting, fix Qobuz cover URL propagation 2026-03-25 15:46:22 +07:00
extension_manager.go Extension OAuth + store: flatten action JSON, open auth URLs, spotiflac:// callback 2026-04-12 02:40:31 -06:00
extension_manifest.go feat: move Amazon Music to extension, fix Deezer download timeout 2026-03-08 04:15:28 +07:00
extension_providers.go feat: track byte-level download progress for extension downloads 2026-03-27 21:58:01 +07:00
extension_providers_test.go feat: add Qobuz and Tidal as built-in metadata search providers with priority-based unified search 2026-03-14 16:07:41 +07:00
extension_runtime.go feat: track byte-level download progress for extension downloads 2026-03-27 21:58:01 +07:00
extension_runtime_auth.go feat: move Amazon Music to extension, fix Deezer download timeout 2026-03-08 04:15:28 +07:00
extension_runtime_ffmpeg.go feat: move Amazon Music to extension, fix Deezer download timeout 2026-03-08 04:15:28 +07:00
extension_runtime_file.go feat: track byte-level download progress for extension downloads 2026-03-27 21:58:01 +07:00
extension_runtime_http.go feat: move Amazon Music to extension, fix Deezer download timeout 2026-03-08 04:15:28 +07:00
extension_runtime_matching.go feat: move Amazon Music to extension, fix Deezer download timeout 2026-03-08 04:15:28 +07:00
extension_runtime_polyfills.go feat: move Amazon Music to extension, fix Deezer download timeout 2026-03-08 04:15:28 +07:00
extension_runtime_storage.go feat: move Amazon Music to extension, fix Deezer download timeout 2026-03-08 04:15:28 +07:00
extension_runtime_storage_test.go chore: rebuild dev history without streaming-era commits 2026-02-27 13:48:44 +07:00
extension_runtime_utils.go feat: move Amazon Music to extension, fix Deezer download timeout 2026-03-08 04:15:28 +07:00
extension_settings.go feat: move Amazon Music to extension, fix Deezer download timeout 2026-03-08 04:15:28 +07:00
extension_store.go Extension OAuth + store: flatten action JSON, open auth URLs, spotiflac:// callback 2026-04-12 02:40:31 -06:00
extension_test.go refactor: continue code cleanup 2026-02-04 10:42:51 +07:00
extension_timeout.go feat: move Amazon Music to extension, fix Deezer download timeout 2026-03-08 04:15:28 +07:00
filename.go feat: advanced filename templates, low-RAM device profiling, responsive artist UI, and project site 2026-02-13 21:39:08 +07:00
filename_test.go feat: advanced filename templates, low-RAM device profiling, responsive artist UI, and project site 2026-02-13 21:39:08 +07:00
go.mod feat: add audio quality analysis widget and fix USLT lyrics detection 2026-03-26 01:11:29 +07:00
go.sum feat: add audio quality analysis widget and fix USLT lyrics detection 2026-03-26 01:11:29 +07:00
httputil.go fix: unify search bar, filter chips, tab navigation, and clean up comments 2026-03-25 22:27:22 +07:00
httputil_ios.go fix(ios): separate uTLS code with build tags for iOS compatibility 2026-01-31 15:31:21 +07:00
httputil_utls.go chore: clean up codebase 2026-03-26 16:43:56 +07:00
idhs.go feat: move Amazon Music to extension, fix Deezer download timeout 2026-03-08 04:15:28 +07:00
library_scan.go chore: clean up codebase 2026-03-26 16:43:56 +07:00
logbuffer.go perf+security: polling guards, sensitive data redaction, SAF path sanitization 2026-02-11 02:02:03 +07:00
lyrics.go fix: unify search bar, filter chips, tab navigation, and clean up comments 2026-03-25 22:27:22 +07:00
lyrics_apple.go refactor: migrate lyrics providers to Paxsenix endpoints 2026-03-18 17:11:17 +07:00
lyrics_musixmatch.go refactor: migrate lyrics providers to Paxsenix endpoints 2026-03-18 17:11:17 +07:00
lyrics_netease.go refactor: migrate lyrics providers to Paxsenix endpoints 2026-03-18 17:11:17 +07:00
lyrics_qqmusic.go refactor: migrate lyrics providers to Paxsenix endpoints 2026-03-18 17:11:17 +07:00
metadata.go feat: implement full M4A tag read engine with atom path fallback and freeform fix 2026-03-22 23:00:42 +07:00
mobile_deps.go feat: move Amazon Music to extension, fix Deezer download timeout 2026-03-08 04:15:28 +07:00
output_fd.go feat: add multi-select to library folders, batch playlist picker, and Go backend FD safety 2026-02-19 18:27:14 +07:00
output_fd_unix.go feat: add multi-select to library folders, batch playlist picker, and Go backend FD safety 2026-02-19 18:27:14 +07:00
output_fd_windows.go feat: add multi-select to library folders, batch playlist picker, and Go backend FD safety 2026-02-19 18:27:14 +07:00
parallel.go feat: move Amazon Music to extension, fix Deezer download timeout 2026-03-08 04:15:28 +07:00
progress.go perf: optimize polling, progress caching, staggered warmup, and snapshot-based library scan 2026-03-14 16:52:33 +07:00
qobuz.go fix: hi-res cover art for Tidal/Qobuz and album metadata override 2026-03-25 23:17:45 +07:00
qobuz_test.go fix: improve extension download reliability and Qobuz API integration 2026-03-18 01:06:22 +07:00
ratelimit.go feat: move Amazon Music to extension, fix Deezer download timeout 2026-03-08 04:15:28 +07:00
romaji.go feat: move Amazon Music to extension, fix Deezer download timeout 2026-03-08 04:15:28 +07:00
songlink.go fix: improve Spotify track availability resolution 2026-03-17 14:45:24 +07:00
songlink_test.go fix: improve Spotify track availability resolution 2026-03-17 14:45:24 +07:00
spotfetch_api.go fix: delay iOS folder picker after sheet dismiss and update Afkar hosts 2026-03-16 20:17:37 +07:00
spotify.go feat: add name and images fields to PlaylistInfoMetadata 2026-03-14 15:07:34 +07:00
tidal.go fix: hi-res cover art for Tidal/Qobuz and album metadata override 2026-03-25 23:17:45 +07:00
tidal_test.go fix: fix Tidal track resolution, playlist owner info, and improve track provider state 2026-03-14 15:42:21 +07:00
title_match_utils.go chore: clean up codebase 2026-03-26 16:43:56 +07:00
title_match_utils_test.go chore: rebuild dev history without streaming-era commits 2026-02-27 13:48:44 +07:00