packages feed

haskell-fsrs-7.0.0: CHANGELOG.md

# Changelog for `haskell-fsrs`

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
The major version tracks the FSRS algorithm version, as `py-fsrs` and `fsrs-rs`
do: `7.x.y` implements FSRS-7.

## Unreleased

## 7.0.0 - 2026-08-20

Initial release: FSRS-7.

### Added

- `FSRS.Types` — `Rating`, `MemoryState` and the `Stability` / `Difficulty` /
  `Retrievability` / `Days` synonyms.
- `FSRS.Parameters` — the 35 FSRS-7 weights, the default set, bounds taken from
  the upstream optimiser's clipper, validation with per-weight errors, clamping,
  and typed views onto the weight blocks (`StabilityWeights`, `CurveWeights`).
- `FSRS.Algorithm` — the model: the two-component `retrievability` curve and its
  derivative, `nextIntervalDays` (a safeguarded Newton root-find, since the
  FSRS-7 curve has no closed-form inverse), `initialDifficulty`,
  `nextDifficulty`, `initialStability`, `stabilityAfterReview`,
  `transitionCoefficient`, `nextStability`, `nextMemoryState` and
  `replayReviews`.
- `FSRS.Scheduler` — cards, due dates, learning and relearning steps, review
  logs, interval preview and explicit (pure) interval fuzzing.
- `FSRS` — an umbrella module re-exporting all of the above.
- A test suite of golden vectors generated from a pure-Python transcription of
  the upstream reference implementation, plus property tests for the model's
  invariants.