diff options
Diffstat (limited to 'packages/tui/internal/app')
| -rw-r--r-- | packages/tui/internal/app/app.go | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/packages/tui/internal/app/app.go b/packages/tui/internal/app/app.go index 85b21165c..4a891f282 100644 --- a/packages/tui/internal/app/app.go +++ b/packages/tui/internal/app/app.go @@ -7,6 +7,7 @@ import ( "path/filepath" "slices" "strings" + "time" "log/slog" @@ -653,12 +654,12 @@ func getDefaultModel( } func (a *App) IsBusy() bool { - if a.Session.Time.Compacting > 0 { - return true - } if len(a.Messages) == 0 { return false } + if a.IsCompacting() { + return true + } lastMessage := a.Messages[len(a.Messages)-1] if casted, ok := lastMessage.Info.(opencode.AssistantMessage); ok { return casted.Time.Completed == 0 @@ -666,6 +667,13 @@ func (a *App) IsBusy() bool { return false } +func (a *App) IsCompacting() bool { + if time.Since(time.UnixMilli(int64(a.Session.Time.Compacting))) < time.Second*30 { + return true + } + return false +} + func (a *App) HasAnimatingWork() bool { for _, msg := range a.Messages { switch casted := msg.Info.(type) { |
