# Changelog - 0.4.x

## [0.4.4] - 2025-09-20

### Merged Pull Requests

- Release v0.4.4 [#87](https://github.com/acgetchell/delaunay/pull/87)
- Refactor/phase 2 optimizations [#86](https://github.com/acgetchell/delaunay/pull/86)
- Optimizes internal collections with key-based access [#83](https://github.com/acgetchell/delaunay/pull/83)
- Bump actions-rust-lang/setup-rust-toolchain [#82](https://github.com/acgetchell/delaunay/pull/82)
- Bump the dependencies group with 2 updates [#81](https://github.com/acgetchell/delaunay/pull/81)
- Bump astral-sh/setup-uv from 6.6.1 to 6.7.0 [#80](https://github.com/acgetchell/delaunay/pull/80)
- Bump codecov/codecov-action from 5.5.0 to 5.5.1 [#79](https://github.com/acgetchell/delaunay/pull/79)
- Bump actions/checkout from 4 to 5 [#78](https://github.com/acgetchell/delaunay/pull/78)
- Feature/migrate uuids to slotmap [#77](https://github.com/acgetchell/delaunay/pull/77)
- Fix/benchmarks [#76](https://github.com/acgetchell/delaunay/pull/76)

### Changed

- Reduce verbosity of memory scaling benchmarks [`82c1789`](https://github.com/acgetchell/delaunay/commit/82c178901962fb2fed65bb71cb76671a054aa1bb)

Reduces benchmark output verbosity by introducing a quiet mode controlled by the `CRITERION_QUIET_MODE` environment variable.
  This helps to keep the output clean, especially in automated benchmark runs. Also increases sampling size for 5D benchmarks to the minimum criterion sampling
  size to avoid errors.
  Additionally, fixes a typo in `cspell.json` and `CHANGELOG.md`.

- Feature/migrate uuids to slotmap [#77](https://github.com/acgetchell/delaunay/pull/77)
  [`34ae023`](https://github.com/acgetchell/delaunay/commit/34ae023663edc245139afb20339c27aed3295e1b)
- Optimizes internal collections with key-based access [#83](https://github.com/acgetchell/delaunay/pull/83)
  [`b9a9491`](https://github.com/acgetchell/delaunay/commit/b9a9491a5e86def13697753d4389c511a555ba82)

  Migrates internal collections to use direct key-based access instead of UUID lookups. This change enhances performance by eliminating UUID-to-key mapping
  overhead in internal algorithms,
  improving memory efficiency and cache locality. (Internal change)

  **Fixed: Propagates facet errors and avoids UUID lookups**

  Fixes a potential issue where facet errors were not propagated during boundary facet retrieval, ensuring errors are correctly handled.

  Improves performance by avoiding redundant UUID→Key lookups in internal data structures, especially within performance-critical algorithms related to cell and
  vertex management. This change
  optimizes data access patterns for `SlotMap` integration and enhances memory efficiency.

  **Fixed: Improves boundary facet retrieval robustness**

  Addresses potential errors during boundary facet retrieval by hardening checks for cell and facet existence. This prevents out-of-bounds access and ensures
  that missing cells or vertices do not cause unexpected failures during triangulation processing.
  Also, simplifies logic for single-cell facets.

- Improves Bowyer-Watson triangulation robustness [`f9f2a12`](https://github.com/acgetchell/delaunay/commit/f9f2a12ede4b22e2c7745eb635aed1fd07fe4a77)
- Refactor/phase 2 optimizations [#86](https://github.com/acgetchell/delaunay/pull/86)
  [`f592dd8`](https://github.com/acgetchell/delaunay/commit/f592dd8df54d7c98cfcfc583f62d119f6a476544)

### Fixed

- Fix/benchmarks [#76](https://github.com/acgetchell/delaunay/pull/76)
  [`a090e1e`](https://github.com/acgetchell/delaunay/commit/a090e1e8d9be1140da2e6f5139e3901c06e98f78)

### Maintenance

- Bump actions/checkout from 4 to 5 [#78](https://github.com/acgetchell/delaunay/pull/78)
  [`b847b27`](https://github.com/acgetchell/delaunay/commit/b847b27ff42725438ab8061f18d751bafa2057ff)

Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.

- [Release notes](https://github.com/actions/checkout/releases)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

  ---
  updated-dependencies:

- dependency-name: actions/checkout
    dependency-version: '5'
    dependency-type: direct:production
    update-type: version-update:semver-major
  ...

- Bump codecov/codecov-action from 5.5.0 to 5.5.1 [#79](https://github.com/acgetchell/delaunay/pull/79)
  [`c3b4339`](https://github.com/acgetchell/delaunay/commit/c3b433921f45ee85b6361b71c758e7949f4b9e5e)

Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.5.0 to 5.5.1.

- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/fdcc8476540edceab3de004e990f80d881c6cc00...5a1091511ad55cbe89839c7260b706298ca349f7)

  ---
  updated-dependencies:

- dependency-name: codecov/codecov-action
    dependency-version: 5.5.1
    dependency-type: direct:production
    update-type: version-update:semver-patch
  ...

- Bump astral-sh/setup-uv from 6.6.1 to 6.7.0 [#80](https://github.com/acgetchell/delaunay/pull/80)
  [`709bd4d`](https://github.com/acgetchell/delaunay/commit/709bd4d88797cc86db6985af0c522cbc427a32bd)

Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 6.6.1 to 6.7.0.

- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](https://github.com/astral-sh/setup-uv/compare/557e51de59eb14aaaba2ed9621916900a91d50c6...b75a909f75acd358c2196fb9a5f1299a9a8868a4)

  ---
  updated-dependencies:

- dependency-name: astral-sh/setup-uv
    dependency-version: 6.7.0
    dependency-type: direct:production
    update-type: version-update:semver-minor
  ...

- Bump actions-rust-lang/setup-rust-toolchain [#82](https://github.com/acgetchell/delaunay/pull/82)
  [`3329d36`](https://github.com/acgetchell/delaunay/commit/3329d3656864f4e2ea2c00730383dd8bf8f23010)

Bumps [actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain) from 1.14.1 to 1.15.0.

- [Release notes](https://github.com/actions-rust-lang/setup-rust-toolchain/releases)
- [Changelog](https://github.com/actions-rust-lang/setup-rust-toolchain/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions-rust-lang/setup-rust-toolchain/compare/ac90e63697ac2784f4ecfe2964e1a285c304003a...2fcdc490d667999e01ddbbf0f2823181beef6b39)

  ---
  updated-dependencies:

- dependency-name: actions-rust-lang/setup-rust-toolchain
    dependency-version: 1.15.0
    dependency-type: direct:production
    update-type: version-update:semver-minor
  ...

- Bump the dependencies group with 2 updates [#81](https://github.com/acgetchell/delaunay/pull/81)
  [`d259a73`](https://github.com/acgetchell/delaunay/commit/d259a7304e5e395af07d819e32f189b06b5e3541)

Bumps the dependencies group with 2 updates: [serde](https://github.com/serde-rs/serde) and [serde_json](https://github.com/serde-rs/json).

  Updates `serde` from 1.0.219 to 1.0.223

- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.219...v1.0.223)

  Updates `serde_json` from 1.0.143 to 1.0.145

- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.143...v1.0.145)

  ---
  updated-dependencies:

- dependency-name: serde
    dependency-version: 1.0.223
    dependency-type: direct:production
    update-type: version-update:semver-patch
    dependency-group: dependencies

- dependency-name: serde_json
    dependency-version: 1.0.145
    dependency-type: direct:production
    update-type: version-update:semver-patch
    dependency-group: dependencies
  ...

- Release v0.4.4 [#87](https://github.com/acgetchell/delaunay/pull/87)
  [`e71c132`](https://github.com/acgetchell/delaunay/commit/e71c1325d082e62931f40fbb7821e25f63abd608)

- Bump version to v0.4.4
  - Update changelog with latest changes
  - Update documentation for release
  - Add performance results for v0.4.4

## [0.4.3] - 2025-09-12

### Merged Pull Requests

- Release/v0.4.3 [#75](https://github.com/acgetchell/delaunay/pull/75)
- Bump actions/github-script from 7.0.1 to 8.0.0 [#70](https://github.com/acgetchell/delaunay/pull/70)
- Bump codecov/codecov-action [#69](https://github.com/acgetchell/delaunay/pull/69)
- Memory profiling system and performance optimizations (v0.4.3) [#68](https://github.com/acgetchell/delaunay/pull/68)

### Added

- Memory profiling system and performance optimizations (v0.4.3) [#68](https://github.com/acgetchell/delaunay/pull/68)
  [`2eeb6db`](https://github.com/acgetchell/delaunay/commit/2eeb6db7d2f595834c1a0db92a694a3397bc56aa)

  **Changed: Refactors benchmark workflow using Python utils (internal)**

  Streamlines benchmark workflow by replacing complex bash scripts with Python utility functions. This simplifies maintenance, improves code readability, and
  reduces the risk of errors.

  The changes encompass baseline generation, comparison, commit extraction, skip determination and result display within GitHub Actions workflows.

  **Added: Comprehensive profiling benchmarks and memory stress tests**

  This commit introduces a comprehensive profiling suite for in-depth performance analysis and a separate memory stress test job.

  The profiling suite includes:

  - Large-scale triangulation performance analysis (10³-10⁶ points)
  - Multiple point distributions (random, grid, Poisson disk)
  - Memory allocation tracking (with `count-allocations` feature)
  - Query latency analysis
  - Multi-dimensional scaling (2D-5D)
  - Algorithmic bottleneck identification

  It's integrated into GitHub Actions with scheduled runs and manual triggering, along with uploading profiling results and baselines.

  The memory stress test runs independently to exercise allocation APIs and memory scaling under load.

  Also, ignores the "benches/**" directory in codecov, and adds the profiling suite to the README.md.

  **Added: Add memory profiling system and performance optimizations for v0.4.3**

  - Add allocation counter infrastructure with count-allocations feature flag
  - Implement memory tracking for triangulation and convex hull operations
  - Add profiling benchmarks in GitHub Actions workflow
  - Optimize collections with FxHashMap/FxHashSet for better performance
  - Add domain-specific collection types and small buffer optimizations
  - Clean up examples by removing test functions (convert to pure demonstrations)
  - Update WARP.md guidelines and project documentation
  - Add comprehensive memory analysis examples across dimensions (2D-5D)

  **Changed: Improves benchmark workflow and memory profiling**

  Refactors benchmark workflows for better performance profiling, improves memory allocation tracking, and enhances numerical stability.

  Updates profiling benchmarks to track actual point counts and adds safety cap to prevent out-of-memory errors.

  Switches `Cell` neighbor storage to `Option` for
  correct positional semantics.
  Changes ConvexHull caching to `ArcSwapOption`.
  These are internal changes to improve performance
  and robustness of the library.

  **Changed: Enhance profiling benchmarks for performance analysis**

  Enhances profiling benchmarks with improved memory allocation tracking, optimized query benchmarks, complete dimensional coverage (2D-5D), and environment
  variable control for faster
  iteration. It provides more comprehensive performance analysis for optimization work. This also introduces error handling for grid generation in benchmarks.

  **Changed: Improves benchmark utils with timeout and error handling**

  Enhances benchmark utilities to include timeout handling for cargo bench commands, preventing indefinite execution. Introduces `ProjectRootNotFoundError` for
  clearer error reporting when `Cargo.toml` is missing. Exports `BENCHMARK_REGRESSION_DETECTED` to GITHUB_ENV for better CI integration. Protects against
  division by zero in throughput calculations.

  **Changed: Enhances benchmark suite for detailed analysis**

  Extends benchmark suite to include 5D circumsphere containment tests and edge cases across all dimensions, improving the profiling suite for more granular
  performance analysis.

  Adds memory profiling with 95th percentile stats and
  optimizes query benchmarks with precomputed simplices, while also introducing env vars for CI tuning.
  Refs: None

  - Improves benchmark suite with new tests and refactoring

  Adds new benchmarks for triangulation creation and circumsphere containment, providing more comprehensive performance analysis.
  Refactors existing benchmark code to reduce duplication and improve maintainability. Updates code coverage configuration and adds mypy
  cache to gitignore.

### Changed

- Release/v0.4.3 [#75](https://github.com/acgetchell/delaunay/pull/75)
  [`1062551`](https://github.com/acgetchell/delaunay/commit/1062551a9152a53e938ddbf94c4152ff6ae4254d)

### Maintenance

- Bump codecov/codecov-action [#69](https://github.com/acgetchell/delaunay/pull/69)
  [`57b9c3c`](https://github.com/acgetchell/delaunay/commit/57b9c3c7e9294c26ae1601b83c4627fe499952e4)

Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 8f6ec407a34d5ec2b33d7d8f7f50279493b5efb4 to
fdcc8476540edceab3de004e990f80d881c6cc00.

- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/8f6ec407a34d5ec2b33d7d8f7f50279493b5efb4...fdcc8476540edceab3de004e990f80d881c6cc00)

  ---
  updated-dependencies:

- dependency-name: codecov/codecov-action
    dependency-version: fdcc8476540edceab3de004e990f80d881c6cc00
    dependency-type: direct:production
  ...

- Bump actions/github-script from 7.0.1 to 8.0.0 [#70](https://github.com/acgetchell/delaunay/pull/70)
  [`18ed4eb`](https://github.com/acgetchell/delaunay/commit/18ed4ebdf819b71135b68857edb8457021e44f81)

Bumps [actions/github-script](https://github.com/actions/github-script) from 7.0.1 to 8.0.0.

- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/60a0d83039c74a4aee543508d2ffcb1c3799cdea...ed597411d8f924073f98dfc5c65a23a2325f34cd)

  ---
  updated-dependencies:

- dependency-name: actions/github-script
    dependency-version: 8.0.0
    dependency-type: direct:production
    update-type: version-update:semver-major
  ...

## [0.4.2] - 2025-09-04

### Merged Pull Requests

- Release v0.4.2 [#66](https://github.com/acgetchell/delaunay/pull/66)
- Refactor/benchmarks [#65](https://github.com/acgetchell/delaunay/pull/65)
- Docs/release v0.4.2 [#60](https://github.com/acgetchell/delaunay/pull/60)
- Test/benchmarking [#59](https://github.com/acgetchell/delaunay/pull/59)
- Fix/squashed commit body parsing [#58](https://github.com/acgetchell/delaunay/pull/58)

### Changed

- Test/benchmarking [#59](https://github.com/acgetchell/delaunay/pull/59)
  [`fda43d7`](https://github.com/acgetchell/delaunay/commit/fda43d76af0cf35061d2e70b32f1cfb24d4696b1)
- Docs/release v0.4.2 [#60](https://github.com/acgetchell/delaunay/pull/60)
  [`f10aba3`](https://github.com/acgetchell/delaunay/commit/f10aba34cb9e3fe9418aa549f392aea98eb0d13e)
- Refactor/benchmarks [#65](https://github.com/acgetchell/delaunay/pull/65)
  [`d2e2f86`](https://github.com/acgetchell/delaunay/commit/d2e2f860bd685bbbe8303589fe0687ebedc71229)

### Fixed

- Fix/squashed commit body parsing [#58](https://github.com/acgetchell/delaunay/pull/58)
  [`ea87521`](https://github.com/acgetchell/delaunay/commit/ea87521bc667d66ac9b23f07d1339087ce9f8d6f)

### Maintenance

- Release v0.4.2 [#66](https://github.com/acgetchell/delaunay/pull/66)
  [`272d5b1`](https://github.com/acgetchell/delaunay/commit/272d5b1faa028b3bdeef479eca0a5de1a8252404)

- Bump version to v0.4.2
  - Update changelog with latest changes
  - Update documentation for release
  - Update Cargo.lock

## [0.4.1] - 2025-08-30

### Merged Pull Requests

- Release/0.4.1 fixed [#57](https://github.com/acgetchell/delaunay/pull/57)
- Release v0.4.1 [#56](https://github.com/acgetchell/delaunay/pull/56)
- Docs/update documentation citations benchmarks [#55](https://github.com/acgetchell/delaunay/pull/55)
- Refactors coordinate traits for improved geometry [#54](https://github.com/acgetchell/delaunay/pull/54)

### Added

- Adds DOI badge to README [`a5f0f51`](https://github.com/acgetchell/delaunay/commit/a5f0f51dae0174cdf541f7e556e13441caa2a850)

### Changed

- Refactors coordinate traits for improved geometry [#54](https://github.com/acgetchell/delaunay/pull/54)
  [`c1fe7ee`](https://github.com/acgetchell/delaunay/commit/c1fe7eebfb63cf815740e3b7a82161bcaa251f0f)
- Docs/update documentation citations benchmarks [#55](https://github.com/acgetchell/delaunay/pull/55)
  [`5fb31b1`](https://github.com/acgetchell/delaunay/commit/5fb31b129128e260057d04833b0cf6a97e5fca72)
- Release/0.4.1 fixed [#57](https://github.com/acgetchell/delaunay/pull/57)
  [`d1589c0`](https://github.com/acgetchell/delaunay/commit/d1589c0bf1fb0d7448b8a1f2ac302eaf01ea6e55)
- Update release date for v0.4.1 in CHANGELOG [`13b4df2`](https://github.com/acgetchell/delaunay/commit/13b4df257d102b8ab3608da85434c46db978ddd8)

### Maintenance

- Release v0.4.1 [#56](https://github.com/acgetchell/delaunay/pull/56)
  [`097a1e5`](https://github.com/acgetchell/delaunay/commit/097a1e59349d5be5834be4f6c888b3bf2061a2a6)

- Bump version to v0.4.1
  - Update changelog with latest changes
  - Update documentation for release

## [0.4.0] - 2025-08-23

### Merged Pull Requests

- Release v0.4.0 [#53](https://github.com/acgetchell/delaunay/pull/53)
- Bump actions/checkout from 4 to 5 [#51](https://github.com/acgetchell/delaunay/pull/51)
- Feature/convex hull [#50](https://github.com/acgetchell/delaunay/pull/50)

### Changed

- Feature/convex hull [#50](https://github.com/acgetchell/delaunay/pull/50)
  [`2e31533`](https://github.com/acgetchell/delaunay/commit/2e31533087466293aa99a2d39561a42ec17a76f0)

### Maintenance

- Bump actions/checkout from 4 to 5 [#51](https://github.com/acgetchell/delaunay/pull/51)
  [`c4709e2`](https://github.com/acgetchell/delaunay/commit/c4709e2e81ab933e4c8e2981c5a40b44e0069f08)

Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.

- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

  ---
  updated-dependencies:

- dependency-name: actions/checkout
    dependency-version: '5'
    dependency-type: direct:production
    update-type: version-update:semver-major
  ...

- Release v0.4.0 [#53](https://github.com/acgetchell/delaunay/pull/53)
  [`18553aa`](https://github.com/acgetchell/delaunay/commit/18553aa9dd4c11d703cbe02163c548c3600ea50a)

- Bump version to v0.4.0
  - Update changelog with latest changes
  - Update documentation for release

[0.4.4]: https://github.com/acgetchell/delaunay/compare/v0.4.3..v0.4.4
[0.4.3]: https://github.com/acgetchell/delaunay/compare/v0.4.2..v0.4.3
[0.4.2]: https://github.com/acgetchell/delaunay/compare/v0.4.1..v0.4.2
[0.4.1]: https://github.com/acgetchell/delaunay/compare/v0.4.0..v0.4.1
[0.4.0]: https://github.com/acgetchell/delaunay/compare/v0.3.5..v0.4.0
