Repository navigation
fix(catalogs): bring back an addon's deleted rows when it is installed again - #859
Merged
ProdigyV21 merged 1 commit intoNov 2, 2026
Conversation
…d again Deleting an addon row stores its id in the profile's hidden-addon list so the next sync doesn't re-create it from the manifest. Row ids are stable per addon and catalog, and nothing ever clears that list, so after uninstalling and reinstalling an addon its rows stayed hidden with no way to restore them. Installing an addon now removes that addon's row ids from the hidden list before the catalog sync. Rows of other addons stay hidden, and deleting a row while the addon stays installed still sticks.
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
Deleting an addon row in Settings → Catalogs saves the row id to the profile's hidden-addon list, so the next addon sync doesn't re-create it from the manifest. Row ids are stable (
addon_<hash of addonId|type|catalogId>), and nothing ever clears that list.As a result, if you delete an addon's rows, uninstall the addon and later install it again, its rows never come back. The install toast still says the addon has N catalogs, but Home shows none of them, and the app has no way to restore them. The list is also cloud-synced, so the rows stay hidden on every device.
Fix
CatalogRepository.restoreHiddenAddonCatalogs(addon)removes the installed addon's row ids from the active profile's hidden-addon list. It writes throughwriteCatalogField, so the change gets a fresh cloud timestamp and syncs to other devices, and it resets the sync fingerprint.SettingsViewModel.installAddoncalls it just beforesyncAddonCatalogs. This covers adding an addon by URL and installing from a link (stremio://).What doesn't change:
Testing
CatalogDeletionSyncTest.reinstallingAddonRestoresOnlyItsOwnDeletedRows. It sets up two addons, deletes all their rows, restores one addon, and checks that only its rows come back and that the hidden list gets a cloud timestamp. All 11 tests in the class pass.stremio://link, its ids left the list, the other hidden ids stayed, and all 4 rows showed on Home with cards.