compactConversation method

Future<bool> compactConversation()

Manually trigger compaction.

Implementation

Future<bool> compactConversation() async {
  if (_compactionService == null || messages.length < 4) return false;

  try {
    final result = await _compactionService!.compactConversation(
      messages: messages.toList(),
      systemPrompt: _engine?.systemPrompt ?? '',
    );
    messages.assignAll(result.compactedMessages);
    compactionCount.value++;
    SintSentinel.logger.i(
      'Manual compaction: ${result.preCompactTokenCount} → '
      '${result.postCompactTokenCount} tokens',
    );
    return true;
  } catch (e) {
    SintSentinel.logger.e('Compaction failed', error: e);
    return false;
  }
}