fix(ap): upsertBoostedNote refreshes an already-cached row
Root cause of "cover still missing on sound-fabrics" after both earlier
fixes: the self-heal is once-per-version and silently skips a note whose
fetch fails at that moment (the phone-hosted origin was briefly
unreachable when v6 ran), and upsertBoostedNote was INSERT OR IGNORE
only - so the stale coverless row could never be repaired, not even by
boosting the post again.
Now, when the INSERT is ignored because the row exists, the row is
UPDATEd with the freshly resolved note (content, media/cover, nsfw, cw,
url). Boosting a post again therefore always heals its cached copy.
Verified in isolation against the real schema: stale coverless row +
re-boost -> cover present, content refreshed. Suite 45/45.
- src/services/ActivityPubService.js - update branch in upsertBoostedNote
- CHANGELOG(.nl/.de).md - extended the existing Unreleased bullet (3 languages)
Co-Authored-By: Claude <noreply@…>