# `GEPA.StopCondition.NoImprovement`
[🔗](https://github.com/nshkrdotcom/gepa_ex/blob/v0.3.0/lib/gepa/stop_condition.ex#L217)

Stops when no improvement observed for patience iterations.

Tracks best score seen and stops if no improvement for N iterations.

## Examples

    # Stop if no improvement for 10 iterations
    NoImprovement.new(patience: 10)

    # Require at least 0.01 improvement
    NoImprovement.new(patience: 5, min_improvement: 0.01)

# `t`

```elixir
@type t() :: %GEPA.StopCondition.NoImprovement{
  best_score: float(),
  iterations_without_improvement: non_neg_integer(),
  min_improvement: float(),
  patience: pos_integer()
}
```

# `new`

```elixir
@spec new(keyword()) :: t()
```

Creates a no improvement stop condition.

## Options
  - `:patience` - Number of iterations to wait (required)
  - `:min_improvement` - Minimum improvement to count (default: 0.001)

# `update`

```elixir
@spec update(t(), GEPA.State.t()) :: t()
```

Updates condition with new state (call after each iteration).

---

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