( db: DatabaseAdapter, segmentId: number, limit: number = 500 )
| 502 | * Load messages for a chat session (for summary generation). |
| 503 | */ |
| 504 | export function loadSegmentMessages( |
| 505 | db: DatabaseAdapter, |
| 506 | segmentId: number, |
| 507 | limit: number = 500 |
| 508 | ): Array<{ senderName: string; content: string | null }> | null { |
| 509 | try { |
| 510 | return db |
| 511 | .prepare( |
| 512 | `SELECT |
| 513 | COALESCE(mb.group_nickname, mb.account_name, mb.platform_id) as senderName, |
| 514 | m.content |
| 515 | FROM message_context mc |
| 516 | JOIN message m ON m.id = mc.message_id |
| 517 | JOIN member mb ON mb.id = m.sender_id |
| 518 | WHERE mc.segment_id = ? |
| 519 | ORDER BY m.ts ASC |
| 520 | LIMIT ?` |
| 521 | ) |
| 522 | .all(segmentId, limit) as unknown as Array<{ senderName: string; content: string | null }> |
| 523 | } catch { |
| 524 | return null |
| 525 | } |
| 526 | } |
| 527 | |
| 528 | /** |
| 529 | * Get summary text for a single chat session. |
no test coverage detected