# bigANNOY 0.3.0

* Add a true loaded-index lifecycle for the native C++ backend so repeated
  searches can reuse a live Annoy handle instead of reloading from disk each
  call.
* Add `annoy_is_loaded()`, `annoy_close_index()`, and
  `annoy_validate_index()` for explicit operational control over persisted
  indexes.
* Extend index metadata with an index id, file size, file modification time,
  file checksum, and load mode, and validate persisted files against those
  recorded properties.
* Support eager and lazy load modes for built and reopened indexes.
* Accept `bigmemory` descriptor objects and descriptor file paths anywhere the
  package accepts `big.matrix` references, queries, or streamed output
  destinations.
* Expand the benchmark layer to support user-supplied datasets, self-search
  versus external-query benchmarks, saved CSV summaries, and validation of
  built indexes as part of the benchmark workflow.
* Add tests covering eager/lazy loading, explicit close/reload, descriptor
  inputs, corrupted metadata, and the richer benchmark interface.

# bigANNOY 0.2.0

* Make the native C++ bigmemory backend the default execution path and keep
  the R implementation as a debug-only fallback.
* Add explicit `annoy_open_index()` and `annoy_load_bigmatrix()` helpers so
  build and query workflows can be decoupled across sessions.
* Write and read sidecar metadata files alongside Annoy indexes, recording
  metric, dimension, item count, tree count, package version, Annoy version,
  build seed, build threads, and build backend.
* Extend metric support beyond Euclidean to include `"angular"`,
  `"manhattan"`, and `"dot"`.
* Add v2 build/search controls including `seed`, `build_threads`,
  `prefault`, and block-size handling.
* Strengthen file-backed and persistence workflows for reference matrices,
  destination matrices, and reopened indexes.
* Add exported benchmark helpers, `benchmark_annoy_bigmatrix()` and
  `benchmark_annoy_recall_suite()`, plus an installed benchmark runner in
  `inst/benchmarks/`.
* Expand test coverage for file-backed matrices, separated-column matrices,
  streaming outputs, metadata reload behavior, and native-versus-debug backend
  parity.

# bigANNOY 0.1.0

* First public version of the package for approximate nearest-neighbour search
  on `bigmemory::big.matrix` data with Annoy.
* Add the initial public API with `annoy_build_bigmatrix()` and
  `annoy_search_bigmatrix()`.
* Support exact package-level result shapes aligned with `bigKNN`, including
  `index`, `distance`, `k`, `metric`, `n_ref`, `n_query`, `exact`, and
  `backend`.
* Support Euclidean Annoy search for self-search and external-query workflows.
* Accept reference inputs as `big.matrix` objects or external pointers, and
  query inputs as `NULL`, dense numeric matrices, `big.matrix` objects, or
  external pointers.
* Add streamed output support through destination `big.matrix` objects for
  neighbour indices and distances.
* Introduce the first native C++ bigmemory path for block reads and Annoy
  build/search loops, alongside an R fallback backend.
* Add initial correctness, validation, and backend-parity tests plus an
  installed benchmark script for moderate-size comparisons.
