generateSessionTitle function
Generate a sentence-case session title from a description or first message.
Returns null on error or if Haiku returns unparseable output.
Implementation
Future<String?> generateSessionTitle(String description) async {
final trimmed = description.trim();
if (trimmed.isEmpty) return null;
if (_queryHaiku == null) return null;
try {
final result = await _queryHaiku!(
systemPrompt: _sessionTitlePrompt,
userPrompt: trimmed,
);
if (result == null) return null;
final parsed = jsonDecode(result) as Map<String, dynamic>?;
final title = (parsed?['title'] as String?)?.trim();
return (title != null && title.isNotEmpty) ? title : null;
} catch (_) {
return null;
}
}