You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It would make sense if Verify and Repair managed ModrinthModpack, ServerProject, ModrinthHosting, ImportedModpack, and SharedInstance source kinds. But for non-shared and non-managed Local content, it would only get in the way of users who externally manage content.
verify-and-repair.mp4
The database noticed that Fabric API was removed externally (not through the App UI) and therefore marks it as missing.
When I go to verify and repair, it restores the mod I deliberately removed because it was "missing".
Possible solutions
1. Give each `source_kind` a repair policy (core fix)
SharedContent (for hardlinked content in the future)
No action
Repair
Local
No action
No action
Managed kinds have an external definition of desired state. For Local content, desired state is whatever is on disk.
2. Treat the disk as truth for Local rows
When an external delete is detected for a Local entry, drop its instance_content_entries and instance_files rows instead of flagging it as missing. Run the same reconciliation at the start of Verify and Repair and on the instance refresh button. A one-time migration can clear Local rows currently flagged as missing.
The root problem
This issue is part of a series of problems caused by the database marking externally removed files as "missing".
The flaw with verify and repair
It would make sense if Verify and Repair managed ModrinthModpack, ServerProject, ModrinthHosting, ImportedModpack, and SharedInstance source kinds. But for non-shared and non-managed Local content, it would only get in the way of users who externally manage content.
verify-and-repair.mp4
Possible solutions
1. Give each `source_kind` a repair policy (core fix)
2. Treat the disk as truth for Local rows
instance_content_entriesandinstance_filesrows instead of flagging it as missing. Run the same reconciliation at the start of Verify and Repair and on the instance refresh button. A one-time migration can clear Local rows currently flagged as missing.