# `Codex.Session`
[🔗](https://github.com/nshkrdotcom/codex_sdk/blob/v0.16.1/lib/codex/session.ex#L1)

Behaviour for persisting conversation state across runs.

# `t`

```elixir
@type t() :: {module(), term()}
```

# `clear`

```elixir
@callback clear(state :: term()) :: :ok | {:error, term()}
```

# `load`

```elixir
@callback load(state :: term()) :: {:ok, term()} | {:error, term()}
```

# `save`

```elixir
@callback save(state :: term(), entry :: term()) :: :ok | {:error, term()}
```

# `clear`

```elixir
@spec clear(t()) :: :ok | {:error, term()}
```

Clears stored history.

# `load`

```elixir
@spec load(t()) :: {:ok, term()} | {:error, term()}
```

Loads session history.

# `save`

```elixir
@spec save(t(), term()) :: :ok | {:error, term()}
```

Persists a session entry.

# `valid?`

```elixir
@spec valid?(term()) :: boolean()
```

Validates a session reference.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
