feat: preempt active runs in interrupt queue mode
This commit is contained in:
@@ -34,7 +34,7 @@ The gateway serialises agent work **per session**, not per WebSocket connection:
|
||||
|
||||
- Requests that target the same `sessionId` run one-at-a-time (FIFO) in a per-session lane.
|
||||
- Requests for different sessions can run in parallel.
|
||||
- Lane policy is configurable (`collect`, `followup`, `steer_backlog`, `interrupt`) with per-channel and per-session overrides.
|
||||
- Lane policy is configurable (`collect`, `followup`, `steer`, `steer_backlog`, `interrupt`) with per-channel and per-session overrides.
|
||||
- Session-local overrides can be managed at runtime via `agent.send` commands: `/queue`, `/queue set ...`, `/queue reset`.
|
||||
|
||||
This is implemented via a per-lane queue (`LaneQueue`) in the gateway server, and used by `agent.send` and `agent.cancel`.
|
||||
@@ -69,6 +69,8 @@ sequenceDiagram
|
||||
G-->>C: result.cancelled=true/false
|
||||
```
|
||||
|
||||
`interrupt` queue mode also requests active-run cancellation when a newer request is enqueued for the same session lane. Cancellation still completes at agent/tool-loop safe points.
|
||||
|
||||
### Base URL
|
||||
|
||||
- WebSocket: `ws://localhost:18800` (or `wss://` if using TLS)
|
||||
|
||||
Reference in New Issue
Block a user