Implement per-room message queue with per-agent watermarks so each agent
in a Matrix room independently tracks which messages it has consumed.
- Non-trigger messages accumulate in a shared per-room queue
- When an agent is triggered, it receives InboundHistory of pending messages
since its last reply (capped at historyLimit)
- Watermark only advances to the snapshot taken at dispatch time, so messages
arriving during async processing are visible on the next trigger (race safety)
- Each agent has an independent watermark, so multiple agents in the same room
see independent history windows
Configure via channels.matrix.historyLimit (or messages.groupChat.historyLimit).
Default is 0 (disabled, preserving existing behavior).