Repository navigation
Jellyfin and Emby setup is optional and can be run from the app later - #77
Merged
Merged
Conversation
An unanswered username and password prompt failed the whole install after
10 minutes, though the app was installed and running. Both setup hooks are
now optional, as Plex's is, so the install completes, and they are also
card actions ("Pre-configure Jellyfin", "Pre-configure Emby") to run later.
Emby moves to the v6 install script format, which card actions need.
Run from the card, a hook has no retry or skip to wait on: a library it
cannot create stops the run with its name, libraries it cannot list stop it
before anything is created, and a wrong login says to run it again.
…etup-optional # Conflicts: # emby.json
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🔍 Problem
Installing Jellyfin asks for an admin username and password after the app is created. When nobody answers within 10 minutes, the whole install fails ("Hook configure-jellyfin timed out waiting for user input"), though Jellyfin is installed and running. In the last 30 days (prod events, 2026-10-16) that hit about 23 users, and each failure also shows up as "parent failed" and "stale" rows under it. Emby's hook has the same setting (
optional: false) and would fail the same way. Plex's hook is optional, so a timeout there only skips the setup.🛠️ Change
optional: true.events: ["onAfterInstall", "userAction"],rerun: "converge",surfaces: ["card"]. The app's Connections tab and Options > App Actions offer "Pre-configure Jellyfin" / "Pre-configure Emby", which asks for the login again.cardonly, so the button stays off Jellyfin's now-playing widget.awaitCheckpointRetrythrows there. With the staging script the run failed with that internal error instead.script.versionis bumped (Jellyfin 2.2.0, Emby 2.2.0), with change logs.The install-time behaviour is unchanged apart from
optional: retry and skip on a failed library, and the old message for a wrong login.origin/staging;_knowledge/features/apps.mdin the platform repo says Plex's hook is already a lifecycle hook and a card action, and its example still writesuserOptional.label. That is a separate docs fix there.✅ Verification
bun _lib/validate.ts(55 scripts) and_libtypecheck, after merging staging (#75)tsc --stricton both hook scripts (CI's typecheck covers only_lib)appsInstallScriptSchema,parseAppHooksV6andrunnableHooksFromScriptatorigin/stagingon both files: valid, user-triggerable, lifecycleonAfterInstall, optional, surfaces["card"], consent label fromtitle/videosmissing: wizard done, 4 libraries made, then stops naming Videos/videosmissing: Videos skipped, completes (unchanged)/videosadded, card run again: only Videos is made, completes