Auto-refresh for WebUI sessions view #92

Closed
opened 2026-01-22 21:41:59 +00:00 by jack · 1 comment
Owner

Feature Request

Add auto-update functionality to the WebUI sessions view so new observations appear in real-time without manual refresh.

Desired Behavior

  • Sessions view automatically updates when new observations are captured
  • New observations appear without page reload
  • Minimal performance impact (efficient polling or WebSocket)

Implementation Options

  1. WebSocket: Real-time push from worker when new observations are saved
  2. Polling: Periodic fetch with smart diffing
  3. Server-Sent Events (SSE): One-way real-time updates

Considerations

  • Should work across all session views (dashboard, memories, timeline)
  • Visual indicator when new content is available
  • Option to pause auto-refresh if user is reading
## Feature Request Add auto-update functionality to the WebUI sessions view so new observations appear in real-time without manual refresh. ## Desired Behavior - Sessions view automatically updates when new observations are captured - New observations appear without page reload - Minimal performance impact (efficient polling or WebSocket) ## Implementation Options 1. **WebSocket**: Real-time push from worker when new observations are saved 2. **Polling**: Periodic fetch with smart diffing 3. **Server-Sent Events (SSE)**: One-way real-time updates ## Considerations - Should work across all session views (dashboard, memories, timeline) - Visual indicator when new content is available - Option to pause auto-refresh if user is reading
jack closed this issue 2026-01-24 09:17:10 +00:00
Author
Owner

Already implemented in packages/ui/src/views/Sessions.tsx:

// SSE for real-time updates
const { lastEvent } = useSSE();
useEffect(() => {
  if (!lastEvent) return;
  // Refresh on new observation, summary, or prompt for this session
  if (
    (lastEvent.type === 'observation:created' ||
     lastEvent.type === 'summary:created' ||
     lastEvent.type === 'prompt:new') &&
    eventData?.sessionId === session.content_session_id
  ) {
    fetchTimelineData();
  }
}, [lastEvent, session.content_session_id, fetchTimelineData]);

The SessionDetailModal automatically refreshes when:

  • New observations are created
  • New summaries are created
  • New prompts are submitted

Uses SSE (Server-Sent Events) for efficient real-time updates.

Already implemented in `packages/ui/src/views/Sessions.tsx`: ```typescript // SSE for real-time updates const { lastEvent } = useSSE(); useEffect(() => { if (!lastEvent) return; // Refresh on new observation, summary, or prompt for this session if ( (lastEvent.type === 'observation:created' || lastEvent.type === 'summary:created' || lastEvent.type === 'prompt:new') && eventData?.sessionId === session.content_session_id ) { fetchTimelineData(); } }, [lastEvent, session.content_session_id, fetchTimelineData]); ``` The SessionDetailModal automatically refreshes when: - New observations are created - New summaries are created - New prompts are submitted Uses SSE (Server-Sent Events) for efficient real-time updates.
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#92
No description provided.