fix(agent): keep suspended-task snapshots on the legacy stack

suspendActiveContexts clears all active contexts after parking a task on
the snapshot stack, so the active-context guard alone let the agentic
loop hijack resume requests and strand suspended tasks. Check the
snapshot stack in shouldUseAgenticTurn.
This commit is contained in:
tinkle-community
2026-06-11 01:12:36 +08:00
parent 4f3869c81c
commit 3a048876bd
2 changed files with 25 additions and 0 deletions

View File

@@ -46,6 +46,11 @@ func (a *Agent) shouldUseAgenticTurn(userID int64) bool {
if _, ok := a.getPendingProposalSession(userID); ok {
return false
}
// Suspended tasks are parked on the snapshot stack with all active
// contexts cleared; only the legacy router knows how to resume them.
if len(a.SnapshotManager(userID).Stack()) > 0 {
return false
}
return true
}