Analytics View: Filter out projects with empty/null names #183

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

Beschreibung

In der Analytics-View wird ein Projekt ohne Namen angezeigt. Solche Einträge sollten gefiltert werden.

Ursache

Vermutlich wurden Sessions ohne project-Feld erstellt, z.B.:

  • Alte Sessions vor Schema-Änderung
  • Edge Cases bei Session-Erstellung
  • Fehlerhafte Hook-Aufrufe

Zu implementieren

1. Frontend-Filter

// In Analytics-View
const projects = data.filter(p => p.name && p.name.trim() !== '');

2. Backend-Filter (besser)

// In Repository/Service
const projects = await this.sessions.getDistinctProjects();
return projects.filter(p => p != null && p !== '');

3. Datenbereinigung

-- Leere Projekte identifizieren
SELECT COUNT(*) FROM sdk_sessions WHERE project IS NULL OR project = '';

-- Optional: Default-Wert setzen
UPDATE sdk_sessions 
SET project = working_directory 
WHERE project IS NULL OR project = '';

4. Validierung bei Session-Erstellung

// In session-service.ts
if (!params.project || params.project.trim() === '') {
  params.project = params.workingDirectory || 'unknown';
}

Betroffene Dateien

  • packages/ui/src/views/AnalyticsView.tsx
  • packages/backend/src/services/session-service.ts
  • packages/backend/src/routes/data.ts

Priorität

Niedrig - Kosmetisches Problem, aber irritierend

## Beschreibung In der Analytics-View wird ein Projekt ohne Namen angezeigt. Solche Einträge sollten gefiltert werden. ## Ursache Vermutlich wurden Sessions ohne `project`-Feld erstellt, z.B.: - Alte Sessions vor Schema-Änderung - Edge Cases bei Session-Erstellung - Fehlerhafte Hook-Aufrufe ## Zu implementieren ### 1. Frontend-Filter ```typescript // In Analytics-View const projects = data.filter(p => p.name && p.name.trim() !== ''); ``` ### 2. Backend-Filter (besser) ```typescript // In Repository/Service const projects = await this.sessions.getDistinctProjects(); return projects.filter(p => p != null && p !== ''); ``` ### 3. Datenbereinigung ```sql -- Leere Projekte identifizieren SELECT COUNT(*) FROM sdk_sessions WHERE project IS NULL OR project = ''; -- Optional: Default-Wert setzen UPDATE sdk_sessions SET project = working_directory WHERE project IS NULL OR project = ''; ``` ### 4. Validierung bei Session-Erstellung ```typescript // In session-service.ts if (!params.project || params.project.trim() === '') { params.project = params.workingDirectory || 'unknown'; } ``` ## Betroffene Dateien - `packages/ui/src/views/AnalyticsView.tsx` - `packages/backend/src/services/session-service.ts` - `packages/backend/src/routes/data.ts` ## Priorität Niedrig - Kosmetisches Problem, aber irritierend
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#183
No description provided.