fix(jellyfin): anchor the provider-key write on the file’s real root #121
Open
dank
wants to merge 1 commits from
chore/jellyfin-tvdb-key into main
pull from: chore/jellyfin-tvdb-key
merge into: dank:main
dank:main
dank:docs/jellyfin-scan-door
dank:feat/audiobookshelf-bootstrap
dank:chore/untrack-agenttrash
dank:feat/media-io-weight
dank:fix/array-mount-gate
dank:perf/media-apply-batch
dank:fix/episode-marker-guard
dank:feat/media-tvdb-id-map
dank:feat/media-tv-relayout
dank:feat/media-metadata-view
dank:feat/media-tv-mover
dank:fix/media-series-key
dank:feat/media-sweep
dank:feat/media-relayout
dank:fix/quant-pipeline-hardening
dank:chore/fleet-image-refresh
dank:docs/radiance-engine-reference
dank:fix/qwen38-calib-shape
dank:fix/qwen38-flat-round
dank:fix/qwen38-tap-marker
dank:feat/qwen38-w5nl64
dank:feat/frank-archon-pool-step
dank:fix/signal-relay-fw-order
dank:security/quadlet-digest-pins
dank:fix/blackbox-entrypoint-bind
dank:fix/blackbox-web-listen-flag
dank:fix/blackbox-unit-generation
dank:fix/blackbox-service-gates
dank:fix/observability-errors-gone
dank:fix/grafana-copier-glob
dank:fix/dragoon-context-200k
dank:fix/deploy-sh-allowlist-drift
dank:chore/plex-1435
dank:feat/gpu-stats
dank:wt/20261020-213526
dank:feat/containers-observability
dank:feat/archon-dashboard
dank:feat/e2e-audit-coverage
dank:feat/grafana-starter-dashboards
dank:fix/grafana-authentik-sso
dank:feat/alloy-root-journal
dank:fix/observability-vllm-loki
dank:docs/openwebui-tts-voice
dank:chore/narrator-voice-repoint
dank:chore/open-notebook-admin-tenant
dank:chore/authentik-session-ttl
dank:chore/agent-skills-vault-setup
dank:feat/frank-dragoon-npu-lane
dank:feat/open-notebook-portal
dank:docs/radiance-prefill-decode-census
dank:docs/npu-tts-verdict
dank:fix/frank-archon-two-slots
dank:fix/frank-archon-cache-ceiling
dank:feat/frank-archon-radiance-181
dank:docs/vault-dedupe-okf-20261019
dank:chore/frank-zealot-mtp-reslice
dank:wt/20261017-181502
dank:docs/zealot-f16-measured-record
dank:fix/zealot-2x262144-f16-kv
dank:docs/openwebui-browser-kokoro-tts
dank:docs/frank-tts-voice-lore
dank:fix/frank-tts-default-voice
dank:docs/frank-tts-live
dank:docs/retire-cold-voice-ladder
dank:fix/frank-tts-warm-argv
dank:feat/frank-tts-engine
dank:feat/voice-pack-builder
dank:docs/tts-engine-trials
dank:chore/pr-attribution-trailer
dank:feat/open-notebook-podcast
dank:wt/20261015-040156
dank:wt/20261015-030408
dank:wt/20261013-180349
dank:wt/20261013-185330
dank:wt/20261009-204001
dank:wt/20261006-122204
dank:autoresearch/optimize-the-speed-of-frank-primary-make-it-fast-20261002
dank:autoresearch/iteratively-improve-the-decode-and-prefill-speed-20260929
dank:autoresearch/without-changing-the-quantization-or-checkpoint-20260927
dank:frank-large-strix-model
dank:feature/tiel-coder-flash-next
dank:feat/service-scoped-deploy
dank:deploy/searxng-provider-policy
dank:frank-default-large-q8agent-262144
dank:eemin-rocmi4-mtp-large
dank:frank-large-tune-ctx-batch-thinking
dank:tune-frank-small-context-163840
dank:vllm-qwen36
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
installcould never place the TVDB key. TheTVDB writes its own configurationfile and its serializer omits a null-valued setting entirely, so a fresh install
carries no
<ApiKey>element at all — and the fallback insertion was anchored ona hardcoded
</Configuration>, a root that file does not have: the plugin namesits own root
<PluginConfiguration>. The writer fell through to its own guard:The key has been sitting in
provider-keys(mode 600) on Dankserver sinceOctober and has never been installable.
verifyhas been reportingMISSING keybecause of this, not because the secret was absent.
Change
xml_secretnow takes its anchor from the document's own root element, so bothshapes Jellyfin actually produces work: the core plugins'
<Configuration>anda plugin's
<PluginConfiguration>.still beats inventing a document shape.
opens), and nothing about the pinned-artifact checks moves.
Evidence
<ApiKey>,settings beside it — and is red before this commit, green after; it also
asserts every other setting survives, because Jellyfin owns that file.
tests/jellyfin_providers.bats: 25 ok / 0 failed../tests/run.sh: 814/814.After merge
./scripts/deploy.sh dankserver --service jellyfinplaces the key (the deployerruns this installer before it restarts Jellyfin) and
verifystops reportingMISSING key. No library behaviour changes by itself:Showsfetches fromTMDb/OMDb, and adding TVDB as a fetcher is a separate decision.
cwd: /home/blank/.omp/wt/wt-20261030-163847-6d1fc1f · session: 01a18f2e-18b1-7573-bcd5-ac99636f8bcb (build worktree: /tmp/wt-jf-prov)
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.