Skip to content

bugfix-CWNU - Properly sync Continue Watching and Next Up Hidden Items - #267

Open
mattsigal wants to merge 1 commit into
Moonfin-Client:masterfrom
mattsigal:feature/fix-content-hiding-sync
Open

bugfix-CWNU - Properly sync Continue Watching and Next Up Hidden Items#267
mattsigal wants to merge 1 commit into
Moonfin-Client:masterfrom
mattsigal:feature/fix-content-hiding-sync

Conversation

@mattsigal

@mattsigal mattsigal commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator

Pull Request

Summary

Fixes an issue where items marked as "Hide from Continue Watching" or "Hide from Next Up" on one device were overwritten and wiped out when other devices synced or pushed profile updates to Moonbase. This caused items that were hidden from the CW&NU row to reappear when they shouldn't be able to.

Related Issues

Link related issues or tickets separated by commas.

  • Closes #
  • Fixes #
  • Related to #

Type of Change

  • Bug fix
  • New feature
  • Refactor
  • Performance improvement
  • API / endpoint change
  • Settings schema change
  • Documentation update
  • Build/CI change
  • Other (describe):

Area

  • Settings sync / profiles
  • Admin defaults / config page
  • Ratings (MDBList / TMDB)
  • Notifications / Push (FCM / relay)
  • Seerr integration
  • Games / Emulators
  • Custom home rows
  • Web Client (Go to Moonfin-Core repo)
  • Other / shared

Changes Made

List the key changes included in this PR.

  • Included settings.Global in UnionHiddenEntries across both Jellyfin and Emby backend MoonfinSettingsService.cs implementations so existing hidden items stored in the global profile persist across subsequent device profile pushes.
  • Updated UnionHiddenEntries to merge dictionaries by item ID and keep the latest ISO-8601 timestamp per item.
  • Added unit test SuccessiveDeviceProfileSavesPreserveGlobalHiddenItems in AdminDefaultsMergeTests.cs verifying multi-device sync persistence and resolution.

Client Impact

Does this need matching changes in a client repo (Core, Smart-TV, Roku)?

  • No client changes needed
  • Companion client PR(s) required, linked here:
  • New setting keys added. List each key and confirm it matches the client key exactly, including casing:

Compatibility

  • Change to the settings profile is additive only, no renamed or removed properties
  • New properties use the same type the client sends (a client bool maps to bool?, an int to int?)
  • Migration added for any renamed or removed settings
  • Older clients still work, unknown fields are ignored and no keys were removed

Testing

Describe how this change was tested.

  • Built the plugin and deployed to a Jellyfin server
  • Verified against a live client (which one:) Windows Desktop and Android-TV (both stable releases)
  • Manual testing completed
  • Not tested (explain why): Ran dotnet build on Jellyfin and Emby plugin projects to ensure clean compilation and verified unit tests in AdminDefaultsMergeTests.cs covering successive device profile saves and global resolution. Discovered this issue while investigating the CW&NU slow-down (which turns out to be unrelated), but can properly test this PR after I finish with the Moonfin-Core one. NOW PROPERLY TESTED :)

Test Steps

  1. Mark item on Client A as "hidden"
  2. Open Moonfin on Client B and make sure the CW&NU rows match

Screenshots (if applicable)

Include config page screenshots or request/response samples where relevant.

These screenshots jump between Windows Desktop and Android-TV to show the near instant syncing between the clients in terms of hiding content from CW&NU:

2026-09-01_10-28-04_moonfin Shield_Screenshot_2026-09-01_10-32-01 2026-09-01_10-32-47_moonfin

Checklist

  • Code builds successfully
  • Code follows project style and conventions
  • No unnecessary commented-out code
  • No new warnings introduced
  • Any new setting keys match the client-side keys exactly

Include settings.Global in UnionHiddenEntries so items hidden from one device
persist in the global profile when other devices sync or push profile updates.
@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown

Build Successful

The plugin compiled successfully against .NET 8 / Jellyfin 10.10.0.

Property Value
Commit 5a6a5c2
Workflow Build #358

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant