@@ -732,7 +732,24 @@ func (a *sessionAgent) Summarize(ctx context.Context, sessionID string, opts fan
732 currentSession.CompletionTokens = usage.OutputTokens
732 currentSession.CompletionTokens = usage.OutputTokens
733 currentSession.PromptTokens = 0
733 currentSession.PromptTokens = 0
734 _, err = a.sessions.Save(genCtx, currentSession)
734 _, err = a.sessions.Save(genCtx, currentSession)
735− return err
736+ return err
739+ // Release the active request before processing queued messages so that
740+ // Run() does not see the session as busy.
741+ a.activeRequests.Del(sessionID)
744+ // Process any messages that were queued while summarizing.
745+ queuedMessages, ok := a.messageQueue.Get(sessionID)
746+ if !ok || len(queuedMessages) == 0 {
749+ firstQueuedMessage := queuedMessages[0]
750+ a.messageQueue.Set(sessionID, queuedMessages[1:])
751+ _, qErr := a.Run(ctx, firstQueuedMessage)
738func (a *sessionAgent) getCacheControlOptions() fantasy.ProviderOptions {
755func (a *sessionAgent) getCacheControlOptions() fantasy.ProviderOptions {