Bug fixes
Phantom rewatch entries from diary import are now suppressed (#32)
With Import diary as played enabled, the daily catch-up sync was posting fresh rewatch entries to Letterboxd for films you had only marked played via diary import, never actually watched on Jellyfin.
The loop:
- You log a film directly on Letterboxd (e.g. watched on another device).
- The diary-import task marks the matching Jellyfin item as played.
LastPlayedDateis intentionally left null to avoid this loop. - The next daily sync picks the film up because
IsPlayed = true, defaults the viewing date to today (since there's noLastPlayedDate), and the same-day duplicate check fails (the real Letterboxd entry is dated differently). - A duplicate diary entry gets posted. Next day: same thing, another phantom rewatch.
Fix: the sync runner now records a diary-import marker per film and skips re-exporting any film that has the marker but no LastPlayedDate. If you later actually watch the film on Jellyfin, playback sets LastPlayedDate and the suppression releases, so a real rewatch lands on Letterboxd as expected.
The second half of #32 (manual "ignore and remove" UI for these films) is tracked separately.
Documentation
File Transformation plugin is now documented as a prerequisite (#35)
The Letterboxd entry in the Jellyfin sidebar is injected via the File Transformation plugin. If it isn't installed, sidebar injection silently no-ops and the link never appears. README and the landing site now call this out under both Install paths and Requirements, including the File Transformation manifest URL and a hard-refresh reminder.
If you installed v1.11.0 or v1.11.1 and never saw the Letterboxd sidebar entry, install File Transformation and hard-refresh the Jellyfin web UI.
Tests
431 passing. Adds regression coverage for the diary-import suppression (SyncHistoryLookupTests, DiaryImportTaskTests, LetterboxdSyncRunnerTests) and moves SyncHistoryStaticTests into the Plugin xUnit collection to serialise it against the other tests that now touch SyncHistory.
Install
Plugin repository: `https://raw.githubusercontent.com/builtbyproxy/jellyfin-plugin-letterboxd/main/manifest.json\`
Manual: download the ZIP below.
Reminder: the in-sidebar link requires the File Transformation plugin. Everything else works without it.
Full changelog: v1.11.1...v1.11.2