Skip to content

Commit 8391a22

Browse files
authored
fix(gitops): clean failure display in TUI grid and post-run summary (#236)
Live grid now shows only the project name on failure (no inline error text), matching the startup checks TUI style. printSummary renders each failed repo as a multi-line block: the repo name and elapsed time on the first line, followed by indented dimmed error lines — making multiline git errors readable instead of broken. truncateToVisualWidth now appends … when truncating so it is clear content was cut.
1 parent fccaf69 commit 8391a22

1 file changed

Lines changed: 20 additions & 4 deletions

File tree

gitops/view.go

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -487,7 +487,21 @@ func (m *gitopsModel) printSummary() {
487487
return
488488
}
489489
for _, e := range noteworthy {
490-
fmt.Println(m.renderEntry(e, width))
490+
if e.state == goStateFailed {
491+
fmt.Printf(" %s %s %s\n",
492+
goFailStyle.Render("✗"),
493+
goFailStyle.Render(strings.TrimPrefix(e.name, "gitops:")),
494+
goDimStyle.Render(fmtDuration(e.elapsed)),
495+
)
496+
for _, line := range strings.Split(strings.TrimSpace(e.detail), "\n") {
497+
if line != "" {
498+
fmt.Printf(" %s\n", goDimStyle.Render(line))
499+
}
500+
}
501+
fmt.Println()
502+
} else {
503+
fmt.Println(m.renderEntry(e, width))
504+
}
491505
}
492506
}
493507

@@ -526,7 +540,6 @@ func (m *gitopsModel) renderEntry(e *goEntry, colW int) string {
526540
case goStateFailed:
527541
icon = goFailStyle.Render("✗")
528542
nameStr = goFailStyle.Render(label)
529-
extra = goFailStyle.Render(" " + e.detail)
530543
}
531544

532545
line := fmt.Sprintf(" %s %s%s", icon, nameStr, extra)
@@ -564,6 +577,9 @@ func visibleWidth(s string) int {
564577
}
565578

566579
func truncateToVisualWidth(s string, maxWidth int) string {
580+
if maxWidth < 1 {
581+
return ""
582+
}
567583
var result strings.Builder
568584
vis := 0
569585
inEsc := false
@@ -583,8 +599,8 @@ func truncateToVisualWidth(s string, maxWidth int) string {
583599
escBuf.WriteRune(r)
584600
continue
585601
}
586-
if vis >= maxWidth {
587-
result.WriteString("\x1b[0m")
602+
if vis >= maxWidth-1 {
603+
result.WriteString("\x1b[0m")
588604
return result.String()
589605
}
590606
result.WriteRune(r)

0 commit comments

Comments
 (0)