Ah, I see the issue! This is a race condition in your queue processing system. Let me explain what's happening:
When you send two messages quickly:
- Message 1 ("weather") → enqueued
- Message 2 ("news") → enqueued
- Processing loop picks up Message 1 → calls
agent.process(msg1) - Before Message 1 finishes processing, the loop picks up Message 2 → calls
agent.process(msg2)