6919158012
Slice 3 (final) of jellyfin-service-registry. Documents the completed migration and archives the SDD change. - docs/REQUIREMENTS.md: marked the machine-level Jellyfin follow-up resolved; added a decision-log entry (Jellyfin no longer a machine service, dead media_root/path_prefix removed; global config + path_utils retained for Jellyfin->SSH path resolution). - CHANGELOG.md: struck through the old follow-up note; added a Follow-up #2 section describing the machine field + service removal. - Archived openspec/changes/jellyfin-service-registry (no active SDD changes remain). Backend ruff clean / 239 tests pass; frontend 0 lint errors / build clean / 72 tests pass.
2.4 KiB
2.4 KiB
Proposal — Jellyfin service-registry migration (completion)
Change: jellyfin-service-registry
Phase: proposal
Date: 2026-06-23
Problem
The service-registry foundation already moved Jellyfin/Jellyseerr resolution into dependencies.py (get_jellyfin_client, get_jellyseerr_client, get_user_id) using jellyfin_service_id. The frontend Applications, Media, and Users pages already consume useServiceInstances("jellyfin").
However, the machine-level config still carries legacy Jellyfin DNA that is now dead or misleading:
DEFAULT_SERVICES = ["monitoring", "files", "jellyfin"]insettings_store.pyauto-tags every local machine as a Jellyfin source.- The Settings machine editor still exposes
servicesmulti-select that can includejellyfin, even though Jellyfin is selected via the Services page, not via a machine. MonitoringMachinetypes still carrymedia_rootandpath_prefixfields whose original purpose was Jellyfin→SSH path mapping, but the path-mapping logic inpath_utils.pynow operates independently and those fields are no longer read by the media/file flows.- Documentation still describes machine-level Jellyfin fields in places.
This creates UI confusion (two places to think about Jellyfin) and stale surface area.
Goal
Cleanly complete the Jellyfin migration onto the service registry:
- Remove Jellyfin from the machine
servicestaxonomy entirely. - Remove dead
media_root/path_prefixmachine fields from backend, frontend types, Settings form, and tests. - Update path-resolution helpers to rely only on the Jellyfin service config (or explicit path-prefix settings on the service record if needed), not on machine fields.
- Update docs and changelog.
Non-goals
- Do NOT change how Jellyfin/Jellyseerr clients are resolved in
dependencies.py— that is already correct. - Do NOT remove the
jellyfin/jellyseerrservice definitions. - Do NOT add new service types or widgets in this change.
Acceptance
grep -R "media_root\|path_prefix" backend/src frontend/srcreturns onlypath_utils.pyand its tests (if those helpers remain) or nothing (if the helpers are removed).jellyfinno longer appears in machineservicesoptions in the Settings UI.DEFAULT_SERVICESno longer includesjellyfin.- Backend and frontend test suites remain green.
- Docs/CHANGELOG explain the final migration.