feat(tui): surface live sync progress and failures
Stream repository start and completion events into the Bubble Tea update loop so long runs show elapsed time, active repositories, a progress bar, live outcome counts, and the latest completed result. Keep an actionable summary after completion, list failures before warnings, focus the first failed repository automatically, and add the f shortcut for cycling through failed, skipped, protected, or divergent repositories.
This commit is contained in:
+7
-1
@@ -123,10 +123,16 @@ func TestStrictSyncRechecksAndSkipsNewlyDirtyRepository(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
results := syncAll(root, []repo{planned}, 1, time.Minute, io.Discard, true, true)
|
||||
var progress []syncProgressEvent
|
||||
results := syncSelectedWithProgress(root, []repo{planned}, []repo{planned}, 1, time.Minute, io.Discard, true, true, func(event syncProgressEvent) {
|
||||
progress = append(progress, event)
|
||||
})
|
||||
if len(results) != 1 || !results[0].Skipped || results[0].Success {
|
||||
t.Fatalf("syncAll() = %+v", results)
|
||||
}
|
||||
if len(progress) != 1 || progress[0].Started || !progress[0].Result.Skipped {
|
||||
t.Fatalf("progress events = %+v, want one finished skip", progress)
|
||||
}
|
||||
}
|
||||
|
||||
func TestScanReportsDirtyEligibleRepository(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user