Memories View: Add SSE auto-sync for real-time updates #177

Closed
opened 2026-01-24 10:29:08 +00:00 by jack · 0 comments
Owner

Beschreibung

Die Memories-View (Observations-Liste) hat aktuell kein Auto-Sync via Server-Sent Events. Neue Observations werden nicht automatisch angezeigt - der User muss manuell refreshen.

Aktueller Stand

Das SSE-System existiert bereits und sendet folgende relevante Events:

  • observation:created - Wenn eine neue Observation erstellt wurde
  • observation:queued - Wenn eine Observation zur Verarbeitung gequeued wurde

Diese Events werden aber in der Memories-View nicht verarbeitet.

Zu implementieren

1. SSE-Hook in Memories-View

// In MemoriesView.tsx oder useMemories.ts
useEffect(() => {
  const eventSource = new EventSource('/api/stream/events');
  
  eventSource.onmessage = (event) => {
    const data = JSON.parse(event.data);
    
    if (data.type === 'observation:created') {
      // Neue Observation zur Liste hinzufügen oder Liste refreshen
      refetchObservations();
    }
  };
  
  return () => eventSource.close();
}, []);

2. Optimierte Variante (Inkrementelles Update)

if (data.type === 'observation:created') {
  const { observationId, sessionId } = data.data;
  
  // Einzelne Observation nachladen statt komplette Liste
  const newObs = await fetchObservation(observationId);
  setObservations(prev => [newObs, ...prev]);
}

3. Weitere Events berücksichtigen

  • summary:created - Session-Zusammenfassung erstellt
  • session:started / session:ended - Session-Status-Updates

Betroffene Dateien

  • packages/ui/src/views/MemoriesView.tsx (oder ähnlich)
  • Möglicherweise neuer Hook: packages/ui/src/hooks/useSSE.ts

Verwandte Issues

  • #161 (SSE Broadcaster hat ungenutzte Methoden)
  • #123 (Memories Tab Click Bug)

Priorität

Mittel - Verbessert User Experience erheblich, da Live-Updates während aktiver Claude-Sessions sichtbar werden

## Beschreibung Die Memories-View (Observations-Liste) hat aktuell kein Auto-Sync via Server-Sent Events. Neue Observations werden nicht automatisch angezeigt - der User muss manuell refreshen. ## Aktueller Stand Das SSE-System existiert bereits und sendet folgende relevante Events: - `observation:created` - Wenn eine neue Observation erstellt wurde - `observation:queued` - Wenn eine Observation zur Verarbeitung gequeued wurde Diese Events werden aber in der Memories-View nicht verarbeitet. ## Zu implementieren ### 1. SSE-Hook in Memories-View ```typescript // In MemoriesView.tsx oder useMemories.ts useEffect(() => { const eventSource = new EventSource('/api/stream/events'); eventSource.onmessage = (event) => { const data = JSON.parse(event.data); if (data.type === 'observation:created') { // Neue Observation zur Liste hinzufügen oder Liste refreshen refetchObservations(); } }; return () => eventSource.close(); }, []); ``` ### 2. Optimierte Variante (Inkrementelles Update) ```typescript if (data.type === 'observation:created') { const { observationId, sessionId } = data.data; // Einzelne Observation nachladen statt komplette Liste const newObs = await fetchObservation(observationId); setObservations(prev => [newObs, ...prev]); } ``` ### 3. Weitere Events berücksichtigen - `summary:created` - Session-Zusammenfassung erstellt - `session:started` / `session:ended` - Session-Status-Updates ## Betroffene Dateien - `packages/ui/src/views/MemoriesView.tsx` (oder ähnlich) - Möglicherweise neuer Hook: `packages/ui/src/hooks/useSSE.ts` ## Verwandte Issues - #161 (SSE Broadcaster hat ungenutzte Methoden) - #123 (Memories Tab Click Bug) ## Priorität Mittel - Verbessert User Experience erheblich, da Live-Updates während aktiver Claude-Sessions sichtbar werden
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
customable/claude-mem#177
No description provided.