Vellum/internal/jellyfin
mithral 2bdfc6d139 Serve the Jellyfin surface under /emby as well as at the root
Many Jellyfin clients probe GET /emby/System/Info/Public during their
handshake. There was no /emby prefix anywhere in the tree, so that 404ed
and the client abandoned discovery and fell back to its manual "enter your
server URL" screen - the exact experience mDNS exists to remove.

Register installs every pattern twice through a mount helper, with the same
handler value both times, so the alias cannot drift from the root surface.
The JSON 404 fallbacks get /emby forms too, plus one subtree handler,
because static.go's isAPIPath knows only /healthz and /api/ and an unknown
/emby/... path would otherwise be served the SPA shell.

No new endpoint, no handler behaviour changed, and the bare root paths are
untouched: Jellyfin's own clients use them.
2026-10-12 01:04:33 -04:00
..
dto Close the Jellyfin test gap 2026-10-11 16:10:58 -04:00
auth.go Waves 9-10: Jellyfin and Subsonic clients can browse and play 2026-10-11 15:05:43 -04:00
items.go Phase 2: split the fat packages along real boundaries 2026-10-11 16:03:10 -04:00
jellyfin.go Serve the Jellyfin surface under /emby as well as at the root 2026-10-12 01:04:33 -04:00
jellyfin_test.go Serve the Jellyfin surface under /emby as well as at the root 2026-10-12 01:04:33 -04:00
playback.go Phase 2: split the fat packages along real boundaries 2026-10-11 16:03:10 -04:00
query.go Phase 2: split the fat packages along real boundaries 2026-10-11 16:03:10 -04:00
sessions.go Phase 2: split the fat packages along real boundaries 2026-10-11 16:03:10 -04:00
system.go Rate limit every surface that checks a password 2026-10-12 00:57:56 -04:00