Problem
AgentStatusSnapshot.effectiveState(now:staleAfter:doneFadeAfter:) (Sources/AgentPulse/Models/AgentStatusSnapshot.swift) derives:
working → stale after staleAfter (300 s)
done → idle after doneFadeAfter (20 s)
But waiting has no timeout. A Notification/PermissionRequest hook event pins the agent at "Waiting" indefinitely if the session is closed or abandoned — the only way out is the manual Clear action (and clearCompleted() doesn't even clear waiting, only done/stale/failed).
Suggested fix
Either transition waiting → stale after the same staleAfter window, or add a dedicated waitingStaleAfter interval. Also consider including waiting in clearCompleted() in Sources/AgentPulse/State/AgentStatusStore.swift.
Problem
AgentStatusSnapshot.effectiveState(now:staleAfter:doneFadeAfter:)(Sources/AgentPulse/Models/AgentStatusSnapshot.swift) derives:working→staleafterstaleAfter(300 s)done→idleafterdoneFadeAfter(20 s)But
waitinghas no timeout. ANotification/PermissionRequesthook event pins the agent at "Waiting" indefinitely if the session is closed or abandoned — the only way out is the manual Clear action (andclearCompleted()doesn't even clearwaiting, onlydone/stale/failed).Suggested fix
Either transition
waiting→staleafter the samestaleAfterwindow, or add a dedicatedwaitingStaleAfterinterval. Also consider includingwaitinginclearCompleted()inSources/AgentPulse/State/AgentStatusStore.swift.