The wiki describes 5.0.0 as the build Latest points at, and the 4.3 line in a note [#1817]
Since 2026-09-21 the Latest mark is 5.0.0-JF12-stable, and seven pages still
opened with a note calling the one-page 4.3 settings the Latest build. I turned
each of those round: the body now names the five tabs where it says where a
setting is, and a note carries what differs on the 4.3 line. The same flip
covers the behaviour notes that named Latest or described 5.0 only in a note:
the test-connection result shape, the refusal words, the self-revoke refusal,
the link-import answer, the refusal event, the unreadable-file recovery and
the rollback audit lines. I checked each of those against the 4.3.0-stable
and 5.0.0-JF12-stable tags before writing it.
Installation now lists the stable URL first and the beta URL beside it, the
way the README on 5.1 does, and carries the tab layout under "Where the
settings are", which the other notes link to. Releasing and Rollback lose the
retired-channel notes and say what manifest-release serves, with both
publication dates. Rollback lost its tab note because its body is the same on
both lines. Home says Full Release.
The server-migration export note used to put both files on the Server tab;
at 5.0.0-JF12-stable the account-link export is on Accounts, so the page says
that now.
scripts/wiki-lint.py at c5d9b50f reports clean on this tree, and it goes red
with five findings when the new heading is renamed.
Contributes to Flowfin/jellyfin-plugin-sso#1817
Mark the three passages of this morning as the 5.0 line, which is the only line that has them [#1540, #1553, #1744]
The link-import counts on Server-Migration, the Notifications section on
Troubleshooting and the last-link refusal on Login-Flow landed earlier today
unmarked, on the reading that the build Latest points at carries them. That
reading was wrong. It read the tree of the tag 4.3.0-beta.72, and that tag was
created at the head of the default branch, 5.0, while the package it names was
built from main at df44f000: the asset is community-sso-for-jellyfin_4.3.0.72.
Read at the commits that were actually built, the 4.3 package has none of the
three behaviours and 5.0.0-JF12-beta.85 has all of them:
df44f000 (4.3): role-mapping-denied no, LinkImportResultDocument no, link.delete_refused_would_strand no
c0acaf51 (JF12): role-mapping-denied yes, LinkImportResultDocument yes, link.delete_refused_would_strand yes
So each passage now says which line it describes, in the shape the rest of the
wiki already uses, and the 4.3 reader is told what their build does instead:
the three Server-Migration lines about the audit line come back ahead of the
5.0 block, the Notifications heading names its line, and the Login-Flow and
Security-Model sentences say the refusal is the 5.0 line's. These are the
reworks drafted on #1540 and #1553 on 2026-09-12, which were right.
Say that a link import answers its counts, and what an empty one means [#1540]
The migration page told an operator to read the per-provider counts off the
audit line. Since #1520 the import answers them: a 200 with Restored and a
per-provider list, printed by the settings page, so step 4 no longer needs the
server log. This is the text approved on the issue on 2026-09-09, in its
original shape.
It was held for the release that carries #1520. Both published lines carry it
now: 4.3.0-beta.72, which Latest points at, and every JF12 beta since
5.0.0-JF12-beta.80. That also removes the reason for the marked 4.3 and 5.0
block of the 2026-09-12 rework, so the rework is not what lands.
Say on every page that names the settings surface that the 5.0 line has five tabs [#1574]
Say that the fix has landed rather than that it is waiting [#1135]
The line was written while the change was open and stopped being true when it
merged. What an operator acts on is unchanged: no published build carries it, so
step 4 still restores nothing on everything installable today.
Signed-off-by: iderex <30603423+iderex@users.noreply.github.com>
Say that the migration's last step restores nothing on every published build [#1135]
Walking this page end to end against a scratch server rebuild is what #1135 asks
for, and the walk found that step 4 does not work: the account-link import
answers "Imported" and restores none of the links, on every beta from
4.3.0-beta.43 to 4.3.0-beta.61. A server migrated on one of those has an empty
link table and was never told, so the warning goes at the top of the page rather
than into a footnote.
The page no longer says it has not been walked, because it has. Two things it
claimed are corrected against the run rather than against the source: rolling
back a successful import is not the pair of files it promised - the import adds
and overwrites but never removes, so a wrong file's entries block the correct
one and there is no bulk unlink - and a refused import really does leave the
link table untouched, which the walk checked after each of the four refusals.
Signed-off-by: iderex <30603423+iderex@users.noreply.github.com>
Give an operator the migration order on the wiki [#1135]
The runbook landed in the repository with #1423 and the wiki, which is where an
operator looks first, said nothing about moving a server. Installation covers
getting the plugin onto one and Rollback covers reversing a bad release; between
them there was no answer to "I am rebuilding this server and I do not want
everybody to link their account again".
This is the reader-facing half and it deliberately carries less than the
repository page: the two files, the four ordered steps with the refusal that
forces each one, what never comes back, and the three failures a migration
actually hits. Every code line, and the full refusal table, stay on the
repository pages and are linked rather than copied, so there is one home for each
fact and the wiki cannot drift into contradicting the source it was read from.
The two consequences worth planning around are pulled out of the omission list
rather than left inside it, because they change what an operator has to do:
the secrets have to be re-entered or every migrated provider fails closed, and a
role-mapped access deadline comes back absent, so a time-limited account is
restored unlimited.
The page carries the same admission the repository page carries: nobody has
walked this against a scratch rebuild, and the refusals are quoted from the code
rather than from a run. That is what #1135 stays open for, and the note says so
where a reader meets it rather than in the issue only.