You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit eb5b1e6
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: CHANGELOG.md
+100Lines changed: 100 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,106 @@ All notable changes to this project are documented here.
4
4
5
5
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
***linux:** add native tray with WebUI menu and bounded lifecycle ([513a34a](https://github.com/rowkavdev/nowplaying/commit/513a34ac83b62177d2227717bd7c6d9d1f6bbe05))
13
+
14
+
15
+
### Fixes
16
+
17
+
* accept Spotify loopback callback only once ([dcd79cc](https://github.com/rowkavdev/nowplaying/commit/dcd79cc34dee588b9f6f3db8804efa732ab42ea4))
18
+
* add Plex GDM and gateway identity discovery ([3ff647d](https://github.com/rowkavdev/nowplaying/commit/3ff647dfe452e7015e573327e25280caf1e3f946))
19
+
* allow bounded status card cache buster ([fc52a06](https://github.com/rowkavdev/nowplaying/commit/fc52a06e353994b623754a343e133986f78d0e82))
20
+
***analytics:** send one Discord ping per process start when calls overlap ([1126e31](https://github.com/rowkavdev/nowplaying/commit/1126e31843b5bab01eb77d43bdeab1710c2e9acf))
21
+
* apply privacy to Settings sample card preview ([46857d4](https://github.com/rowkavdev/nowplaying/commit/46857d484a4b0e51abf80b2c3d7103069f96977e))
22
+
* atomically order hosted device ingests ([2dae312](https://github.com/rowkavdev/nowplaying/commit/2dae31272c56d5e04bb3529906ca6d68442ff7f0))
23
+
* bind local card artwork to selected server ([c67c5e7](https://github.com/rowkavdev/nowplaying/commit/c67c5e7b85f34d8928b6406f3184a6424effd92f))
24
+
***card:** pick auto text direction from the displayed title ([cef0e17](https://github.com/rowkavdev/nowplaying/commit/cef0e172411dfffc2c948171cf05b0074ad37097))
25
+
* classify revoked media server tokens as authentication failures ([723ed56](https://github.com/rowkavdev/nowplaying/commit/723ed56db9f8078ccd0cc08b7d7208901ed63950))
26
+
* clear hosted playback on privacy save during outage ([5b9d572](https://github.com/rowkavdev/nowplaying/commit/5b9d5720e3b7df0ad94f76251d5033799213043d))
27
+
* clear stale Spotify consent link on sign-in failure ([5ea5954](https://github.com/rowkavdev/nowplaying/commit/5ea5954385064d6b73c1d7709993110cf5647cb0))
28
+
* confine provider credential redirects to original origin ([345edce](https://github.com/rowkavdev/nowplaying/commit/345edcebbc2f47c2cdd03ed2154c97aa5bb76d7a))
29
+
* discard late sign-in start after Cancel ([8f52243](https://github.com/rowkavdev/nowplaying/commit/8f52243177978de6b8575688d8d731fc8d119cb5))
30
+
* discard Spotify sign-in completion after expiry ([52d53bb](https://github.com/rowkavdev/nowplaying/commit/52d53bb23bfabc59ba3d90bb795f3893efa83817))
31
+
* drive the injected test clock through both Discord client timers ([#731](https://github.com/rowkavdev/nowplaying/issues/731)) ([cf15ab0](https://github.com/rowkavdev/nowplaying/commit/cf15ab0fb4c1ba9f651209c9bb35ed3f4b2924d9))
* expire artwork cache by elapsed time ([#721](https://github.com/rowkavdev/nowplaying/issues/721)) ([513c1af](https://github.com/rowkavdev/nowplaying/commit/513c1afa44468a1d02e80c6ce429ccf1a4d74657))
34
+
* expire Discord artwork by elapsed time ([#723](https://github.com/rowkavdev/nowplaying/issues/723)) ([3693e51](https://github.com/rowkavdev/nowplaying/commit/3693e51fd7dee9e440535de54ec02b8215426168))
35
+
* expire local last-good card by elapsed time ([7844ffe](https://github.com/rowkavdev/nowplaying/commit/7844ffed00d509a0de2d8a6ff265cf3c28b70b6e))
36
+
* expire YouTube tabs by elapsed time ([bcc0465](https://github.com/rowkavdev/nowplaying/commit/bcc0465a4a71750d503a447fc3633f6a06111410))
37
+
* explain server sign-in save failures in Settings ([0260a5b](https://github.com/rowkavdev/nowplaying/commit/0260a5bad13e21a6078ca00dc5bfdb42e35f9838))
38
+
* guard server sign-in and restore credentials on failed saves ([057f648](https://github.com/rowkavdev/nowplaying/commit/057f64846dc9716b7f3e011fab2f36ea4de82bdc))
39
+
***hosted:** require the exact application/json media type on ingest ([be97948](https://github.com/rowkavdev/nowplaying/commit/be97948dcdea488145b47d541abd91c0b00927fa))
40
+
* identify current repository in MusicBrainz User-Agent ([ede2712](https://github.com/rowkavdev/nowplaying/commit/ede271278e80ca96d838ef52188935fb1a25d522))
* invalidate last-good card after appearance save ([9b21318](https://github.com/rowkavdev/nowplaying/commit/9b21318c9b44d08fb054b8950245b63a44621fa1))
43
+
* invalidate pending Spotify sign-in on disconnect ([70f10e3](https://github.com/rowkavdev/nowplaying/commit/70f10e3ad7d393d871a0684c26d945f5cc465de9))
44
+
* invalidate private card cache after privacy changes ([76bfa90](https://github.com/rowkavdev/nowplaying/commit/76bfa90e8abadee2178b5ec9810d96beed077083))
45
+
* keep a clickable auth link in WebUI provider flows ([287c095](https://github.com/rowkavdev/nowplaying/commit/287c0954e0a2b3f46bed6eb52265a2b75cdfd32a))
46
+
* keep authenticated artwork redirects on original origin ([f3f7090](https://github.com/rowkavdev/nowplaying/commit/f3f709014a611610db9c3c6166cfb20bb9230032))
47
+
* keep committing sign-in flows through expiry ([1412f5d](https://github.com/rowkavdev/nowplaying/commit/1412f5d4000f3323bb7e45e90566e8736cf21fb9))
48
+
* keep hosted heartbeat alive after client clock rollback ([819a4ab](https://github.com/rowkavdev/nowplaying/commit/819a4abcc24aa6db711029d9f628078f019caba3))
49
+
* keep sign-in flow claimed throughout finish ([61bd08e](https://github.com/rowkavdev/nowplaying/commit/61bd08eff07e44620ccd9621803803187bfe1d63))
50
+
* keep sign-in visible while commit finishes ([23a65a2](https://github.com/rowkavdev/nowplaying/commit/23a65a2b162fab9ed4343bf13764848101b49657))
51
+
* keep status snapshot ordered by provider poll start ([9101ee8](https://github.com/rowkavdev/nowplaying/commit/9101ee8c0a0bc88780c95019218b2e83363a72c6))
52
+
* make sign-in cancellation honest during credential commit ([bd0ec6a](https://github.com/rowkavdev/nowplaying/commit/bd0ec6a7b7e660b36b52597d967a6b2742851294))
53
+
* measure Discord stuck and grace by elapsed time ([#727](https://github.com/rowkavdev/nowplaying/issues/727)) ([dc42e39](https://github.com/rowkavdev/nowplaying/commit/dc42e39e789cbcaeaa956a28463ce30589b8db69))
* normalize private subnet targets before probing ([c8055b1](https://github.com/rowkavdev/nowplaying/commit/c8055b19b47fe14f04863deda363656c9eb296ff))
56
+
* offer auth links in legacy setup page ([ec3fe04](https://github.com/rowkavdev/nowplaying/commit/ec3fe0423fc43d128c69954a1e3329ac1c013679))
57
+
* omit hidden subtitles from card metadata and uploads ([4b2f4da](https://github.com/rowkavdev/nowplaying/commit/4b2f4dae6752b292d8e77b128fcc97e2f6935276))
58
+
* omit progress track when timing is hidden ([17ad73e](https://github.com/rowkavdev/nowplaying/commit/17ad73e24fa489f4c1f24950fc739af30a2d2cb4))
59
+
* prevent older hosted pushes from retrying above newer state ([7801e7d](https://github.com/rowkavdev/nowplaying/commit/7801e7d5d428e56ad6e9f02b5b95b10cbee99cf5))
60
+
* prioritize failed sources over hosted startup ([ac10770](https://github.com/rowkavdev/nowplaying/commit/ac107707e79faea493a9120de3279acef201d6b3))
61
+
* rank combined playback by activity order ([d4b83f9](https://github.com/rowkavdev/nowplaying/commit/d4b83f9a3f8b7987fc292c18cf73042e1a6b987a))
62
+
* rank distinct same-title media items by stable ID ([d44b0ed](https://github.com/rowkavdev/nowplaying/commit/d44b0ed93bd7c051959695da87bb60ef79c87a25))
63
+
* rank multi-server playback by activity order ([0bb954e](https://github.com/rowkavdev/nowplaying/commit/0bb954e06c1efd95bbd957ac7ee813e2a2aa4289))
64
+
* rank YouTube tabs by playback activity order ([21c140f](https://github.com/rowkavdev/nowplaying/commit/21c140f0f1493bfd75eea0ba149de7037f257e9c))
65
+
* re-check credential liveness before saving a rotated refresh token ([#725](https://github.com/rowkavdev/nowplaying/issues/725)) ([3ff3ccb](https://github.com/rowkavdev/nowplaying/commit/3ff3ccb3aa8af4461fc7ee5e70e83b6f3c4a51c5))
66
+
* recover hosted upload sequence after clock rollback ([beb495d](https://github.com/rowkavdev/nowplaying/commit/beb495d50da48f6125bb916d64b531223b33fc22))
67
+
* reflect per-server auth failures in tray and diagnostics ([1e6203d](https://github.com/rowkavdev/nowplaying/commit/1e6203d8ad59874dcfe8a48114e472e65a9b347f))
68
+
* reject hosted ingest committed after device revocation ([2c668ce](https://github.com/rowkavdev/nowplaying/commit/2c668ce18fb43047dcc26a02abe81d49829163da))
69
+
* reject oversized Discord IPC activity without leaking waiter ([a94006a](https://github.com/rowkavdev/nowplaying/commit/a94006afb036ca2750ba162127cb106f850de670))
70
+
* remove saved sign-in when disconnecting a server ([fdd7c70](https://github.com/rowkavdev/nowplaying/commit/fdd7c701e4a53465d64886204d44116b7dd93b3b))
71
+
* replace prior hosted device on same-PC sign-in ([e8e0755](https://github.com/rowkavdev/nowplaying/commit/e8e0755d70c1f585b98210f0322caaea65575e8a))
* reset stuck detection for distinct same-title media ([8e26ced](https://github.com/rowkavdev/nowplaying/commit/8e26cedf3a0e9f01ace04ea845e247ed76148f17))
74
+
* restore focus after cancelling server sign-in ([83cee39](https://github.com/rowkavdev/nowplaying/commit/83cee39b80c54d7caf9ba5dc88629d58d7764718))
75
+
* restore Spotify credential when config save fails ([6f6b404](https://github.com/rowkavdev/nowplaying/commit/6f6b404dac44408b58bbeaf6fe316691219e8428))
76
+
* retain hosted revoke key and expose pending disconnect ([abe2377](https://github.com/rowkavdev/nowplaying/commit/abe2377243f478f6aaf6a06def17cfdf5941c72b))
77
+
* retry Discord clear after publish limiter ([7a2203d](https://github.com/rowkavdev/nowplaying/commit/7a2203d69030d3a7158e7b1edfc0e575602adae2))
* retry first-run activation after another sign-in ([91c9fe2](https://github.com/rowkavdev/nowplaying/commit/91c9fe2acd4cd7ff2014fec31fc776c20c45c723))
80
+
* retry unchanged Discord activity after publish failure ([d6cff56](https://github.com/rowkavdev/nowplaying/commit/d6cff5638fb67c16718836d53870fad3d393572e))
81
+
* run optional setup before committing server config ([89d9319](https://github.com/rowkavdev/nowplaying/commit/89d9319e1a279e6271b2e80126623d07c0dba9e5))
***setup:** accept a 4096-byte draft on load ([7d68d1d](https://github.com/rowkavdev/nowplaying/commit/7d68d1d9c904e73becab33fdbabc092103009c81))
84
+
***setup:** settle LAN discovery when cancelled during bind ([1757815](https://github.com/rowkavdev/nowplaying/commit/1757815d7596d7c69da70b5263d82edc604e6f81))
85
+
* share first hosted registration across callers ([0cb6d0e](https://github.com/rowkavdev/nowplaying/commit/0cb6d0e35ecd43713a2bb2e289ac151dd29a5669))
86
+
* show failed server in Settings notice ([65d65dd](https://github.com/rowkavdev/nowplaying/commit/65d65dd036d609cdd9c0e59f00dddb0e531fb6b4))
87
+
* show localhost Plex probe failures in quick scan ([85d0e28](https://github.com/rowkavdev/nowplaying/commit/85d0e28d058c0f35600125489b79834907d4e29a))
88
+
* show per-server sign-in failures in multi-server status ([627a8b2](https://github.com/rowkavdev/nowplaying/commit/627a8b2f2d197286beab59503c7d8fa7b855632c))
89
+
* skip artwork fetch when card hides image ([d039fcb](https://github.com/rowkavdev/nowplaying/commit/d039fcb2b80e6e0eb6e9ed56c3405076ed4763f3))
90
+
* space MusicBrainz requests by elapsed clock ([#734](https://github.com/rowkavdev/nowplaying/issues/734)) ([4a0cc23](https://github.com/rowkavdev/nowplaying/commit/4a0cc23c430d51fb1b373dbac79df2bab9ff2a06))
91
+
* stream first-run discovery probe bodies with a running byte cap ([#745](https://github.com/rowkavdev/nowplaying/issues/745)) ([0ccf48b](https://github.com/rowkavdev/nowplaying/commit/0ccf48b6173b6824ab0d257e9430558d025e0f54))
92
+
* surface failed first-run activation with recovery ([192e8b6](https://github.com/rowkavdev/nowplaying/commit/192e8b6d11bde8b4fe49fa081c7c35d29cb798f7))
93
+
* surface hosted upload failures in app health ([b670eca](https://github.com/rowkavdev/nowplaying/commit/b670eca419e8f07c53d7b3753d16a42aa265d34b))
94
+
* time Discord publish throttle and reconnect backoff by elapsed clock ([#731](https://github.com/rowkavdev/nowplaying/issues/731)) ([5794b1d](https://github.com/rowkavdev/nowplaying/commit/5794b1db1ad6f70dd1e4d29f3fbedb0f87be2cf5))
95
+
* time hosted device flow by elapsed clock ([#729](https://github.com/rowkavdev/nowplaying/issues/729)) ([692f110](https://github.com/rowkavdev/nowplaying/commit/692f110f7ee32a541376f61f841fc2f50d6b75d0))
96
+
* time hosted sign-in restart guard by elapsed clock ([#741](https://github.com/rowkavdev/nowplaying/issues/741)) ([18859b1](https://github.com/rowkavdev/nowplaying/commit/18859b1d86eac28d23d5068465d5848c0bcd3182))
97
+
* time status-only refresh interval by elapsed clock ([#736](https://github.com/rowkavdev/nowplaying/issues/736)) ([d670e3a](https://github.com/rowkavdev/nowplaying/commit/d670e3aeb9a955c6f94cb60dd8701be31696d433))
98
+
* track setup test rate window by elapsed clock ([#739](https://github.com/rowkavdev/nowplaying/issues/739)) ([e79d193](https://github.com/rowkavdev/nowplaying/commit/e79d1936b13c4c4153005c5f6c4c289ef74757b4))
99
+
***tray:** close the app on a stop request after the tray fails ([031a0b7](https://github.com/rowkavdev/nowplaying/commit/031a0b796c83085f614bff187aee01042421c94a))
100
+
***tray:** keep one quit waiter across Settings restarts ([1b2d99f](https://github.com/rowkavdev/nowplaying/commit/1b2d99ff9efd7da4e9201a514e7931492127719a))
101
+
***tray:** log tray outcomes with statuses the logger accepts ([73b4110](https://github.com/rowkavdev/nowplaying/commit/73b4110acdc974845f12db83a0fbc8540a53ea0a))
102
+
* use elapsed time for hosted stale playback guards ([14b4cd9](https://github.com/rowkavdev/nowplaying/commit/14b4cd9652ebfd77055e7498e018a852590ebd70))
103
+
* use elapsed time for hosted upload backoff ([e9cf458](https://github.com/rowkavdev/nowplaying/commit/e9cf45892c11a84052c10d7f7ed4d09700dc4da6))
104
+
* use elapsed time for provider reconnect backoff ([e81bc10](https://github.com/rowkavdev/nowplaying/commit/e81bc10b3bd02a497eb585aa475485795146630d))
105
+
* wait for cancel before switching server sign-in ([a3e90a6](https://github.com/rowkavdev/nowplaying/commit/a3e90a6535fb106eaa3d34add3a3b11965070982))
0 commit comments