github stevezau/shortlist v1.4.0

5 hours ago

Added

  • Shortlist now tells you when it cannot make a row private. Plex refuses a label share-filter
    for a managed account with a parental Restriction Profile set, so those accounts were skipped —
    on the stated grounds that such an account "sees zero collections anyway". That is true of Younger
    Kid
    and false of Older Kid, which on a real server listed three collections. So for those
    accounts nothing hid other people's rows and nothing said so. Every run now checks each profiled
    account with that account's own token and reports what it can actually see: a dashboard alert
    that cannot be dismissed while it is true, a "Sees N rows of others'" badge in the Users list,
    and an explanation on the person's page. Shortlist still cannot fix it — hiding a row is the
    filter Plex is refusing — so the one remedy that works (clear the Restriction Profile) is named,
    and disabling the account is explicitly called out as not a fix, since that removes their own row
    rather than their view of everyone else's. (#76)

  • People who leave your Plex server are handled properly. Losing access already switched someone
    off and removed their rows, but the Users list then showed them exactly like an account you had
    turned off yourself, and the share-filter exclude for their deleted row stayed in every other
    account's filter permanently (one real server had reached 990-character filter strings). Departed
    accounts are now badged Left the server and offer Remove, which drops their pick and run
    history and clears them out of the list. Remove deliberately keeps their original Plex share
    settings, so uninstalling Shortlist can still restore that account exactly as it was found — that
    record is the only copy. A departure is re-checked every sync, so re-inviting somebody brings them
    straight back.

  • Shortlist tells you when another tool is fighting it over the Recommended shelf. That shelf is
    one server-wide list, so anything else that manages Plex recommendations (Kometa, agregarr,
    Plex-Meta-Manager) reorders your rows along with everything else. It is invisible from any single
    pass — Shortlist moves its rows, re-reads the shelf, confirms the new order, and is right; the other
    tool moves them back minutes later. When the same row has had to be put back three or more times in
    a day, an alert now says so, names the likely tools, and gives the two ways out: exclude
    shortlist_* collections in that tool, or turn off Let Shortlist order the Recommended shelf and
    hand the order over. Your rows are still built, delivered and kept private either way.

  • Shortlist and Agregarr stop fighting over the Recommended shelf. If you also run
    Agregarr, both tools arrange the same shelf and each
    undoes the other: Shortlist puts the rows up top, Agregarr re-applies its own stored order within
    half an hour, and around it goes — on one real server 35 of 91 rows were left below position 21.
    Connect Agregarr under Settings → Connections (its address plus the API key from Agregarr's own
    Settings → General) and the end of each run tells Agregarr where the rows ended up, so its next
    sync reproduces the shelf instead of undoing it.

    It stores the shelf as Plex is already showing it, never an order of its own invention, so your
    other Agregarr rows keep their order relative to each other and simply move down to make room.
    Nothing else about them is touched — not posters, visibility, titles or summaries. The connection
    is entirely optional: without it nothing changes and not one extra call is made. If Agregarr is
    unreachable the run finishes normally with a warning rather than failing, and gives up in about
    twenty seconds rather than stalling. Every attempt is recorded — run.agregarr_order for a nightly
    run, shelf.agregarr for the Fix privacy and Check server buttons — each carrying the
    before and after ordering, since Agregarr's previous order is not otherwise recoverable.

Fixed

  • A failed run no longer clears the "can see other people's rows" alert. The alert and the
    Sees N rows of others' badges are driven by the most recent run that actually checked — but
    every run recorded itself as having checked, including one that died before it got anywhere near
    the check. So a single failed run silently removed the alert, zeroed every badge and switched the
    person's page to its reassuring wording, while the exposure itself was untouched. Runs now record
    whether they got as far as looking, and only a run that did can clear a finding. The same silence
    in two other places is fixed with it: an account whose token could not be obtained was counted as
    seeing nothing rather than as unchecked, and the badge suggested turning the person off — which
    removes their own row, not their view of everyone else's, as the rest of the feature already said.

  • Rows promoted nowhere are no longer shuffled around the shelf. A row belonging to a paused or
    disabled person sits on no surface at all, so its position is invisible to everyone — but it is
    still listed among the managed hubs, and every ordering pass moved it back into place. That was
    four pointless Plex writes per library per pass, and it made a settled shelf look contested: a
    co-managing tool rightly ignores those rows, so Shortlist alone kept moving them. A row on any
    surface — including the owner's own Home — is still placed as before.

  • Rows no longer get stranded at the bottom of the Recommended shelf. Three separate faults, each
    enough on its own to make it unfixable. A run with no users — which is what every privacy sync is —
    came out with no libraries to order, so the whole pass silently did nothing. A per-library shelf
    anchor made the pass take its rows from the run in progress, so a run with no users had nothing to
    move and said nothing about it; it also dropped the row of anyone paused, errored or skipped. And
    the reorder itself re-issued a move for every row whenever any one was misplaced (47 writes where
    19 were needed) and then reported success without ever re-reading the shelf. Ordering now happens on
    every privacy sync and on Check and fix rows on Plex rather than only overnight, moves only what
    is out of place, and re-reads to confirm — recording the result as unverified rather than claiming a
    shelf it did not get.

  • Dead privacy excludes are cleaned up. A label!=shortlist_<person> exclude for a row that no
    longer exists is now removed from everyone's share filter — but only once two independent checks
    agree the row is gone: a complete collections read in which nothing carries that label, and
    Shortlist's own record that the person departed. Either alone can be wrong in the direction that
    un-hides a live row, so neither is trusted by itself.

  • The nightly departure sweep is now tested. It disables people and deletes collections
    unattended, and had no test coverage at all — including the two limits that stop it acting on a
    truncated read from plex.tv (an empty roster is ignored; more than half the server appearing to
    leave at once is refused and recorded).

Don't miss a new shortlist release

NewReleases is sending notifications on new releases.