compactConversation method
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;
}
}