Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions docs/control/reference/rest_api/headers/security_config.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ This header is **optional** and can be used in Headers-Only Mode to fine-tune se
"min_num_tools_for_filtering": 10,
"clear_session_meta": "never",
"max_n_turns": null,
"allow_history_mismatch": null,
"history_mismatch_policy": null,
"clear_history_every_n_attempts": null,
"disable_rllm": true,
"enable_multistep_planning": null,
Expand Down Expand Up @@ -110,13 +110,17 @@ Maximum number of turns allowed in the session. If `null`, unlimited turns are a

### Dual-LLM Only Fields

#### `fsm.allow_history_mismatch`
#### `fsm.history_mismatch_policy`

| Type | Required | Default |
|------|----------|---------|
| `boolean` or `null` | No | `null` |
| `string` or `null` | No | `null` |

Controls behaviour when incoming messages diverge from stored history in stateless mode:

Controls behaviour when incoming messages diverge from stored history in stateless mode. When `true`, the server silently truncates its stored history to the last consistent point and accepts the caller's version. When `false`, the server rejects the request with an error if a mismatch is detected.
- `"reject"`: Reject the request with an error if a mismatch is detected
- `"restart_turn"`: Truncate stored history to the last consistent point and restart the turn
- `"continue"`: Silently accept the caller's version and continue

#### `fsm.clear_history_every_n_attempts`

Expand Down
4 changes: 2 additions & 2 deletions src/sequrity/control/types/headers.py
Original file line number Diff line number Diff line change
Expand Up @@ -369,9 +369,9 @@ class FsmOverrides(BaseModel):
)

# Dual-LLM only
allow_history_mismatch: bool | None = Field(
history_mismatch_policy: Literal["reject", "restart_turn", "continue"] | None = Field(
default=None,
description="Controls behaviour when incoming messages diverge from stored history in stateless mode. When True, the server silently truncates its stored history to the last consistent point. When False, the server rejects the request with an error if a mismatch is detected.",
description="Controls behaviour when incoming messages diverge from stored history in stateless mode. 'reject' rejects the request with an error, 'restart_turn' truncates stored history to the last consistent point and restarts the turn, 'continue' silently accepts the caller's version and continues.",
)
clear_history_every_n_attempts: int | None = Field(
default=None,
Expand Down