diff --git a/app/src/main/kotlin/com/shonar/desktop/DesktopState.kt b/app/src/main/kotlin/com/shonar/desktop/DesktopState.kt index 0fa038e..9c1a34a 100644 --- a/app/src/main/kotlin/com/shonar/desktop/DesktopState.kt +++ b/app/src/main/kotlin/com/shonar/desktop/DesktopState.kt @@ -1065,10 +1065,12 @@ class DesktopState(private val appDir: File = defaultAppDir()) { if (_detail.value?.file != file) return@launch } if (remoteId == null) return@launch - // Report written before a summary existed (or lost a race): - // pull finished outputs so the detail view isn't stale. - val report = d.reportText - if (d.transcript == null && !report.isNullOrBlank() && !report.contains("## Summary")) { + // Voice tag + re-summarize state need the live SummaryData, + // not just the rendered report: whenever the open file has no + // summary loaded yet, fetch transcript+summary from the engine + // (the old "report contains ## Summary" shortcut left the + // voice tag invisible for every library-opened file). + if (d.summary == null) { val t = runCatching { parseTranscript(provider.fetchTranscript(remoteId)) } .getOrNull() val s = runCatching { parseSummary(provider.fetchSummary(remoteId)) }