add autonomy waiting-resume debounce config and status visibility

This commit is contained in:
DBT
2026-02-24 03:51:14 +00:00
parent 357a826319
commit ee91d6e479
6 changed files with 39 additions and 24 deletions

View File

@@ -20,18 +20,19 @@ import (
)
type Options struct {
Enabled bool
TickIntervalSec int
MinRunIntervalSec int
MaxPendingDurationSec int
MaxConsecutiveStalls int
MaxDispatchPerTick int
Workspace string
DefaultNotifyChannel string
DefaultNotifyChatID string
NotifyCooldownSec int
QuietHours string
UserIdleResumeSec int
Enabled bool
TickIntervalSec int
MinRunIntervalSec int
MaxPendingDurationSec int
MaxConsecutiveStalls int
MaxDispatchPerTick int
Workspace string
DefaultNotifyChannel string
DefaultNotifyChatID string
NotifyCooldownSec int
QuietHours string
UserIdleResumeSec int
WaitingResumeDebounceSec int
}
type taskState struct {
@@ -82,6 +83,9 @@ func NewEngine(opts Options, msgBus *bus.MessageBus) *Engine {
if opts.UserIdleResumeSec <= 0 {
opts.UserIdleResumeSec = 20
}
if opts.WaitingResumeDebounceSec <= 0 {
opts.WaitingResumeDebounceSec = 5
}
return &Engine{
opts: opts,
bus: msgBus,
@@ -227,7 +231,7 @@ func (e *Engine) tick() {
}
if st.Status == "waiting" {
// Debounce waiting/resume flapping
if !st.WaitingSince.IsZero() && now.Sub(st.WaitingSince) < 5*time.Second {
if !st.WaitingSince.IsZero() && now.Sub(st.WaitingSince) < time.Duration(e.opts.WaitingResumeDebounceSec)*time.Second {
continue
}
reason := st.BlockReason