- 🌟 feat: add MP3 decoder b5f1b72 @devgianlu
- 🌟 feat: report media format in API 9a7dc2d @devgianlu
- 🐞 fix: discard session if connection is permantenly lost 5fa4174 @devgianlu
- 🐞 fix: make active session management atomic cf36a4a @devgianlu
- 🐞 fix: missing import for compiling MP3 decoder on some platforms bdbcc76 @devgianlu
- 🌟 feat: identify unsupported URIs early 1d150cc @devgianlu
- 💄 chore: check codegen is up-to-date d029425 @devgianlu
- ⛑ test: add API server unit test 1d882fb @devgianlu
- 🐝 refactor: codegen the API server f0345f9 @devgianlu
- 🐞 fix: recognize user collection URI correctly 9c64b4a @devgianlu
- 🌟 feat: enrich track metadata in published state 48933e8 @devgianlu
- 💄 chore: add test tags 1d04f14 @devgianlu
- 🌟 feat: resolve
hm://contexts 616253c @devgianlu - 🐞 fix: do not send requests with empty
Client-Tokenf1ef06f @devgianlu - 🐞 fix: actually check receive context is resolvable 85c19a7 @devgianlu
- 🌟 feat: support requesting without following redirects 71af17e @devgianlu
- 🌟 feat: support resolving TTS 9521d16 @devgianlu
- 🌟 feat: allow sources to opt-out from crossfade e1f8c2b @devgianlu
- 🌟 feat: resolve and play narrated tracks 6479485 @devgianlu
- 💄 chore: add DJ X to README 48dd7c1 @devgianlu
- 🐝 refactor: remove spammy ping/pong logs efa8d7f @devgianlu
- 🐞 fix: allow interrupting interactive login b55bacb @devgianlu
- 🐞 fix: bound end-of-track advance to timeout 4274684 @devgianlu
- 🌟 feat: bound dealer and AP retry loops 263d3ec @devgianlu
- 🐝 refactor: intentional background context usage dab772b @devgianlu
- 🐞 fix: reset hasher when retrying hashcash 09e1186 @devgianlu
- ⛑ test: use testify e982d93 @devgianlu
- 💄 chore: include untracked files in codegen diff 1a826fe @devgianlu
- 💢 ci: add coverage report 6488920 @devgianlu
- 🐞 fix: detect if track is played from start properly 69b869b @devgianlu
- 🐞 fix: reject too short zeroconf blob 9d3fb4b @devgianlu
- ⛑ test: more tests cd56401 @devgianlu
- 🌟 feat: config to prefer firewall friendly AP ports 72c6229 @devgianlu
- 🌟 feat: populate more device info in PUT state f6c8744 @devgianlu
- 🌟 feat: advertise DJ support 875c9e4 @devgianlu
- 🌟 feat: cancel player in-flight requests on close 7f13cf6 @devgianlu
- 🐞 fix: prevent player write on closed channel c749f47 @devgianlu
- 🌟 feat: bound track list resolution 0ae9879 @devgianlu
- 🌟 feat: claim transfer successfull before resolving track list 8ffcbed @devgianlu
- 🐞 fix: look inside queue when seeking to a specific track c03323c @devgianlu
- 🌟 feat: carry over resolved context metadata 9c5fb83 @devgianlu
- 📄 add option to wait for a FIFO reader ac0c881 @titilambert
- 🐞 fix: reject truncated audio key packets instead of using them 287a478 @SEKY443
- 🐞 fix: avoid data race on shared decryption scratch buffer 3dbaefc @SEKY443
- 🐞 fix: treat EOF while seeking near track end as success 0146b85 @SEKY443
- 🌟 feat: add first-party WASAPI output for Windows 67d6d52 @Splaxi
- 🌟 feat: capture the raw payload of dealer player commands 1d2c8b2 @SEKY443
- 🌟 feat: implement set_sleep_timer's duration mode 402ef5f @SEKY443
- 🌟 feat: implement set_sleep_timer's end_of_track mode 83428ac @SEKY443
- 💄 chore: update Connect and TTS protos 76ce311 @devgianlu
- 🌟 feat: declare
audio/mediasupport 225e74d @devgianlu - 🐞 fix: do not seek when starting track from beginning cddcada @devgianlu