feat(federation): wire onPeerActivated into 8 transition sites
Every code location that sets federation_peers.status='active' now invokes onPeerActivated(peerId, reason). HTTP handler sites use fire-and-forget (.catch(log)) so the response isn't blocked by sync-pull pagination. The worker-internal health-check site awaits the handler since the tick is already async. Sites: /peer/initiate, /peer/accept (4 branches), /approval- requests/:id/approve, health check recovery, ensurePeered/ performHandshake.
This commit is contained in:
@@ -4,6 +4,7 @@ import { eq } from 'drizzle-orm';
|
||||
import { generateSnowflake } from './snowflake.js';
|
||||
import { getOurOrigin, generateHmacSecret } from './federationAuth.js';
|
||||
import { validateOrigin } from '../routes/federation.js';
|
||||
import { onPeerActivated } from './federationPeerActivation.js';
|
||||
|
||||
// ─── Types ───────────────────────────────────────────────────────────────────
|
||||
|
||||
@@ -158,6 +159,9 @@ async function performHandshake(
|
||||
.run();
|
||||
const { connectionManager } = await import('../ws/handler.js');
|
||||
connectionManager.sendToAdmins({ type: 'federation_peers_changed' as const });
|
||||
onPeerActivated(peerId, 'ensure_peered').catch(err =>
|
||||
console.error('[federation] onPeerActivated from ensurePeered failed:', err)
|
||||
);
|
||||
return { status: 'active', peerId };
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user