From c32fc2079c44dad6086551c8b774e00e691a9871 Mon Sep 17 00:00:00 2001 From: avi Date: Sun, 20 Sep 2026 20:49:21 -0500 Subject: [PATCH] PipelinePanel: wrap card content in a Column so stages stop painting over the headline MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SonarCard's Surface lays un-wrapped siblings in a Box, so the whole processing panel (teal headline, gray elapsed/note text, stage rows, progress bar) drew stacked on one line — the 'text overlapping while summarizing' garble, visible only mid-job. Every other card call site wraps its content; this was the one that didn't. Headline also gets weight(1f, fill=false) + maxLines/Ellipsis so it can't collide with the elapsed/ETA text at narrow widths. --- app/src/main/kotlin/com/shonar/desktop/Screens.kt | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/shonar/desktop/Screens.kt b/app/src/main/kotlin/com/shonar/desktop/Screens.kt index 7b3e4a7..a990ad2 100644 --- a/app/src/main/kotlin/com/shonar/desktop/Screens.kt +++ b/app/src/main/kotlin/com/shonar/desktop/Screens.kt @@ -1366,13 +1366,22 @@ fun SettingsScreen(state: DesktopState) { @Composable fun PipelinePanel(p: PipelineUi) { SonarCard(modifier = Modifier.fillMaxWidth()) { + // SonarCard's Surface places un-wrapped siblings in a Box — without + // this Column every row stacked on top of the headline (the + // "text overlapping while summarizing" garble). + Column( + modifier = Modifier.fillMaxWidth().padding(Shonar.CardPadding), + verticalArrangement = Arrangement.spacedBy(Shonar.Space1), + ) { Row( modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween, verticalAlignment = Alignment.CenterVertically, ) { Text(p.headline, style = MaterialTheme.typography.titleSmall, - color = MaterialTheme.colorScheme.primary) + color = MaterialTheme.colorScheme.primary, + modifier = Modifier.weight(1f, fill = false), + maxLines = 1, overflow = TextOverflow.Ellipsis) Text( buildString { p.elapsedSec?.let { append("${DesktopState.fmtMMSS(it)} elapsed") } @@ -1427,5 +1436,6 @@ fun PipelinePanel(p: PipelineUi) { ) } } + } } }