Commit Graph

  • 9a3f1e4a24 Make the now-playing bar's title/artist clickable and add a cover art lightbox master owenandClaude Sonnet 5 2026-08-23 22:04:36 -05:00
  • 866f243f1b weee owen 2026-08-23 14:13:18 -05:00
  • 789bf91eed Complete Phase 4: security hardening, player/playlist/admin UI, docs owenandClaude Sonnet 5 2026-08-23 09:18:17 -05:00
  • 933ed31550 Add a web player lyrics panel with active-line highlighting and click-to-seek owenandClaude Sonnet 5 2026-08-23 08:39:22 -05:00
  • 238cf0d4a0 Update docs/subsonic-compatibility.md with the OpenSubsonic extension matrix owenandClaude Sonnet 5 2026-08-23 08:36:48 -05:00
  • a921f9e2bc Add optional MusicBrainz/Cover Art Archive metadata enrichment owenandClaude Sonnet 5 2026-08-23 08:35:40 -05:00
  • 2a69f6dc33 Blend real sonic distance into classic getSimilarSongs ranking owenandClaude Sonnet 5 2026-08-23 08:31:54 -05:00
  • b6acd63c2d Implement sonicSimilarity extension with real audio feature analysis owenandClaude Sonnet 5 2026-08-23 08:30:20 -05:00
  • 6fb46a989e Implement the OpenSubsonic transcoding extension (getTranscodeDecision/getTranscodeStream) owenandClaude Sonnet 5 2026-08-23 08:23:08 -05:00
  • ec28053d36 Implement songLyrics extension: getLyricsBySongId with real word/syllable cues owenandClaude Sonnet 5 2026-08-23 08:19:41 -05:00
  • e48f063f03 Add structured lyrics storage and indexing (line/word timing, byte offsets) owenandClaude Sonnet 5 2026-08-23 08:16:42 -05:00
  • efedf1a6bf Add LRC/Enhanced LRC parser (line and word-level timing, UTF-8 safe) owen 2026-08-23 08:10:06 -05:00
  • 4a5add80b6 OpenSubsonic: playbackReport extension (reportPlayback), integrated with now-playing/history owen 2026-08-23 08:08:35 -05:00
  • d3074ab6fe OpenSubsonic: indexBasedQueue (getPlayQueueByIndex, savePlayQueueByIndex) with real duplicate-song support owen 2026-08-23 08:07:16 -05:00
  • e88f4e040c OpenSubsonic: getPodcastEpisode, topSongsByArtistId, transcodeOffset (real ffmpeg seek) owen 2026-08-23 08:06:12 -05:00
  • e38d31d384 Phase 3: OpenSubsonic core (response envelope, error codes 42-44, getOpenSubsonicExtensions) and apiKeyAuthentication extension with tokenInfo, web API key management owen 2026-08-23 08:04:01 -05:00
  • 3b4883780b Fix test-leaked HLS cache directory tracked in repo; give subsonic tests a real DataDir owen 2026-08-23 00:38:57 -05:00
  • 6ac50994b8 Phase 2: exhaustive Subsonic 1.16.1 compatibility matrix, README/config/Docker updates owen 2026-08-23 00:38:09 -05:00
  • f1fdd8d2c2 Web UI: podcasts, radio, shares, bookmarks pages; admin podcast/jukebox management; per-user Subsonic permission editor owen 2026-08-23 00:34:58 -05:00
  • 2e222bd193 Subsonic: jukeboxControl endpoint wired to real mpv-backed controller owen 2026-08-23 00:29:59 -05:00
  • 12eb4b9d01 Add real mpv-backed jukebox controller (JSON IPC), tested against real mpv owen 2026-08-23 00:27:59 -05:00
  • c2166fa7d4 Subsonic: podcast endpoints (getPodcasts, getNewestPodcasts, refreshPodcasts, createPodcastChannel, deletePodcastChannel/Episode, downloadPodcastEpisode) owen 2026-08-23 00:26:14 -05:00
  • fce44a2ffd Add real podcast subsystem: RSS feed refresh, bounded background downloads, restart recovery owen 2026-08-23 00:24:43 -05:00
  • 8d93bea384 Subsonic: user management endpoints (getUser, getUsers, createUser, updateUser, deleteUser, changePassword) with full permission model mapping owen 2026-08-23 00:22:44 -05:00
  • d92a25b141 Subsonic: internet radio, chat, bookmarks, play queue, scanner status endpoints owen 2026-08-23 00:21:13 -05:00
  • c6e0131984 Subsonic: sharing (getShares, createShare, updateShare, deleteShare) plus real public share web pages and stream route owen 2026-08-23 00:18:51 -05:00
  • b77ccd242a Subsonic: annotation endpoints (star, unstar, setRating, scrobble) owen 2026-08-23 00:15:58 -05:00
  • c7b472ab99 Subsonic: media retrieval endpoints (stream, download, getCoverArt, getLyrics, getAvatar, hls, getCaptions) with real transcoding, embedded lyrics extraction, and folder permission enforcement owen 2026-08-23 00:15:00 -05:00
  • b6ec06f272 Add real ffmpeg-backed transcoding subsystem (bounded concurrency, streaming, HLS segmenting) owen 2026-08-23 00:10:55 -05:00
  • 6e2b875eaa Subsonic: playlist endpoints (getPlaylists, getPlaylist, createPlaylist, updatePlaylist, deletePlaylist) owen 2026-08-23 00:09:36 -05:00
  • a297454065 Subsonic: album/song lists (getAlbumList/2, getRandomSongs, getSongsByGenre, getNowPlaying, getStarred/2) and search (search, search2, search3) owen 2026-08-23 00:08:06 -05:00
  • f40a011c46 Subsonic: browsing endpoints (getMusicFolders, getIndexes, getMusicDirectory, getGenres, getArtists/Artist, getAlbum, getSong, getVideos/VideoInfo, getArtistInfo/2, getAlbumInfo/2, getSimilarSongs/2, getTopSongs) owen 2026-08-23 00:06:08 -05:00
  • b5e2bf01e2 Phase 2: Subsonic REST API framework (auth, response formatting, error handling, routing) plus user permission model owen 2026-08-22 23:58:54 -05:00
  • f81c8704a5 go mod tidy owen 2026-08-22 23:45:46 -05:00
  • 89e46bf539 Fix open-redirect via next parameter, remove dead code owen 2026-08-22 23:45:39 -05:00
  • b4b1ba8470 Add Docker/systemd deployment, documentation, extauth logout URL wiring owen 2026-08-22 23:44:46 -05:00
  • 40e1cfb630 Add web-layer route/auth tests owen 2026-08-22 23:42:52 -05:00
  • e0bd8bc3cb Web UI: setup wizard, auth pages, library browsing, player, admin, streaming, cover art owen 2026-08-22 23:42:09 -05:00
  • aa29f13846 Streaming with range requests and path safety, cover art discovery/resize cache owen 2026-08-22 23:33:00 -05:00
  • 49dbee617a Library indexing and filesystem scanner with incremental rescans owen 2026-08-22 23:31:17 -05:00
  • d4ea7a4ca9 Foundation: config, schema/migrations, auth, stable IDs, metadata probing owen 2026-08-22 23:29:16 -05:00