Changeset 952baf3 in Klonkt for src/server.js


Ignore:
Timestamp:
08/07/2026 05:15:52 PM (5 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
ba76bf5
Parents:
f85b2c3 (diff), 0d5bd2c (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge GitHub-main (1.7.0) met de VPS-lijn

De twee mains waren een dag gedivergeerd en bevatten elk echt werk. GitHub had 66
commits die nooit langs prutfolio.git zijn gekomen, omdat een parallelle sessie
rechtstreeks naar GitHub pushte vanaf een kloon in /tmp op de VPS. De VPS had twee
commits die GitHub niet had. Geen van beide bevatte de ander, en stable had geen van
de twee.

Bewust een merge en geen rebase: dan blijft beide historie intact en wordt er niets
herschreven waar iemand anders al op voortbouwt.

Drie bestanden raakten beide kanten. Alle drie zijn nagekeken, want dat een merge
automatisch slaagt zegt niets over of hij inhoudelijk klopt:

src/services/ActivityPubService.js

  • de sleutelbinding staat nu boven de nieuwe asSlug-aanroep van 1.7.0, dus de controle komt nog steeds voor de handtekeningcontrole

scripts/klonkt-refresh-updater.sh

  • alleen de opzij-aanpak overleefde; systemctl mask staat nergens meer als code

deploy/MULTI-INSTANCE.md

  • spreekt zichzelf niet tegen: beschrijft opzij zetten, met de reden waarom mask weigert

remarks: het gat dat in de review naar boven kwam staat hiermee ook op de 1.7.0-lijn.
De andere bevindingen uit die review staan nog open en zijn niet in deze merge
opgelost; die horen als beads. Ook nog te doen: dezelfde sleutelbinding op stable
als 1.6.1, want daar is het gat nog open bij self-hosters.

-robo
Co-Authored-By: Claude Opus 4.8 <noreply@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/server.js

    rf85b2c3 r952baf3  
    6565import apRoutes from './routes/activitypub.js';
    6666import oauthRoutes from './routes/oauth.js';
    67 import { apWants, startDeliveryWorker, selfHealTimeline } from './services/ActivityPubService.js';
     67import { apWants, startDeliveryWorker, selfHealTimeline, migrateReactions } from './services/ActivityPubService.js';
    6868
    6969// SESSION_SECRET: use the env var if set. Otherwise auto-generate a strong one
     
    197197startScheduler(); // release planning: publish scheduled posts when publish_at is reached
    198198startDeliveryWorker(); // retry failed fediverse deliveries with backoff
     199// Once per REACTIONS_MIGRATION_VERSION bump: reacties naar de tussentabel, onder
     200// de canonieke object-URI. Moet VOOR het serveren, want vanaf nu leest de code
     201// die tabel -- draait hij niet, dan tonen oude likes als niet-gegeven.
     202migrateReactions();
    199203selfHealTimeline(); // once per SELFHEAL_VERSION bump: re-sync the fediverse cache (covers/edits) after a drastic update
    200204
     
    542546  try { d = e.data ? e.data.json() : {}; } catch (err) { /* non-JSON push */ }
    543547  const title = d.title || 'Klonkt';
    544   e.waitUntil(self.registration.showNotification(title, {
    545     body: d.body || '',
    546     icon: '/favicon.svg',
    547     badge: '/favicon.svg',
    548     tag: d.type ? ('klonkt-' + d.type) : undefined,   // collapse same-type bursts
    549     data: { url: d.url || '/' },
    550   }));
     548  e.waitUntil(Promise.all([
     549    self.registration.showNotification(title, {
     550      body: d.body || '',
     551      icon: '/favicon.svg',
     552      badge: '/favicon.svg',
     553      tag: d.type ? ('klonkt-' + d.type) : undefined,   // collapse same-type bursts
     554      data: { url: d.url || '/' },
     555    }),
     556    // Wek ook een pagina die al openstaat. De push IS het teken dat er iets
     557    // veranderd is, dus een aparte live-verbinding ernaast zou hetzelfde nog
     558    // eens doen -- en die tweede zou alleen werken zolang de app open is,
     559    // terwijl dit kanaal er ook is als hij dicht is. Een kanaal, twee doelen.
     560    self.clients.matchAll({ type: 'window', includeUncontrolled: true })
     561      .then(list => { for (const c of list) c.postMessage({ klonkt: 'push', type: d.type || null }); })
     562      .catch(() => { /* geen open venster: niets te wekken */ }),
     563  ]));
    551564});
    552565self.addEventListener('notificationclick', e => {
Note: See TracChangeset for help on using the changeset viewer.