feat(federation): trigger DM failover on setInstanceStatus transition

When an instance transitions from 'connected' to 'disconnected' or
'error', fire failoverDmOriginsFromDisconnected for that origin. Dynamic
import preserves the circular-dep-safe resolver pattern used elsewhere
in instanceStore. Fire-and-forget; the failover utility reads fresh
state at call time.
This commit is contained in:
Jannis Braun
2026-04-23 01:22:06 +02:00
parent d393a870c2
commit 1a23871367
2 changed files with 78 additions and 0 deletions
+8
View File
@@ -428,11 +428,19 @@ export const useInstanceStore = create<InstanceState>((set, get) => ({
},
setInstanceStatus: (origin, status, error) => {
const prev = get().instances.find(i => i.origin === origin)?.status;
set((state) => ({
instances: state.instances.map(i =>
i.origin === origin ? { ...i, status, error } : i
),
}));
if (prev === 'connected' && (status === 'disconnected' || status === 'error')) {
// Dynamic import keeps the circular-dep-safe resolver pattern used elsewhere
// in this file. Fire-and-forget: failover reads state at call time.
import('../utils/dmOriginFailover').then(({ failoverDmOriginsFromDisconnected }) => {
failoverDmOriginsFromDisconnected(origin);
});
}
},
disconnectInstance: (origin: string) => {