feat(gateway): complete openclaw phase1 queue parity v2

This commit is contained in:
William Valentin
2026-02-16 12:04:33 -08:00
parent 78da226542
commit 813a0dc5c5
19 changed files with 678 additions and 53 deletions
+15 -3
View File
@@ -804,27 +804,39 @@ Per-session FIFO queue policy for concurrent gateway requests (`agent.send`).
```yaml
server:
queue:
mode: collect # collect | steer | interrupt
mode: collect # collect | followup | steer | steer_backlog | interrupt
cap: 50 # max pending requests per session lane
overflow: drop_old # drop_old | drop_new
debounce_ms: 0 # delay before running next queued item
summarize_overflow: true
overrides:
channels:
ws:
mode: steer
mode: followup
cap: 10
sessions:
ws:vip-user:
mode: interrupt
overflow: drop_new
debounce_ms: 100
```
Notes:
- `collect` keeps all queued requests (subject to `cap`).
- `steer` and `interrupt` keep only the latest pending request while one is active.
- `followup` keeps at most one pending item while a request is active; newer followups replace older pending items.
- `steer` and `steer_backlog` replace pending backlog with the newest request while one is active.
- `interrupt` uses steer-backlog queueing behavior; active work still requires `agent.cancel` for best-effort cancellation.
- `interrupt` currently does not force-stop already running work; use `agent.cancel` for active cancellation.
- `debounce_ms` delays the next queued execution, helping collapse bursty same-session traffic.
- `summarize_overflow` enables richer overflow error messages and payload metadata.
- On overflow, `drop_old` evicts the oldest pending request, `drop_new` rejects the new request.
- Override precedence: exact `sessions` match first, then `channels`.
Runtime session controls from chat commands:
- `/queue` shows effective session queue policy.
- `/queue set <mode|cap|overflow|debounce_ms|summarize_overflow> <value>` sets a per-session override.
- `/queue reset` clears per-session queue overrides.
## Gateway Request Body Limit
Cap inbound HTTP POST body size (webhooks and Gmail push) to reduce memory-DoS risk.