d40fd57133
healthCache was only dropped on lock, on save and by the Recompute button. Import, sync, delete, batch ops, duplicate, restore and the master-password rotation all left it in place, so Vault health kept showing a pre-mutation score and listed entries that no longer exist. Invalidate inside loadEntries() — the choke point every mutation path already goes through — instead of one opt-in per caller. Recompute stays lazy: it only runs when the dashboard is next rendered. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>