Live View: Raw claudemd:ready events displayed as JSON #182

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

Beschreibung

Im Live-View werden claudemd:ready Events als rohe JSON-Objekte angezeigt:

Event 8s ago

{
  "project": "claude-mem",
  "contentSessionId": "c6026476-a596-452e-93f4-0ae82f3f43de",
  "workingDirectory": "/home/jonas/repos/claude-mem/packages/hooks",
  "content": "<claude-mem-context>\n# Recent Activity\n\n<!-- This section is auto-generated by claude-mem. Edit content outside the tags. -->\n\n###
  ...
}

Probleme

  1. Unleserlich: Rohe JSON-Ausgabe mit escaped Newlines
  2. Content zu lang: Der komplette CLAUDE.md Inhalt wird angezeigt
  3. Falsche Zielgruppe: claudemd:ready ist für den SSE-Writer gedacht, nicht für die UI

Lösungsvorschläge

Option A: Event filtern

claudemd:ready Events sollten im Live-View nicht angezeigt werden - sie sind intern für den SSE-Writer.

// Interne Events nicht anzeigen
const internalEvents = ['claudemd:ready'];
if (internalEvents.includes(event.type)) return null;

Option B: Formatierte Anzeige

Falls die Events angezeigt werden sollen, dann formatiert:

case 'claudemd:ready':
  return (
    <EventCard icon="📝" title="CLAUDE.md Updated">
      <p>Project: {data.project}</p>
      <p>Directory: {data.workingDirectory}</p>
      <p>Content: {data.content.length} characters</p>
    </EventCard>
  );

Option C: Separater Event-Type für UI

Backend sendet zusätzlich ein claudemd:updated Event ohne Content:

// Für SSE-Writer (mit Content)
broadcast({ type: 'claudemd:ready', data: { ...fullData } });

// Für UI (ohne Content)
broadcast({ type: 'claudemd:updated', data: { project, workingDirectory } });

Betroffene Dateien

  • packages/ui/src/views/LiveView.tsx (oder ähnlich)
  • Möglicherweise: packages/backend/src/services/sse-broadcaster.ts

Priorität

Niedrig - Kosmetisches Problem, aber irritierend für User

## Beschreibung Im Live-View werden `claudemd:ready` Events als rohe JSON-Objekte angezeigt: ``` Event 8s ago { "project": "claude-mem", "contentSessionId": "c6026476-a596-452e-93f4-0ae82f3f43de", "workingDirectory": "/home/jonas/repos/claude-mem/packages/hooks", "content": "<claude-mem-context>\n# Recent Activity\n\n<!-- This section is auto-generated by claude-mem. Edit content outside the tags. -->\n\n### ... } ``` ## Probleme 1. **Unleserlich**: Rohe JSON-Ausgabe mit escaped Newlines 2. **Content zu lang**: Der komplette CLAUDE.md Inhalt wird angezeigt 3. **Falsche Zielgruppe**: `claudemd:ready` ist für den SSE-Writer gedacht, nicht für die UI ## Lösungsvorschläge ### Option A: Event filtern `claudemd:ready` Events sollten im Live-View nicht angezeigt werden - sie sind intern für den SSE-Writer. ```typescript // Interne Events nicht anzeigen const internalEvents = ['claudemd:ready']; if (internalEvents.includes(event.type)) return null; ``` ### Option B: Formatierte Anzeige Falls die Events angezeigt werden sollen, dann formatiert: ```typescript case 'claudemd:ready': return ( <EventCard icon="📝" title="CLAUDE.md Updated"> <p>Project: {data.project}</p> <p>Directory: {data.workingDirectory}</p> <p>Content: {data.content.length} characters</p> </EventCard> ); ``` ### Option C: Separater Event-Type für UI Backend sendet zusätzlich ein `claudemd:updated` Event ohne Content: ```typescript // Für SSE-Writer (mit Content) broadcast({ type: 'claudemd:ready', data: { ...fullData } }); // Für UI (ohne Content) broadcast({ type: 'claudemd:updated', data: { project, workingDirectory } }); ``` ## Betroffene Dateien - `packages/ui/src/views/LiveView.tsx` (oder ähnlich) - Möglicherweise: `packages/backend/src/services/sse-broadcaster.ts` ## Priorität Niedrig - Kosmetisches Problem, aber irritierend für User
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#182
No description provided.