Changeset 14f54a7 in Klonkt for CHANGELOG.md


Ignore:
Timestamp:
07/04/2026 05:31:45 PM (2 months ago)
Author:
roboburr <roboburr@…>
Branches:
main
Children:
6ec0433
Parents:
6dd1a3f
Message:

fix(ap): self-heal retries until a clean pass; feed re-boost also refreshes

Scale fix (think 1M instances, not this one row): the previous remedies
still had two gaps that only showed up per-user.

  • selfHealTimeline consumed its version even when some origins were unreachable at that exact moment - phone-hosted instances are offline routinely, so their notes stayed stale forever with no retry. The version is now only persisted after a CLEAN pass (0 unreachable); otherwise it retries on the next boots and gives up after 5 attempts (dead origins answer 404/410 and are pruned, so no infinite loop). SELFHEAL_VERSION 6 -> 7 so already-healed instances rerun with the new semantics.
  • The /news feed boost only did markBoosted, so "boost again to heal a stale copy" silently worked from the interact page but not the feed. Boosting from the feed now also re-resolves the note (fire-and-forget) and refreshes the cached row via upsertBoostedNote.

Retry state machine verified in isolation (offline-then-reachable ->
heals; permanently dead -> gives up after 5 passes, then skips). Suite
45/45.

  • src/services/ActivityPubService.js - clean-pass gating + attempts counter (app_settings, no schema change); SELFHEAL_VERSION 7
  • src/routes/posts.js - /news/boost refreshes the cached row on boost
  • CHANGELOG(.nl/.de).md - extended the Unreleased bullet (3 languages)

Co-Authored-By: Claude <noreply@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • CHANGELOG.md

    r6dd1a3f r14f54a7  
    99- **Boosts that lost their cover get it back automatically.** Posts you boosted
    1010  before the cover fix were cached without their artwork; they are refreshed
    11   once on the next restart. Boosting a post again now also refreshes its cached
    12   copy (cover, content), so a stale boost can always be healed by hand too.
     11  once on the next restart. If a post's home server is briefly unreachable at
     12  that moment, it is retried on the next restarts instead of being skipped for
     13  good. Boosting a post again now also refreshes its cached copy (cover,
     14  content) — from the feed as well as the interact page.
    1315
    1416## [1.3.3] — 2026-07-03
Note: See TracChangeset for help on using the changeset viewer.