github ZL154/AchievementBadges_for_Jellyfin v1.5.21

latest releases: v2.2.0, v2.1.3, v2.1.2...
4 months ago

Root-cause fix: the sidebar entry now actually reaches the browser

v1.5.19 and v1.5.20 were fixing the wrong layer. The injection code was fine — the script never reached the browser in the first place.

The bug: SidebarInjectionMiddleware.IsIndexHtmlRequest only matched requests whose URL contained the literal string index.html, but Jellyfin web is typically served at /web/ with no filename. Every shell-page load bypassed the middleware and no script ever got injected.

The fix: the middleware now intercepts any plausible HTML GET (anything that isn't an obvious static asset, /api/, /Plugins/, /emby/, /Videos/, etc.) and gates on Content-Type: text/html before rewriting.

While I was in there I also fixed two adjacent bugs:

  • Compressed responses (gzip / br) are now passed through untouched instead of being read through a UTF-8 StreamReader and mangled into garbage.
  • Content-Length is cleared instead of pre-set, which was triggering a Kestrel write race on some configurations.

Don't miss a new AchievementBadges_for_Jellyfin release

NewReleases is sending notifications on new releases.