fix: Nachrichtenanzahl zählt nur text-Messages, keine tool_use/tool_result

- 5 SQL COUNT-Queries mit 'type = text' Filter versehen:
  - GetSessionsWithStats (activeCount + totalCount)
  - GetActiveMessageCount
  - GetActiveMessageCountBeforeId
  - CreateArchive (messageCount)
- Dashboard: Aktive und archivierte Nachrichten separat angezeigt
- ArchiveMessageCount als eigenes Feld im Session-DTO
- TODO.md: Nachrichtenzählung-Bug als erledigt markiert
This commit is contained in:
Meleki committed 2026-03-05 16:33:03 +01:00
1 parent 4ae894304f
commit dbeba6535a
3 files changed
+12 -11

No files matched your search

+6 -5
View File
@@ -407,13 +407,13 @@ public class DatabaseService
var activeCount = await conn.ExecuteScalarAsync<int>(@"
SELECT COUNT(*) FROM messages m
JOIN chains c ON m.chain_id = c.chain_id
WHERE c.session_id = @sessionId AND c.archive_id IS NULL",
WHERE c.session_id = @sessionId AND c.archive_id IS NULL AND m.type = 'text'",
new { sessionId = s.SessionId });
var totalCount = await conn.ExecuteScalarAsync<int>(@"
SELECT COUNT(*) FROM messages m
JOIN chains c ON m.chain_id = c.chain_id
WHERE c.session_id = @sessionId",
WHERE c.session_id = @sessionId AND m.type = 'text'",
new { sessionId = s.SessionId });
results.Add(new
@@ -430,6 +430,7 @@ public class DatabaseService
s.CreatedAt,
s.UpdatedAt,
MessageCount = activeCount,
ArchiveMessageCount = totalCount - activeCount,
TotalMessageCount = totalCount,
TelegramConfigured = !string.IsNullOrEmpty(s.TelegramBotToken),
TelegramLinked = !string.IsNullOrEmpty(s.TelegramChatId)
@@ -499,7 +500,7 @@ public class DatabaseService
var messageCount = await conn.ExecuteScalarAsync<int>(@"
SELECT COUNT(*) FROM messages
WHERE chain_id IN (SELECT chain_id FROM chains WHERE archive_id IS NULL AND session_id = @sessionId)",
WHERE type = 'text' AND chain_id IN (SELECT chain_id FROM chains WHERE archive_id IS NULL AND session_id = @sessionId)",
new { sessionId });
var archive = new ArchiveRecord
@@ -671,7 +672,7 @@ public class DatabaseService
return await conn.ExecuteScalarAsync<int>($@"
SELECT COUNT(*) FROM messages m
JOIN chains c ON m.chain_id = c.chain_id
WHERE c.archive_id IS NULL AND c.session_id = @sessionId {deletedFilter}",
WHERE c.archive_id IS NULL AND c.session_id = @sessionId AND m.type = 'text' {deletedFilter}",
new { sessionId });
}
@@ -695,7 +696,7 @@ public class DatabaseService
return await conn.ExecuteScalarAsync<int>($@"
SELECT COUNT(*) FROM messages m
JOIN chains c ON m.chain_id = c.chain_id
WHERE m.id < @beforeId AND c.archive_id IS NULL AND c.session_id = @sessionId {deletedFilter}",
WHERE m.id < @beforeId AND c.archive_id IS NULL AND c.session_id = @sessionId AND m.type = 'text' {deletedFilter}",
new { sessionId, beforeId });
}